/*
Theme Name: Durban China City
Theme URI: https://durbanchinamall.co.za/
Author: Durban China City
Author URI: https://durbanchinamall.co.za/
Description: A fast, AdSense-optimised, WooCommerce-compatible WordPress theme built for Durban China City (Springfield Park, Durban). Ships with LocalBusiness / ShoppingCenter / FAQ / Article schema, a shop directory post type, answer-engine (AEO) and generative-engine (GEO) optimisation, automatic table of contents, sticky and in-content ad slots, and automatic ads.txt and AdSense site verification, GA4/GTM support, a legacy-URL redirect manager with 404 logging, 52 bundled cover images and 7 in-article infographics, and Core Web Vitals tuning. Verified against the PHP 7.4 grammar and runs on PHP 7.4 to 8.4. No jQuery, no external fonts, no render-blocking requests.
Version: 1.5.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: durban-china-city
Tags: business, e-commerce, blog, custom-menu, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready, right-sidebar, custom-colors, custom-logo, full-width-template
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */
:root{
  --dcc-red:#c8102e;
  --dcc-red-dark:#9c0c23;
  --dcc-gold:#f2a900;
  --dcc-ink:#15171a;
  --dcc-body:#33383d;
  --dcc-muted:#666d75;
  --dcc-line:#e4e7ea;
  --dcc-bg:#ffffff;
  --dcc-bg-alt:#f6f7f9;
  --dcc-bg-tint:#fff8f2;
  --dcc-link:#b30e28;
  --dcc-radius:10px;
  --dcc-radius-sm:6px;
  --dcc-shadow:0 1px 2px rgba(16,20,24,.06),0 4px 16px rgba(16,20,24,.06);
  --dcc-shadow-lg:0 8px 32px rgba(16,20,24,.12);
  --dcc-wrap:1200px;
  --dcc-read:760px;
  --dcc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  --dcc-font-head: var(--dcc-font);
  --dcc-space:clamp(1rem,3vw,2rem);
}

/* ==========================================================================
   2. Reset & base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;font-family:var(--dcc-font);font-size:17px;line-height:1.7;color:var(--dcc-body);background:var(--dcc-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-wrap:break-word}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
img{background:var(--dcc-bg-alt)}
a{color:var(--dcc-link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--dcc-red-dark);text-decoration-thickness:2px}
h1,h2,h3,h4,h5,h6{font-family:var(--dcc-font-head);color:var(--dcc-ink);line-height:1.22;margin:0 0 .5em;font-weight:800;letter-spacing:-.015em}
h1{font-size:clamp(1.85rem,1.2rem + 2.4vw,2.85rem)}
h2{font-size:clamp(1.45rem,1.1rem + 1.4vw,2rem);margin-top:1.9em}
h3{font-size:clamp(1.2rem,1.05rem + .7vw,1.45rem);margin-top:1.6em}
h4{font-size:1.08rem;margin-top:1.4em}
p,ul,ol,dl,table,pre,blockquote,figure{margin:0 0 1.15em}
ul,ol{padding-left:1.35em}
li{margin-bottom:.4em}
:focus-visible{outline:3px solid var(--dcc-gold);outline-offset:2px;border-radius:3px}
hr{border:0;border-top:1px solid var(--dcc-line);margin:2.5em 0}
small{font-size:.86em}
strong,b{font-weight:700;color:var(--dcc-ink)}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
code{background:var(--dcc-bg-alt);padding:.12em .38em;border-radius:4px}
pre{background:var(--dcc-bg-alt);padding:1rem;border-radius:var(--dcc-radius);overflow:auto}
blockquote{border-left:4px solid var(--dcc-red);padding:.2em 0 .2em 1.1em;margin-left:0;color:var(--dcc-ink);font-size:1.05em}
figcaption{font-size:.86rem;color:var(--dcc-muted);margin-top:.5em}
table{border-collapse:collapse;width:100%;font-size:.96rem}
th,td{border:1px solid var(--dcc-line);padding:.6em .75em;text-align:left;vertical-align:top}
thead th{background:var(--dcc-bg-alt);font-weight:700;color:var(--dcc-ink)}
tbody tr:nth-child(even){background:#fafbfc}
.dcc-table-wrap{overflow-x:auto;margin:0 0 1.4em;-webkit-overflow-scrolling:touch}

/* ==========================================================================
   3. Layout helpers
   ========================================================================== */
.dcc-wrap{width:min(100% - 2rem,var(--dcc-wrap));margin-inline:auto}
.dcc-narrow{width:min(100% - 2rem,var(--dcc-read));margin-inline:auto}
.dcc-grid{display:grid;gap:2.5rem}
@media (min-width:960px){.dcc-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:3rem;align-items:start}
 .dcc-layout--full{display:block}}
.dcc-section{padding:clamp(2.5rem,6vw,4.5rem) 0}
.dcc-section--alt{background:var(--dcc-bg-alt)}
.dcc-center{text-align:center}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;clip:auto;padding:.7em 1.1em;background:#fff;color:var(--dcc-ink);z-index:9999;border-radius:6px;box-shadow:var(--dcc-shadow-lg);font-weight:700}
.dcc-skip{}

/* ==========================================================================
   4. Buttons & badges
   ========================================================================== */
.dcc-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--dcc-red);color:#fff!important;padding:.72em 1.4em;border-radius:var(--dcc-radius-sm);font-weight:700;text-decoration:none!important;border:2px solid var(--dcc-red);cursor:pointer;font-size:1rem;line-height:1.3;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.dcc-btn:hover{background:var(--dcc-red-dark);border-color:var(--dcc-red-dark);color:#fff!important;transform:translateY(-1px)}
.dcc-btn--ghost{background:transparent;color:var(--dcc-red)!important;border-color:currentColor}
.dcc-btn--ghost:hover{background:var(--dcc-red);color:#fff!important}
.dcc-btn--gold{background:var(--dcc-gold);border-color:var(--dcc-gold);color:#2a1c00!important}
.dcc-btn--gold:hover{background:#d99700;border-color:#d99700;color:#2a1c00!important}
.dcc-btn--sm{padding:.5em 1em;font-size:.9rem}
.dcc-badge{display:inline-block;background:var(--dcc-bg-tint);color:var(--dcc-red-dark);border:1px solid #f3d9c9;padding:.22em .7em;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none}
a.dcc-badge:hover{background:var(--dcc-red);color:#fff;border-color:var(--dcc-red)}

/* ==========================================================================
   5. Header
   ========================================================================== */
.dcc-topbar{background:var(--dcc-ink);color:#e8eaec;font-size:.83rem}
.dcc-topbar a{color:#fff;text-decoration:none}
.dcc-topbar a:hover{text-decoration:underline}
.dcc-topbar__inner{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;justify-content:space-between;padding:.5rem 0}
.dcc-topbar__facts{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:0;padding:0;list-style:none}
.dcc-topbar__facts li{margin:0;display:flex;align-items:center;gap:.35em}
.dcc-open-dot{width:.55em;height:.55em;border-radius:50%;background:#31c48d;display:inline-block}
.dcc-open-dot--shut{background:#f05252}

.dcc-header{background:#fff;border-bottom:1px solid var(--dcc-line);position:sticky;top:0;z-index:400}
.dcc-header__inner{display:flex;align-items:center;gap:1rem;padding:.7rem 0;justify-content:space-between}
.dcc-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--dcc-ink);flex-shrink:0}
.dcc-brand:hover{color:var(--dcc-ink)}
.dcc-brand__mark{width:42px;height:42px;border-radius:9px;background:linear-gradient(135deg,var(--dcc-red),var(--dcc-red-dark));color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.05rem;letter-spacing:-.03em;flex-shrink:0}
.dcc-brand__name{font-weight:800;font-size:1.12rem;line-height:1.1;letter-spacing:-.02em;display:block}
.dcc-brand__tag{font-size:.74rem;color:var(--dcc-muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase;display:block}
.dcc-brand img{max-height:52px;width:auto}

.dcc-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.15rem;align-items:center}
.dcc-nav li{margin:0;position:relative}
.dcc-nav a{display:block;padding:.55em .8em;color:var(--dcc-ink);text-decoration:none;font-weight:600;font-size:.95rem;border-radius:var(--dcc-radius-sm)}
.dcc-nav a:hover,.dcc-nav .current-menu-item>a,.dcc-nav .current_page_item>a{background:var(--dcc-bg-tint);color:var(--dcc-red-dark)}
.dcc-nav .sub-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);box-shadow:var(--dcc-shadow-lg);min-width:230px;padding:.4rem;flex-direction:column;z-index:500}
.dcc-nav li:hover>.sub-menu,.dcc-nav li:focus-within>.sub-menu{display:flex}
.dcc-nav .sub-menu a{font-weight:500;font-size:.92rem}
.dcc-header__actions{display:flex;align-items:center;gap:.5rem}
.dcc-burger{display:none;background:none;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius-sm);padding:.45em .6em;cursor:pointer;color:var(--dcc-ink);align-items:center;gap:.4em;font-weight:700;font-size:.9rem}
.dcc-burger svg{width:20px;height:20px;fill:currentColor}
@media (max-width:1023px){
  .dcc-burger{display:inline-flex}
  .dcc-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--dcc-line);box-shadow:var(--dcc-shadow-lg);max-height:75vh;overflow:auto}
  .dcc-nav.is-open{display:block}
  .dcc-nav ul{flex-direction:column;align-items:stretch;padding:.6rem 1rem 1.2rem}
  .dcc-nav .sub-menu{display:flex;position:static;border:0;box-shadow:none;padding:0 0 0 1rem;min-width:0}
  .dcc-nav a{padding:.7em .6em;border-bottom:1px solid var(--dcc-line)}
}
.dcc-search-toggle{background:none;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius-sm);padding:.45em .6em;cursor:pointer;color:var(--dcc-ink);display:inline-flex}
.dcc-search-toggle svg{width:20px;height:20px;fill:currentColor}
.dcc-searchbar{display:none;border-top:1px solid var(--dcc-line);background:var(--dcc-bg-alt);padding:1rem 0}
.dcc-searchbar.is-open{display:block}

/* ==========================================================================
   6. Search form
   ========================================================================== */
.search-form{display:flex;gap:.5rem}
.search-form label{flex:1;margin:0}
.search-field,input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],input[type=number],input[type=password],textarea,select{width:100%;padding:.68em .85em;border:1px solid #cfd4d9;border-radius:var(--dcc-radius-sm);font-size:1rem;font-family:inherit;color:var(--dcc-ink);background:#fff}
textarea{min-height:150px}
.search-submit,input[type=submit],button[type=submit]{background:var(--dcc-red);color:#fff;border:0;padding:.7em 1.3em;border-radius:var(--dcc-radius-sm);font-weight:700;cursor:pointer;font-size:1rem;font-family:inherit}
.search-submit:hover,input[type=submit]:hover,button[type=submit]:hover{background:var(--dcc-red-dark)}

/* ==========================================================================
   7. Hero
   ========================================================================== */
.dcc-hero{background:linear-gradient(160deg,#1b1d21 0%,#2b1114 55%,#4a1119 100%);color:#fff;padding:clamp(2.6rem,7vw,5rem) 0;position:relative;overflow:hidden}
.dcc-hero::after{content:"";position:absolute;inset:auto -10% -40% auto;width:520px;height:520px;background:radial-gradient(circle,rgba(242,169,0,.22),transparent 62%);pointer-events:none}
.dcc-hero__inner{position:relative;z-index:1;display:grid;gap:2.5rem}
@media (min-width:900px){.dcc-hero__inner{grid-template-columns:1.15fr .85fr;align-items:center}}
.dcc-hero h1{color:#fff;margin-bottom:.45em;font-size:clamp(2rem,1.2rem + 3vw,3.3rem)}
.dcc-hero__lead{font-size:clamp(1.02rem,.98rem + .4vw,1.22rem);color:#e6e2df;max-width:60ch;margin-bottom:1.6em}
.dcc-hero__eyebrow{display:inline-block;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#ffd98a;padding:.3em .9em;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.2em}
.dcc-hero__cta{display:flex;flex-wrap:wrap;gap:.75rem}
.dcc-hero__card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:var(--dcc-radius);padding:1.4rem 1.5rem;backdrop-filter:blur(6px)}
.dcc-hero__card h2{color:#fff;font-size:1.05rem;margin:0 0 .8em;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;color:#ffd98a}
.dcc-facts{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.dcc-facts li{margin:0;display:grid;grid-template-columns:1.5em 1fr;gap:.6em;font-size:.95rem;color:#ece9e7}
.dcc-facts b{color:#fff;display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#b9b3ae;font-weight:700}
.dcc-facts a{color:#fff}
.dcc-hero__icon{opacity:.85}

/* ==========================================================================
   8. Cards / archive
   ========================================================================== */
.dcc-cards{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.dcc-card{background:#fff;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s ease,transform .18s ease}
.dcc-card:hover{box-shadow:var(--dcc-shadow-lg);transform:translateY(-2px)}
.dcc-card__media{aspect-ratio:16/9;background:linear-gradient(135deg,#f3f4f6,#e7e9ec);overflow:hidden}
.dcc-card__media img{width:100%;height:100%;object-fit:cover}
.dcc-card__body{padding:1.15rem 1.25rem 1.35rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.dcc-card__title{font-size:1.12rem;margin:0;line-height:1.3}
.dcc-card__title a{color:var(--dcc-ink);text-decoration:none}
.dcc-card__title a:hover{color:var(--dcc-red)}
.dcc-card__excerpt{font-size:.94rem;color:var(--dcc-muted);margin:0}
.dcc-card__meta{font-size:.8rem;color:var(--dcc-muted);display:flex;flex-wrap:wrap;gap:.3rem .8rem;margin-top:auto;padding-top:.5rem}

.dcc-list{display:grid;gap:1.4rem}
.dcc-list__item{display:grid;gap:1.1rem;grid-template-columns:1fr;padding-bottom:1.4rem;border-bottom:1px solid var(--dcc-line)}
@media (min-width:620px){.dcc-list__item{grid-template-columns:230px 1fr}}
.dcc-list__media{aspect-ratio:4/3;border-radius:var(--dcc-radius);overflow:hidden;background:var(--dcc-bg-alt)}
.dcc-list__media img{width:100%;height:100%;object-fit:cover}
.dcc-list__title{font-size:1.28rem;margin:.1em 0 .35em}
.dcc-list__title a{color:var(--dcc-ink);text-decoration:none}
.dcc-list__title a:hover{color:var(--dcc-red)}

/* ==========================================================================
   9. Post / entry
   ========================================================================== */
.dcc-entry{max-width:var(--dcc-read)}
.dcc-layout--full .dcc-entry{max-width:none}
.dcc-entry__header{margin-bottom:1.6rem}
.dcc-entry__meta{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.86rem;color:var(--dcc-muted);margin:.9rem 0 0;align-items:center}
.dcc-entry__meta a{color:var(--dcc-muted)}
.dcc-entry__thumb{margin:1.6rem 0;border-radius:var(--dcc-radius);overflow:hidden}
.dcc-entry__content{font-size:1.06rem}
.dcc-entry__content h2,.dcc-entry__content h3{scroll-margin-top:96px}
.dcc-entry__content>*:first-child{margin-top:0}

/* Answer box — the block AI engines and featured snippets quote */
.dcc-answer{background:var(--dcc-bg-tint);border:1px solid #f0d5c4;border-left:5px solid var(--dcc-red);border-radius:var(--dcc-radius);padding:1.15rem 1.35rem;margin:0 0 1.9rem}
.dcc-answer__label{display:block;font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--dcc-red-dark);margin-bottom:.45em}
.dcc-answer p{margin:0;font-size:1.05rem;color:var(--dcc-ink);font-weight:500}
.dcc-answer p+p{margin-top:.7em}

.dcc-keyfacts{background:var(--dcc-bg-alt);border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);padding:1.1rem 1.35rem;margin:0 0 1.9rem}
.dcc-keyfacts h2,.dcc-keyfacts h3{margin:0 0 .6em;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dcc-muted)}
.dcc-keyfacts dl{display:grid;grid-template-columns:auto 1fr;gap:.45em 1.1em;margin:0;font-size:.95rem}
.dcc-keyfacts dt{font-weight:700;color:var(--dcc-ink)}
.dcc-keyfacts dd{margin:0}

/* Table of contents */
.dcc-toc{border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);background:#fff;padding:1rem 1.25rem;margin:0 0 2rem}
.dcc-toc>summary{font-weight:800;cursor:pointer;color:var(--dcc-ink);font-size:.95rem;letter-spacing:.02em;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dcc-toc>summary::-webkit-details-marker{display:none}
.dcc-toc>summary::after{content:"▾";color:var(--dcc-red);font-size:1.1em;transition:transform .2s ease}
.dcc-toc[open]>summary::after{transform:rotate(180deg)}
.dcc-toc ol{margin:.9em 0 0;padding-left:1.3em;font-size:.95rem}
.dcc-toc li{margin-bottom:.35em}
.dcc-toc a{text-decoration:none;color:var(--dcc-body)}
.dcc-toc a:hover{color:var(--dcc-red);text-decoration:underline}
.dcc-toc ol ol{margin-top:.35em;font-size:.94em}

/* FAQ accordion */
.dcc-faq{margin:2.2rem 0}
.dcc-faq__item{border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);margin-bottom:.7rem;background:#fff;overflow:hidden}
.dcc-faq__item>summary{padding:.95rem 1.15rem;font-weight:700;cursor:pointer;color:var(--dcc-ink);list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.dcc-faq__item>summary::-webkit-details-marker{display:none}
.dcc-faq__item>summary::after{content:"+";color:var(--dcc-red);font-size:1.4em;line-height:1;font-weight:400;flex-shrink:0}
.dcc-faq__item[open]>summary::after{content:"–"}
.dcc-faq__item[open]>summary{background:var(--dcc-bg-tint)}
.dcc-faq__answer{padding:.2rem 1.15rem 1.1rem;font-size:.98rem}
.dcc-faq__answer>*:last-child{margin-bottom:0}

/* Callouts */
.dcc-note{border-left:4px solid var(--dcc-gold);background:#fffdf5;padding:.9rem 1.15rem;border-radius:0 var(--dcc-radius-sm) var(--dcc-radius-sm) 0;margin:1.6rem 0;font-size:.98rem}
.dcc-note strong:first-child{color:var(--dcc-ink)}
.dcc-tip{border-left-color:#31c48d;background:#f4fdf9}
.dcc-warn{border-left-color:#f05252;background:#fff6f6}

/* Share + author + related */
.dcc-share{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:2.2rem 0;padding-top:1.4rem;border-top:1px solid var(--dcc-line)}
.dcc-share span{font-weight:700;font-size:.9rem;color:var(--dcc-muted)}
.dcc-share a{display:inline-flex;align-items:center;gap:.4em;font-size:.86rem;font-weight:600;text-decoration:none;border:1px solid var(--dcc-line);padding:.4em .85em;border-radius:999px;color:var(--dcc-body)}
.dcc-share a:hover{background:var(--dcc-bg-alt);color:var(--dcc-red)}
.dcc-related{margin-top:3rem}
.dcc-related h2{margin-top:0}
.dcc-authorbox{display:flex;gap:1rem;align-items:flex-start;background:var(--dcc-bg-alt);border-radius:var(--dcc-radius);padding:1.25rem;margin-top:2.2rem}
.dcc-authorbox img{border-radius:50%;flex-shrink:0}
.dcc-authorbox h3{margin:0 0 .3em;font-size:1rem}
.dcc-authorbox p{margin:0;font-size:.92rem;color:var(--dcc-muted)}

/* Breadcrumbs */
.dcc-crumbs{font-size:.83rem;color:var(--dcc-muted);padding:.9rem 0;margin:0}
.dcc-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35em;margin:0;padding:0}
.dcc-crumbs li{margin:0;display:flex;align-items:center;gap:.35em}
.dcc-crumbs li+li::before{content:"›";color:#b9bec4}
.dcc-crumbs a{color:var(--dcc-muted);text-decoration:none}
.dcc-crumbs a:hover{color:var(--dcc-red);text-decoration:underline}

/* Pagination */
.dcc-pagination{margin:3rem 0 0;display:flex;justify-content:center}
.dcc-pagination .page-numbers{display:inline-block;padding:.5em .9em;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius-sm);margin:0 .2em;text-decoration:none;color:var(--dcc-body);font-weight:600}
.dcc-pagination .page-numbers.current{background:var(--dcc-red);color:#fff;border-color:var(--dcc-red)}
.dcc-pagination .page-numbers:hover{border-color:var(--dcc-red);color:var(--dcc-red)}
.dcc-pagination .page-numbers.current:hover{color:#fff}

/* ==========================================================================
   10. Ads
   ========================================================================== */
.dcc-ad{margin:2rem auto;text-align:center;max-width:100%;overflow:hidden;min-height:1px}
.dcc-ad--inline{margin:2.4rem auto}
.dcc-ad--header{margin:1.2rem auto}
.dcc-ad__label{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#9aa1a8;margin-bottom:.4rem;font-weight:600}
.dcc-ad ins,.dcc-ad iframe{margin-inline:auto}
.dcc-ad--sidebar{margin:0 0 1.8rem}
.dcc-ad--sticky{position:sticky;top:96px}
/* reserve space to protect CLS */
.dcc-ad--reserve-lb{min-height:100px}
@media(min-width:768px){.dcc-ad--reserve-lb{min-height:110px}}
.dcc-ad--reserve-rect{min-height:280px}
.dcc-ad--reserve-side{min-height:600px}
.dcc-adnotice{font-size:.78rem;color:var(--dcc-muted);text-align:center;margin:.4rem 0 0}

/* ==========================================================================
   11. Sidebar & widgets
   ========================================================================== */
.dcc-sidebar{font-size:.96rem}
@media (min-width:960px){.dcc-sidebar{position:sticky;top:90px}}
.dcc-widget{margin-bottom:2rem;background:#fff;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);padding:1.15rem 1.25rem}
.dcc-widget--bare{border:0;padding:0;background:none}
.dcc-widget__title,.widget-title,.wp-block-heading.widget-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dcc-muted);margin:0 0 .9em;font-weight:800}
.dcc-widget ul{list-style:none;padding:0;margin:0}
.dcc-widget li{margin-bottom:.6em;padding-bottom:.6em;border-bottom:1px solid var(--dcc-line);line-height:1.45}
.dcc-widget li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.dcc-widget a{text-decoration:none;color:var(--dcc-body);font-weight:600}
.dcc-widget a:hover{color:var(--dcc-red)}
.dcc-cta-box{background:linear-gradient(150deg,#2b1114,#5a1520);color:#fff;border-radius:var(--dcc-radius);padding:1.4rem}
.dcc-cta-box h3{color:#fff;margin-top:0;font-size:1.1rem}
.dcc-cta-box p{color:#e2dcd9;font-size:.93rem}

/* ==========================================================================
   12. Directory (shop CPT)
   ========================================================================== */
.dcc-dirfilter{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2rem}
.dcc-shops{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.dcc-shop{border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);padding:1.1rem 1.2rem;background:#fff;display:flex;flex-direction:column;gap:.45rem}
.dcc-shop h3{margin:0;font-size:1.05rem}
.dcc-shop h3 a{text-decoration:none;color:var(--dcc-ink)}
.dcc-shop__unit{font-size:.8rem;font-weight:800;color:var(--dcc-red);letter-spacing:.04em}
.dcc-shop__cats{font-size:.82rem;color:var(--dcc-muted)}
.dcc-shop p{margin:0;font-size:.92rem;color:var(--dcc-muted)}

/* ==========================================================================
   13. Footer
   ========================================================================== */
.dcc-footer{background:var(--dcc-ink);color:#b8bdc3;padding:clamp(2.5rem,6vw,4rem) 0 1.5rem;margin-top:4rem;font-size:.94rem}
.dcc-footer a{color:#e6e9ec;text-decoration:none}
.dcc-footer a:hover{color:#fff;text-decoration:underline}
.dcc-footer h3{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.09em;margin:0 0 1em}
.dcc-footer__cols{display:grid;gap:2.2rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.dcc-footer ul{list-style:none;margin:0;padding:0}
.dcc-footer li{margin-bottom:.55em}
.dcc-footer__bottom{border-top:1px solid #2b2f34;margin-top:2.5rem;padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;justify-content:space-between;font-size:.85rem;color:#8b9198}
.dcc-footer__bottom a{color:#b8bdc3}

/* ==========================================================================
   14. WooCommerce touch-ups
   ========================================================================== */
.woocommerce ul.products li.product a img{border-radius:var(--dcc-radius)}
.woocommerce ul.products li.product .price{color:var(--dcc-red);font-weight:800}
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--dcc-red);color:#fff;border-radius:var(--dcc-radius-sm);font-weight:700}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{background:var(--dcc-red-dark);color:#fff}
.woocommerce span.onsale{background:var(--dcc-gold);color:#2a1c00;font-weight:800}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--dcc-red)}
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before{color:var(--dcc-red)}

/* ==========================================================================
   15. Comments
   ========================================================================== */
.dcc-comments{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--dcc-line)}
.comment-list{list-style:none;padding:0;margin:0}
.comment-list .children{list-style:none;padding-left:1.5rem}
.comment-body{background:var(--dcc-bg-alt);border-radius:var(--dcc-radius);padding:1.1rem 1.25rem;margin-bottom:1.1rem}
.comment-meta{font-size:.85rem;color:var(--dcc-muted);margin-bottom:.5em}
.comment-form p{margin-bottom:1rem}
.comment-form label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.3em}

/* ==========================================================================
   16. Blocks / alignment
   ========================================================================== */
.alignleft{float:left;margin:.35em 1.5em 1em 0}
.alignright{float:right;margin:.35em 0 1em 1.5em}
.aligncenter{margin-inline:auto;display:block}
.alignwide{width:min(100vw - 2rem,1000px);margin-inline:auto;max-width:none}
.alignfull{width:100vw;margin-left:calc(50% - 50vw);max-width:none}
.wp-caption{max-width:100%}
.sticky .dcc-card__title::before{content:"★ ";color:var(--dcc-gold)}

/* ==========================================================================
   17. Utility
   ========================================================================== */
.dcc-mt0{margin-top:0}
.dcc-mb0{margin-bottom:0}
.dcc-muted{color:var(--dcc-muted)}
.dcc-eyebrow{display:block;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dcc-red);margin-bottom:.6em}
.dcc-lead{font-size:1.12rem;color:var(--dcc-body)}
.dcc-updated{font-size:.82rem;color:var(--dcc-muted)}
@media print{.dcc-header,.dcc-footer,.dcc-ad,.dcc-sidebar,.dcc-share,.dcc-topbar{display:none!important}body{font-size:12pt}}

/* ==========================================================================
   18. Generated cover images (posts with no featured image)
   ========================================================================== */
.dcc-cover{display:block;width:100%}
.dcc-card__media .dcc-cover,.dcc-list__media .dcc-cover{height:100%}
.dcc-entry__thumb .dcc-cover{height:auto;aspect-ratio:1200/630;border-radius:var(--dcc-radius)}

/* ==========================================================================
   19. In-article figures
   ========================================================================== */
.dcc-figure{margin:2.2rem 0;border:1px solid var(--dcc-line);border-radius:var(--dcc-radius);overflow:hidden;background:#fff}
.dcc-figure img{width:100%;height:auto;display:block}
.dcc-figure figcaption{font-size:.86rem;color:var(--dcc-muted);padding:.7rem 1rem;border-top:1px solid var(--dcc-line);background:var(--dcc-bg-alt);margin:0}
.dcc-cover-img{width:100%;height:100%;object-fit:cover;display:block}
.dcc-entry__thumb .dcc-cover-img{height:auto;aspect-ratio:1200/630}
