/*
Theme Name: CouponBlog Pro
Theme URI: https://example.com/couponblog-pro
Author: Your Site
Description: A blog-first affiliate coupon & deals theme. Built to read existing RetailPro-style data: coupon (CPT) + coupon_store (taxonomy).
Version: 1.0.0
Requires PHP: 7.4
Text Domain: couponblog
*/

/* ============================
   DESIGN TOKENS
   ============================ */
:root{
  --color-primary:      #4C3AA6; /* deep indigo - header/nav/links */
  --color-primary-dark: #372B7A;
  --color-accent:       #FF6B4A; /* warm coral - CTAs, discount tags */
  --color-accent-dark:  #E5502F;
  --color-success:      #1E9E6B; /* used for "Get Deal" success states */
  --color-velvet:       #4B2455; /* used for "Featured" store highlights */
  --color-bg:           #FAF9F7;
  --color-surface:      #FFFFFF;
  --color-border:       #ECE9E2;
  --color-text:         #201C33;
  --color-text-muted:   #6B6680;

  --font-display: 'Plus Jakarta Sans', 'Segoe UI', sans-serif;
  --font-body: 'Inter', 'Segoe UI', sans-serif;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;

  --shadow-card: 0 2px 10px rgba(32,28,51,0.06);
  --shadow-card-hover: 0 10px 28px rgba(32,28,51,0.12);

  --container-width: 1240px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.2;
  margin:0 0 .5em;
  color:var(--color-text);
}
a{ color:var(--color-primary); text-decoration:none; }
a:hover{ color:var(--color-accent); }
img{ max-width:100%; display:block; }
.container{ max-width:var(--container-width); margin:0 auto; padding:0 20px; }
:focus-visible{ outline:3px solid var(--color-accent); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){ *{ animation:none!important; transition:none!important; } }

/* Reusable responsive two-column layout (main content + sidebar) used across templates */
.two-col-layout{ display:grid; grid-template-columns:2.4fr 1fr; gap:32px; align-items:start; }
@media (max-width:900px){ .two-col-layout{ grid-template-columns:1fr; } }

/* ============================
   BUTTONS
   ============================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 22px; border-radius:999px; font-weight:700; font-size:.95rem;
  border:none; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--color-primary); color:#fff; }
.btn-primary:hover{ background:var(--color-primary-dark); color:#fff; }
.btn-accent{ background:var(--color-accent); color:#fff; box-shadow:0 6px 16px rgba(255,107,74,.35); }
.btn-accent:hover{ background:var(--color-accent-dark); color:#fff; }
.btn-outline{ background:transparent; border:2px solid var(--color-primary); color:var(--color-primary); }

/* ============================
   HEADER
   ============================ */
.site-header{ background:#fff; border-bottom:1px solid var(--color-border); position:sticky; top:0; z-index:50; }
.site-header__top{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px 0; }
.site-logo{ font-family:var(--font-display); font-weight:800; font-size:1.5rem; color:var(--color-primary); }
.site-logo span{ color:var(--color-accent); }
.site-search{ flex:1; max-width:420px; position:relative; }
.site-search input{
  width:100%; padding:10px 16px 10px 40px; border-radius:999px; border:1px solid var(--color-border);
  background:var(--color-bg); font-family:var(--font-body); font-size:.9rem;
}
.site-search svg{ position:absolute; left:14px; top:50%; transform:translateY(-50%); width:16px; height:16px; opacity:.5; }

/* Live search suggestions dropdown */
.cb-search-suggest{
  display:none; position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:60;
  background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md);
  box-shadow:var(--shadow-card-hover); max-height:360px; overflow-y:auto; padding:6px;
}
.cb-search-suggest.is-open{ display:block; }
.cb-search-suggest__label{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); padding:8px 10px 4px; }
.cb-search-suggest__item{
  display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:var(--radius-sm); color:var(--color-text);
}
.cb-search-suggest__item:hover{ background:var(--color-bg); color:var(--color-text); }
.cb-search-suggest__logo{
  flex:0 0 32px; height:32px; border-radius:6px; border:1px solid var(--color-border); background:#fff;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.cb-search-suggest__logo img{ width:100%; height:100%; object-fit:contain; padding:3px; }
.cb-search-suggest__logo span{ font-weight:800; color:var(--color-primary); font-size:.85rem; }
.cb-search-suggest__name{ flex:1; font-size:.88rem; font-weight:600; }
.cb-search-suggest__name b{ color:var(--color-accent); }
.cb-search-suggest__count{ font-size:.72rem; color:var(--color-text-muted); white-space:nowrap; }
.main-nav{ background:var(--color-primary); }
.main-nav ul{ list-style:none; display:flex; gap:4px; margin:0; padding:0; flex-wrap:wrap; }
.main-nav a{
  display:block; padding:12px 18px; color:#fff; font-weight:600; font-size:.9rem;
  border-bottom:3px solid transparent;
}
.main-nav a:hover, .main-nav a.is-active{ color:#fff; border-bottom-color:var(--color-accent); background:rgba(255,255,255,.06); }
.main-nav .nav-stores a{ color:#FFD9CC; }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ width:24px; height:2px; background:var(--color-text); border-radius:2px; }

@media (max-width:820px){
  .site-header__top{ flex-wrap:wrap; }
  .site-search{ order:3; max-width:none; flex-basis:100%; margin-top:10px; }
  .nav-toggle{ display:flex; }
  .main-nav{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
  .main-nav.is-open{ max-height:600px; }
  .main-nav ul{ flex-direction:column; gap:0; }
  .main-nav a{ padding:14px 18px; border-bottom:1px solid rgba(255,255,255,.1); }
}

/* ============================
   HOMEPAGE: CATEGORY ROWS
   ============================ */
.category-row{ padding:40px 0; }
.category-row__head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:20px; }
.category-row__head h2{ font-size:1.5rem; position:relative; padding-left:16px; }
.category-row__head h2::before{
  content:""; position:absolute; left:0; top:4px; bottom:4px; width:5px; border-radius:4px; background:var(--color-accent);
}
.category-row__head a{ font-size:.85rem; font-weight:700; }
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:1100px){ .post-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .post-grid{ grid-template-columns:1fr; } }

/* ============================
   TOP BLOG STRIP — 4 equal cards, solid color banner overlay (not a fade-over-photo)
   ============================ */
.top-blog-strip{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; padding:24px 0 10px; }
@media (max-width:900px){ .top-blog-strip{ grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:480px){ .top-blog-strip{ grid-template-columns:1fr; } }
.top-blog-card{ position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:1/1; display:block; box-shadow:var(--shadow-card); min-width:0; }
.top-blog-card img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.top-blog-card__banner{
  position:absolute; left:0; right:0; bottom:0; padding:10px 12px 12px;
  background:linear-gradient(135deg,var(--color-primary) 0%, #7A5FD6 100%);
}
.top-blog-card__cat{ display:inline-block; background:rgba(255,255,255,.25); color:#fff; font-size:.62rem; font-weight:700; text-transform:uppercase; padding:2px 8px; border-radius:999px; margin-bottom:6px; }
.top-blog-card__title{ color:#fff; font-size:.8rem; font-weight:700; line-height:1.3; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ============================
   RECENT BLOG — horizontal list cards (image left, text right)
   ============================ */
.recent-blog-list{ display:flex; flex-direction:column; gap:18px; }
.recent-blog-card{ display:flex; gap:18px; background:var(--color-surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card); transition:box-shadow .2s; }
.recent-blog-card:hover{ box-shadow:var(--shadow-card-hover); }
.recent-blog-card__img{ flex:0 0 220px; aspect-ratio:4/3; overflow:hidden; background:var(--color-border); }
.recent-blog-card__img img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.recent-blog-card__body{ flex:1; min-width:0; padding:16px 16px 16px 0; display:flex; flex-direction:column; justify-content:center; }
.recent-blog-card__cat{ color:var(--color-accent); font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:4px; }
.recent-blog-card__title{ font-size:1.15rem; margin:0 0 6px; }
.recent-blog-card__title a{ color:var(--color-primary); }
.recent-blog-card__meta{ font-size:.75rem; color:var(--color-text-muted); margin-bottom:6px; }
.recent-blog-card__excerpt{ font-size:.85rem; color:var(--color-text-muted); margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
@media (max-width:640px){ .recent-blog-card{ flex-direction:column; } .recent-blog-card__img{ flex-basis:auto; aspect-ratio:16/9; } .recent-blog-card__body{ padding:14px; } }

/* Legacy grid post-card (still used on single store popups / other listings) */
.post-card{ display:flex; flex-direction:column; background:var(--color-surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card); transition:box-shadow .2s, transform .2s; }
.post-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-3px); }
.post-card__img{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--color-border); flex:0 0 auto; }
.post-card__img img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.post-card__cat{
  position:absolute; left:10px; bottom:10px; background:var(--color-primary); color:#fff;
  font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  padding:4px 10px; border-radius:999px; z-index:2;
}
.post-card__body{ padding:16px; flex:1 1 auto; display:flex; flex-direction:column; min-height:90px; background:var(--color-surface); }
.post-card__body h3{ font-size:1.02rem; margin-bottom:6px; color:var(--color-text); }
.post-card__body h3 a{ color:var(--color-text); }
.post-card__excerpt{ font-size:.85rem; color:var(--color-text-muted); margin:0; }

/* Featured strip (top of homepage) - image on top, solid content bar below (no overlay text = no overlap) */
.featured-strip{ display:grid; grid-template-columns:1.4fr 1fr; gap:20px; padding:32px 0 8px; }
.fs-card{ display:flex; flex-direction:column; border-radius:var(--radius-lg); overflow:hidden; background:var(--color-primary); color:#fff; height:100%; }
.fs-card__img{ position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--color-border); flex:0 0 auto; }
.fs-card__img img{ width:100%; height:100%; object-fit:cover; }
.fs-card__body{ padding:20px; flex:1; display:flex; flex-direction:column; justify-content:center; }
.fs-card__body .post-card__cat{ position:static; display:inline-block; margin-bottom:10px; align-self:flex-start; }
.fs-card__body h2, .fs-card__body h3{ color:#fff; margin:0; }
.featured-strip__main{ grid-row:span 1; }
.featured-strip__main .fs-card__img{ aspect-ratio:16/10; }
.featured-strip__main .fs-card__body h2{ font-size:1.5rem; }
.featured-strip__side{ display:grid; grid-template-rows:1fr 1fr; gap:20px; }
.featured-strip__side .fs-card{ flex-direction:row; }
.featured-strip__side .fs-card__img{ aspect-ratio:1/1; width:110px; flex:0 0 110px; }
.featured-strip__side .fs-card__body{ padding:14px; }
.featured-strip__side .fs-card__body h3{ font-size:.95rem; }
@media (max-width:900px){ .featured-strip{ grid-template-columns:1fr; } }

/* Popular / trending mini strip */
.popular-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding:8px 0 20px; }
@media (max-width:900px){ .popular-strip{ grid-template-columns:repeat(2,1fr);} }

/* ============================
   SIDEBAR CATEGORY TILES
   ============================ */
.category-tile-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.category-tile{ display:flex; flex-direction:column; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card); transition:transform .15s, box-shadow .15s; background:#fff; }
.category-tile:hover{ transform:translateY(-2px); box-shadow:var(--shadow-card-hover); }
.category-tile__img{ width:100%; aspect-ratio:1/1; overflow:hidden; background:var(--color-border); }
.category-tile__img img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.category-tile__label{
  padding:10px 8px; text-align:center; font-weight:700; font-size:.82rem; color:#fff;
  border-top:3px solid rgba(255,255,255,.25);
}

/* ============================
   SINGLE POST
   ============================ */
/* Forced override — single blog post page. Some WordPress core block styles
   and page builder plugins apply their own narrower max-width to post
   content; these rules win regardless of what else is loaded. */
.cb-single-post-page.container{ max-width:1240px !important; width:100% !important; }
.cb-single-post-page .two-col-layout{ width:100% !important; max-width:none !important; }
.cb-single-post-page .single-post__content,
.cb-single-post-page .entry-content,
.cb-single-post-page .wp-block-post-content{ max-width:none !important; width:100% !important; }
.single-post__title{ font-size:2.1rem; text-align:center; }
.single-post__meta{ text-align:center; color:var(--color-text-muted); font-size:.85rem; margin-bottom:24px; }
.single-post__content{ font-size:1.05rem; }
.single-post__content p{ margin:0 0 1.3em; }
.single-post__content h2{ font-size:1.5rem; margin-top:1.6em; }
.single-post__content h3{ font-size:1.2rem; margin-top:1.4em; }
.single-post__content table{ width:100%; border-collapse:collapse; margin:1.5em 0; font-size:.92rem; }
.single-post__content table th{ background:var(--color-primary); color:#fff; text-align:left; padding:10px 12px; }
.single-post__content table td{ padding:10px 12px; border-bottom:1px solid var(--color-border); }
.single-post__content table tr:nth-child(even) td{ background:#F6F4FB; }
.single-post__content blockquote{ border-left:4px solid var(--color-accent); margin:1.5em 0; padding:.5em 1.2em; color:var(--color-text-muted); font-style:italic; }
.single-post__content img{ border-radius:var(--radius-md); margin:1.5em 0; }

/* conversion button shortcode */
.cb-conversion-btn{ display:block; text-align:center; margin:2em auto; }
.cb-conversion-btn .btn{ padding:16px 36px; font-size:1.05rem; }

/* ============================
   COUPON CARD
   ============================ */
.coupon-card{
  position:relative; display:flex; flex-direction:column; gap:0;
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg);
  overflow:hidden; margin-bottom:20px; box-shadow:var(--shadow-card);
}
.coupon-card:hover{ box-shadow:var(--shadow-card-hover); }

.coupon-card__body{ padding:22px 24px 20px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.coupon-card__logo{ flex:0 0 64px; height:64px; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--color-border); background:#fff; display:flex; align-items:center; justify-content:center; }
.coupon-card__logo img{ width:100%; height:100%; object-fit:contain; padding:8px; }
.coupon-card__logo span{ font-weight:800; font-size:1.3rem; color:var(--color-primary); }

.coupon-card__main{ flex:1; min-width:200px; }
.coupon-card__discount-label{ display:block; font-size:1rem; font-weight:800; color:var(--color-accent); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px; }
.coupon-card__title{ font-size:1.15rem; font-weight:800; margin:0 0 4px; color:var(--color-text); }
.coupon-card__teaser{
  background:none; border:none; padding:0; margin:0; text-align:left; cursor:pointer;
  font-size:.83rem; color:var(--color-text-muted); font-family:var(--font-body);
}
.coupon-card__teaser:hover{ color:var(--color-primary); text-decoration:underline; }

/* right-hand column: uses-today stat on top, code/deal button below, aligned with the header row */
.coupon-card__side{ flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; gap:10px; margin-left:auto; }
.coupon-card__topright{ display:flex; align-items:center; gap:6px; font-size:.76rem; color:var(--color-text-muted); white-space:nowrap; }
.coupon-card__topright b{ color:var(--color-text); }

/* Details accordion — reveals the coupon's own content */
.coupon-card__details{ display:none; padding:0 24px 20px; font-size:.88rem; color:var(--color-text-muted); border-top:1px dashed var(--color-border); margin:0 24px; padding-top:14px; }
.coupon-card__details.is-open{ display:block; }

/* two-tone code button: solid label + lighter "peek" section showing the last 2 characters */
.coupon-card__code-btn{
  display:flex; align-items:stretch; border-radius:999px; overflow:hidden; cursor:pointer; border:none;
  font-family:var(--font-body); box-shadow:0 4px 10px rgba(76,58,166,.25); min-width:190px;
}
.coupon-card__code-btn .code-btn__label{
  background:var(--color-primary); color:#fff; font-weight:800; font-size:.85rem; letter-spacing:.03em;
  padding:12px 18px; display:flex; align-items:center; text-transform:uppercase; flex:1; justify-content:center;
}
.coupon-card__code-btn .code-btn__peek{
  background:#EDEAF7; color:var(--color-primary); font-weight:800; font-size:.9rem;
  padding:12px 16px; display:flex; align-items:center; letter-spacing:.05em;
}
.coupon-card__deal-btn{ text-align:center; min-width:190px; }
.coupon-card__copied-msg{ font-size:.72rem; color:var(--color-success); text-align:center; font-weight:700; opacity:0; transition:opacity .2s; width:100%; }
.coupon-card__copied-msg.is-visible{ opacity:1; }

/* stats bar — full width, bordered, pinned to the bottom of the card */
.coupon-card__stats{
  display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;
  font-size:.74rem; color:var(--color-text-muted); border-top:1px solid var(--color-border);
  background:var(--color-bg); padding:10px 24px;
}
.coupon-card__stats b{ color:var(--color-text); font-weight:700; }
.coupon-card__stats .stat-last-used{ color:#D93025; font-weight:700; text-align:left; }
.coupon-card__stats .stat-total{ text-align:center; flex:1; }

@media (max-width:640px){
  .coupon-card__body{ padding:18px; flex-direction:column; }
  .coupon-card__side{ margin-left:0; align-items:flex-start; width:100%; }
  .coupon-card__code-btn, .coupon-card__deal-btn{ width:100%; }
  .coupon-card__details{ margin:0 18px; padding:14px 0 18px; }
  .coupon-card__stats{ padding:10px 18px; }
}

/* ============================
   ALL STORES PAGE
   ============================ */
.stores-toolbar{ display:flex; gap:12px; align-items:center; margin:24px 0; flex-wrap:wrap; }
.stores-toolbar input[type=text]{ flex:1; min-width:220px; padding:12px 18px; border-radius:999px; border:1px solid var(--color-border); }
.alphabet-nav{ display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 26px; }
.alphabet-nav button{
  width:34px; height:34px; border-radius:8px; border:1px solid var(--color-border); background:#fff;
  font-weight:700; font-size:.8rem; cursor:pointer; color:var(--color-text);
}
.alphabet-nav button:hover{ background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
.alphabet-nav button.is-active{ background:var(--color-accent); color:#fff; border-color:var(--color-accent); }
.alphabet-nav button:disabled{ opacity:.3; cursor:not-allowed; }
.store-letter-heading{ font-size:1.2rem; margin:26px 0 12px; color:var(--color-primary); }

/* Breadcrumbs */
.cb-breadcrumbs{ font-size:.8rem; color:var(--color-text-muted); margin-bottom:6px; }
.cb-breadcrumbs a{ color:var(--color-text-muted); }
.cb-breadcrumbs a:hover{ color:var(--color-primary); }

/* ============================
   REVIEW COMPARISON LIST (ranked stores within a review)
   ============================ */
.review-comparison-list{ margin-top:36px; display:flex; flex-direction:column; gap:16px; }
.review-store-card{ display:flex; align-items:center; gap:16px; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:18px; box-shadow:var(--shadow-card); }
.review-store-card__rank{ flex:0 0 44px; font-family:var(--font-display); font-weight:800; font-size:1.4rem; color:var(--color-accent); text-align:center; }
.review-store-card__logo{ flex:0 0 64px; height:64px; border:1px solid var(--color-border); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; background:#fff; }
.review-store-card__logo img{ width:100%; height:100%; object-fit:contain; padding:6px; }
.review-store-card__logo span{ font-weight:800; font-size:1.3rem; color:var(--color-primary); }
.review-store-card__body{ flex:1; min-width:0; }
.review-store-card__body h3{ font-size:1.05rem; margin:0 0 4px; }
.review-store-card__body h3 a{ color:var(--color-text); }
.review-store-card__rating{ font-size:.82rem; color:var(--color-text-muted); margin-bottom:6px; }
.review-store-card__body p{ font-size:.88rem; color:var(--color-text-muted); margin:0; }
.review-store-card__action{ flex:0 0 auto; width:100%; max-width:200px; display:flex; flex-direction:column; gap:8px; }
.review-store-card__action .btn{ width:100%; padding:9px 14px; font-size:.82rem; }
.review-store-card__coupons-link{
  display:block; width:100%; text-align:center; font-size:.78rem; font-weight:700;
  border:1px solid var(--color-primary); color:var(--color-primary); border-radius:999px; padding:8px 14px; box-sizing:border-box;
}
.review-store-card__coupons-link:hover{ background:var(--color-primary); color:#fff; }
.review-store-card__full-btn{
  display:block; width:100%; box-sizing:border-box; background:none; border:1px solid var(--color-border); color:var(--color-text-muted); border-radius:999px;
  padding:8px 14px; font-size:.78rem; font-weight:700; cursor:pointer; text-align:center; text-decoration:none;
}
.review-store-card__full-btn:hover{ background:var(--color-text-muted); color:#fff; border-color:var(--color-text-muted); }
.review-store-card__full{
  display:none; background:#F6F4FB; border-radius:var(--radius-md); padding:18px 20px; margin-top:8px; font-size:.9rem; color:var(--color-text);
}
.review-store-card__full.is-open{ display:block; }
.review-store-card__full h1, .review-store-card__full h2, .review-store-card__full h3,
.review-store-card__full h4, .review-store-card__full h5, .review-store-card__full h6{
  margin:14px 0 8px; line-height:1.3; color:var(--color-text);
}
.review-store-card__full h1{ font-size:1.4em; }
.review-store-card__full h2{ font-size:1.25em; }
.review-store-card__full h3{ font-size:1.1em; }
.review-store-card__full p{ margin:0 0 10px; }
.review-store-card__full ul, .review-store-card__full ol{ margin:0 0 10px; padding-left:20px; }
.review-store-card__full blockquote{
  margin:0 0 10px; padding-left:14px; border-left:3px solid var(--color-border); color:var(--color-text-muted); font-style:italic;
}
.review-store-card__full pre{
  background:#fff; border:1px solid var(--color-border); border-radius:6px; padding:12px 14px; overflow-x:auto; margin:0 0 10px;
}
.review-store-card__full code{ background:#fff; border-radius:3px; padding:1px 5px; font-size:.9em; }
.review-store-card__full pre code{ background:none; padding:0; }

@media (max-width:640px){
  .review-store-card{ flex-wrap:wrap; }
  .review-store-card__action{
    flex-basis:100%; max-width:none; flex-direction:row; flex-wrap:wrap; gap:8px;
  }
  .review-store-card__action > *:nth-child(1),
  .review-store-card__action > *:nth-child(2){ flex:1 1 calc(50% - 4px); }
  .review-store-card__action > *:nth-child(3){ flex:1 1 100%; }
}

/* Review card (for homepage/listing grids) */
.review-card{ position:relative; }
.review-card .post-card__cat{ background:var(--color-accent); }

/* Product card */
.product-card__price{ font-size:1.1rem; font-weight:800; color:var(--color-accent); margin-top:4px; }

/* Editor/Author byline card */
.cb-editor-byline{ display:flex; align-items:center; gap:14px; justify-content:center; margin-bottom:28px; }
.cb-editor-byline__photo{ flex:0 0 56px; width:56px; height:56px; border-radius:50%; overflow:hidden; background:var(--color-bg); display:flex; align-items:center; justify-content:center; }
.cb-editor-byline__photo img{ width:100%; height:100%; object-fit:cover; }
.cb-editor-byline__photo span{ font-weight:800; font-size:1.3rem; color:var(--color-primary); }
.cb-editor-byline__name{ font-weight:700; font-size:.92rem; }
.cb-editor-byline__name a{ color:var(--color-text); }
.cb-editor-byline__role{ display:block; font-weight:400; font-size:.75rem; color:var(--color-text-muted); }
.cb-editor-byline__bio{ font-size:.8rem; color:var(--color-text-muted); margin:2px 0 0; max-width:420px; }

/* ============================
   SMART SEARCH HERO (homepage)
   ============================ */
.cb-search-hero{ background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark)); padding:44px 20px; text-align:center; }
.cb-search-hero h2{ color:#fff; font-size:1.6rem; margin-bottom:6px; }
.cb-search-hero p{ color:rgba(255,255,255,.8); margin-bottom:22px; font-size:.9rem; }
.cb-search-hero-box{ max-width:680px; margin:0 auto; position:relative; text-align:left; }
.cb-search-hero-box input{
  width:100%; padding:18px 24px; border-radius:999px; border:none; font-size:1.05rem;
  box-shadow:0 8px 24px rgba(0,0,0,.15); box-sizing:border-box;
}
.cb-search-hero-hint{ color:rgba(255,255,255,.65); font-size:.78rem; margin-top:10px; }

.cb-hero-results{
  display:none; margin-top:12px; background:#fff; border-radius:var(--radius-lg); box-shadow:0 12px 32px rgba(0,0,0,.18);
  max-height:60vh; overflow-y:auto; text-align:left; padding:8px;
}
.cb-hero-results.is-open{ display:block; }
.cb-hero-answer{ background:linear-gradient(135deg,#F6F4FB,#EFEAFB); border-radius:var(--radius-md); padding:18px; margin:6px; }
.cb-hero-answer__label{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--color-success); margin-bottom:6px; }
.cb-hero-answer__title{ font-size:1.1rem; font-weight:800; color:var(--color-text); margin-bottom:6px; }
.cb-hero-answer__title a{ color:var(--color-primary); }
.cb-hero-answer__blurb{ font-size:.86rem; color:var(--color-text-muted); margin:0 0 10px; }
.cb-hero-answer__link{ font-size:.8rem; font-weight:700; }

.cb-hero-section{ padding:10px 12px; }
.cb-hero-section__label{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); margin-bottom:6px; }
.cb-hero-coupon-row, .cb-hero-list-row, .cb-hero-blog-row{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 8px; border-radius:8px; color:var(--color-text);
}
.cb-hero-coupon-row:hover, .cb-hero-list-row:hover, .cb-hero-blog-row:hover{ background:var(--color-bg); }
.cb-hero-coupon-row b{ color:var(--color-accent); }
.cb-hero-coupon-row code{ background:var(--color-bg); padding:2px 8px; border-radius:6px; font-size:.8rem; }
.cb-hero-blog-row{ flex-direction:column; align-items:flex-start; gap:2px; }
.cb-hero-blog-row__title{ font-weight:700; font-size:.9rem; }
.cb-hero-blog-row__snippet{ font-size:.8rem; color:var(--color-text-muted); }
.cb-hero-empty{ padding:20px; text-align:center; color:var(--color-text-muted); font-size:.88rem; }

/* Boxed reading area — used on single blog posts and single reviews for a consistent, contained look */
.content-box{
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg);
  padding:40px; box-shadow:var(--shadow-card);
}
@media (max-width:640px){ .content-box{ padding:22px; } }
.store-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
@media (max-width:1000px){ .store-grid{ grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){ .store-grid{ grid-template-columns:repeat(2,1fr);} }
.store-tile{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:20px 12px; text-align:center; transition:box-shadow .2s, transform .2s; position:relative; overflow:hidden; }
.store-tile:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-3px); }
.store-tile img{ height:56px; max-width:100%; object-fit:contain; margin:0 auto 12px; }
.store-tile__name{ font-size:.85rem; font-weight:700; color:var(--color-text); }
.store-tile__count{ font-size:.72rem; color:var(--color-text-muted); }
.store-tile.is-featured{ border-color:var(--color-velvet); }
.store-tile__featured-ribbon{
  position:absolute; top:10px; right:-28px; background:var(--color-velvet); color:#fff;
  font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  padding:3px 30px; transform:rotate(45deg); box-shadow:0 2px 6px rgba(0,0,0,.15);
}

/* ============================
   SINGLE STORE PAGE
   ============================ */
.store-header{ background:var(--color-primary); color:#fff; padding:36px 0; }
.store-header__inner{ display:flex; align-items:center; gap:20px; }
.store-header__logo{ width:88px; height:88px; border-radius:var(--radius-md); background:#fff; padding:8px; flex:0 0 auto; }
.store-header__logo img{ width:100%; height:100%; object-fit:contain; }
.store-header h1{ color:#fff; font-size:1.7rem; margin-bottom:4px; }
.store-header__text{ flex:1; min-width:0; }
.store-header__visit-btn{
	display:inline-flex; align-items:center; gap:8px; flex:0 0 auto;
	background:var(--color-accent); color:#fff; font-weight:700; font-size:.95rem;
	padding:12px 24px; border-radius:30px; white-space:nowrap;
	margin-left:36px; text-decoration:none;
	box-shadow:0 6px 16px rgba(255,107,74,.35);
	transition:transform .15s ease, background .15s ease;
}
.store-header__visit-btn:hover{ background:var(--color-accent-dark); color:#fff; transform:translateY(-1px); }
.store-header__visit-btn span{ font-size:1.15em; line-height:1; }
@media (max-width:640px){
	.store-header__inner{ flex-wrap:wrap; }
	.store-header__visit-btn{ margin-left:0; margin-top:18px; width:100%; justify-content:center; }
}
.store-body{ display:grid; grid-template-columns:2.2fr 1fr; gap:32px; padding:32px 0 60px; align-items:start; }
@media (max-width:900px){ .store-body{ grid-template-columns:1fr; } }
.store-section{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:24px; margin-top:24px; }
.store-section h2{ font-size:1.2rem; margin-bottom:12px; }
.faq-item{ border-bottom:1px solid var(--color-border); padding:14px 0; }
.faq-item:last-child{ border-bottom:none; }
.faq-item__q{ font-weight:700; cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
.faq-item__a{ color:var(--color-text-muted); margin-top:8px; display:none; font-size:.92rem; }
.faq-item.is-open .faq-item__a{ display:block; }

/* ============================
   SIDEBAR (coupon pages)
   ============================ */
.sidebar-widget{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:20px; margin-bottom:20px; }
.sidebar-widget h3{ font-size:1rem; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid var(--color-bg); }
.sidebar-coupon-mini{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--color-border); }
.sidebar-coupon-mini:last-child{ border-bottom:none; }
.sidebar-coupon-mini img{ width:36px; height:36px; object-fit:contain; border:1px solid var(--color-border); border-radius:6px; background:#fff; }
.sidebar-coupon-mini__title{ font-size:.82rem; font-weight:600; line-height:1.3; }
.sidebar-coupon-mini__tag{ font-size:.7rem; color:var(--color-accent); font-weight:700; }
.sidebar-signup input{ width:100%; padding:10px 14px; border-radius:8px; border:1px solid var(--color-border); margin-bottom:10px; }
.sidebar-signup .btn{ width:100%; }
.sidebar-latest-post{ display:flex; gap:10px; padding:10px 0; border-bottom:1px solid var(--color-border); }
.sidebar-latest-post:last-child{ border-bottom:none; }
.sidebar-latest-post img{ width:56px; height:56px; object-fit:cover; border-radius:6px; flex:0 0 auto; }
.sidebar-latest-post__title{ font-size:.82rem; font-weight:600; line-height:1.3; }

/* ============================
   FOOTER
   ============================ */
.site-footer{ background:#1A1630; color:#C9C4DB; padding:50px 0 20px; margin-top:60px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; margin-bottom:30px; }
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.site-footer h4{ color:#fff; font-size:.95rem; margin-bottom:14px; }
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom:8px; }
.site-footer a{ color:#C9C4DB; font-size:.88rem; }
.site-footer a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:18px; text-align:center; font-size:.8rem; color:#8A84A3; }

.footer-social{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.footer-social a{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center; color:#fff; transition:background .15s;
}
.footer-social a:hover{ background:var(--color-accent); color:#fff; }
.footer-social svg{ width:16px; height:16px; fill:currentColor; }

/* ============================
   COUPON REVEAL POPUP
   ============================ */
.cb-modal-overlay{
	position:fixed; inset:0; background:rgba(32,28,51,0.55);
	z-index:9999; display:flex; align-items:flex-start; justify-content:center;
	padding:40px 16px; overflow-y:auto;
}
.cb-modal-overlay[hidden]{ display:none; }

.cb-modal{
	position:relative; background:var(--color-surface); border-radius:var(--radius-lg);
	width:420px; max-width:100%; box-shadow:0 20px 60px rgba(0,0,0,0.3);
	padding:36px 28px 28px;
}

.cb-modal__close{
	position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:50%;
	border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text-muted);
	font-size:18px; line-height:1; cursor:pointer;
}
.cb-modal__close:hover{ background:var(--color-bg); }

.cb-modal-loading{ text-align:center; color:var(--color-text-muted); padding:40px 0; }

.cb-modal-verified{
	display:block; width:fit-content; margin:0 auto 16px; background:rgba(30,158,107,0.12);
	color:var(--color-success); font-weight:700; font-size:.85rem; padding:5px 14px; border-radius:20px;
}

.cb-modal-logo{
	display:block; width:56px; height:56px; margin:0 auto 16px; border-radius:50%;
	object-fit:contain; border:1px solid var(--color-border); padding:8px; background:var(--color-surface);
}
.cb-modal-logo--placeholder{ background:var(--color-bg); }

.cb-modal-title{
	text-align:center; font-size:1.15rem; color:var(--color-text); margin:0 0 22px; line-height:1.4;
}

.cb-modal-codebox{
	display:flex; align-items:stretch; border:2px dashed var(--color-accent); border-radius:30px;
	overflow:hidden; margin-bottom:8px;
}
.cb-modal-code{
	flex:1; display:flex; align-items:center; justify-content:center; font-weight:800;
	letter-spacing:.05em; font-size:1rem; color:var(--color-text); padding:12px 16px;
}
.cb-modal-copy{
	border-radius:0; padding:12px 20px; font-weight:700; white-space:nowrap;
}
.cb-modal-hint{ text-align:center; font-size:.78rem; color:var(--color-text-muted); margin:0 0 20px; }

.cb-modal-continue{
	display:block; width:100%; text-align:center; padding:14px; font-size:1rem; font-weight:800;
	border-radius:30px; margin-bottom:18px;
}

.cb-modal-vote{
	display:flex; align-items:center; justify-content:center; gap:12px; font-size:.85rem;
	color:var(--color-text-muted); margin-bottom:20px; flex-wrap:wrap;
}
.cb-modal-vote-btn{
	border:1px solid var(--color-border); background:var(--color-surface); border-radius:20px;
	padding:6px 14px; font-size:.85rem; cursor:pointer; color:var(--color-text);
}
.cb-modal-vote-btn.is-active{ border-color:var(--color-success); background:rgba(30,158,107,0.1); }
.cb-modal-vote-btn:disabled{ cursor:not-allowed; opacity:.75; }

.cb-modal-divider{ border:none; border-top:1px solid var(--color-border); margin:0 -28px 0; }

.cb-modal-details-toggle-wrap{ text-align:center; }
.cb-modal-details-toggle{
	background:none; border:none; font-weight:700; font-size:.85rem; color:var(--color-text);
	padding:14px 0; cursor:pointer; width:100%;
}
.cb-modal-details{ padding:0 4px 14px; font-size:.85rem; color:var(--color-text-muted); line-height:1.6; }

.cb-modal-signup{
	background:var(--color-bg); border-radius:var(--radius-md); padding:18px; text-align:center;
	margin:16px -4px;
}
.cb-modal-signup__logo{ width:34px; height:34px; border-radius:50%; object-fit:contain; margin:0 auto 10px; display:block; background:var(--color-surface); padding:5px; border:1px solid var(--color-border); }
.cb-modal-signup p{ font-size:.85rem; font-weight:600; color:var(--color-text); margin:0 0 14px; }
.cb-modal-signup__form{ display:flex; gap:8px; }
.cb-modal-signup__form input{
	flex:1; padding:10px 14px; border-radius:20px; border:1px solid var(--color-border); font-size:.85rem;
}
.cb-modal-signup__btn{
	background:var(--color-primary); color:#fff; border-radius:20px; padding:10px 18px;
	font-weight:700; font-size:.85rem; white-space:nowrap;
}
.cb-modal-signup__btn:hover{ background:var(--color-primary-dark); }

.cb-modal-comments__head{ display:flex; align-items:center; justify-content:space-between; padding-top:16px; }
.cb-modal-comments__head strong{ font-size:.9rem; color:var(--color-text); }
.cb-modal-leave-comment{
	background:none; border:none; color:var(--color-primary); font-weight:700; font-size:.82rem; cursor:pointer;
}

.cb-modal-comment-form{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.cb-modal-comment-form input, .cb-modal-comment-form textarea{
	width:100%; padding:10px 12px; border:1px solid var(--color-border); border-radius:var(--radius-sm);
	font-family:inherit; font-size:.85rem; resize:vertical;
}
.cb-modal-comment-form button{ align-self:flex-start; }

.cb-modal-comments__list{ margin-top:14px; max-height:220px; overflow-y:auto; }
.cb-modal-no-comments{ font-size:.82rem; color:var(--color-text-muted); margin-top:12px; }

.cb-modal-comment{ border-bottom:1px solid var(--color-border); padding:10px 0; }
.cb-modal-comment:last-child{ border-bottom:none; }
.cb-modal-comment__author{ font-weight:700; font-size:.82rem; color:var(--color-text); }
.cb-modal-comment__text{ font-size:.82rem; color:var(--color-text); margin:3px 0; }
.cb-modal-comment__date{ font-size:.72rem; color:var(--color-text-muted); }

@media (max-width:480px){
	.cb-modal{ padding:30px 18px 20px; }
	.cb-modal-overlay{ padding:0; align-items:stretch; }
	.cb-modal{ width:100%; border-radius:0; min-height:100%; }
}

