/*
Theme Name:  iSupport Small Biz
Theme URI:   https://isupportsmallbiz.com
Description: Custom child theme for iSupport Small Biz global directory. Built on Hello Elementor.
Author:      KamKal Marketing & Media, Inc.
Author URI:  https://kamkal.com
Template:    hello-elementor
Version:     1.0.0
Text Domain: isupport
Tags:        directory, geodirectory, business, global
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --color-navy:        #0A2640;
  --color-navy-deep:   #061A2E;
  --color-navy-mid:    #0E3358;
  --color-green:       #1A6B4A;
  --color-green-light: #E8F4F0;
  --color-green-dark:  #125236;
  --color-amber:       #F5A623;
  --color-amber-light: #FEF3C7;
  --color-amber-dark:  #D4891A;
  --color-warm-white:  #F7F4EF;
  --color-card:        #FFFFFF;
  --color-border:      #E8E4DE;
  --color-border-dark: #D5D0C8;
  --color-surface:     #F2F0EB;
  --color-text-primary:   #2D2D2D;
  --color-text-secondary: #4B5563;
  --color-text-muted:     #6B7280;
  --color-text-faint:     #9CA3AF;
  --color-text-inverse:   #FFFFFF;
  --color-success:        #1A6B4A;
  --color-success-bg:     #E8F4F0;
  --color-warning:        #854F0B;
  --color-warning-bg:     #FEF3C7;
  --color-info:           #185FA5;
  --color-info-bg:        #E0F2FE;
  --font-display: 'Syne', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  1.875rem;
  --text-4xl:  2.25rem;
  --text-5xl:  3rem;
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-pill: 100px;
  --shadow-sm:  0 1px 3px rgba(10,38,64,0.08), 0 1px 2px rgba(10,38,64,0.04);
  --shadow-md:  0 4px 12px rgba(10,38,64,0.10), 0 2px 4px rgba(10,38,64,0.06);
  --shadow-lg:  0 8px 24px rgba(10,38,64,0.12), 0 4px 8px rgba(10,38,64,0.06);
  --shadow-xl:  0 16px 48px rgba(10,38,64,0.16), 0 8px 16px rgba(10,38,64,0.08);
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease;
  --container-max: 1200px;
  --nav-height: 64px;
}

/* RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-warm-white);line-height:1.65;-webkit-font-smoothing:antialiased;}
img,video{max-width:100%;height:auto;display:block;}
a{color:var(--color-green);text-decoration:none;transition:color var(--transition-fast);}
a:hover{color:var(--color-green-dark);}
button{font-family:var(--font-body);cursor:pointer;border:none;background:none;}
input,textarea,select{font-family:var(--font-body);font-size:var(--text-base);}
ul,ol{list-style:none;}

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-0.02em;color:var(--color-navy);}
h1{font-size:clamp(var(--text-3xl),5vw,var(--text-5xl));}
h2{font-size:clamp(var(--text-2xl),4vw,var(--text-4xl));}
h3{font-size:clamp(var(--text-xl),3vw,var(--text-3xl));}
h4{font-size:var(--text-xl);}
p{margin-bottom:var(--space-4);}
p:last-child{margin-bottom:0;}

/* LAYOUT */
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6);}
.grid{display:grid;gap:var(--space-6);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}
.flex{display:flex;}
.flex--center{align-items:center;justify-content:center;}
.flex--between{align-items:center;justify-content:space-between;}
.flex--gap-sm{gap:var(--space-3);}
.flex--gap-md{gap:var(--space-4);}
.flex--gap-lg{gap:var(--space-6);}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;line-height:1;padding:.75rem 1.5rem;border-radius:var(--radius-pill);transition:all var(--transition-base);cursor:pointer;white-space:nowrap;border:2px solid transparent;}
.btn--primary{background:var(--color-amber);color:var(--color-navy);border-color:var(--color-amber);}
.btn--primary:hover{background:var(--color-amber-dark);border-color:var(--color-amber-dark);color:var(--color-navy);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.btn--ghost{background:rgba(255,255,255,.1);color:var(--color-text-inverse);border-color:rgba(255,255,255,.25);}
.btn--ghost:hover{background:rgba(255,255,255,.2);color:var(--color-text-inverse);}
.btn--green{background:var(--color-green);color:var(--color-text-inverse);border-color:var(--color-green);}
.btn--green:hover{background:var(--color-green-dark);border-color:var(--color-green-dark);color:var(--color-text-inverse);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.btn--sm{font-size:var(--text-xs);padding:.5rem 1rem;}
.btn--lg{font-size:var(--text-base);padding:1rem 2rem;}
.btn--full{width:100%;}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:.7rem;font-weight:600;letter-spacing:.04em;padding:.2rem .6rem;border-radius:var(--radius-pill);white-space:nowrap;line-height:1.4;}
.badge--black-owned{background:#1a1a1a;color:#fff;}
.badge--african-owned{background:#7B3F00;color:#fff;}
.badge--caribbean-owned{background:#1A5276;color:#fff;}
.badge--asian-owned{background:#6C3483;color:#fff;}
.badge--east-asian-owned{background:#4A235A;color:#fff;}
.badge--southeast-asian-owned{background:#512E5F;color:#fff;}
.badge--south-asian-owned{background:#6D4C41;color:#fff;}
.badge--latino-owned{background:#C0392B;color:#fff;}
.badge--middle-eastern-owned{background:#117A65;color:#fff;}
.badge--indigenous-owned{background:#7D6608;color:#fff;}
.badge--pacific-islander-owned{background:#1F618D;color:#fff;}
.badge--woman-owned{background:#5B2C6F;color:#fff;}
.badge--lgbtq-owned{background:#E91E8C;color:#fff;}
.badge--veteran-owned{background:#154360;color:#fff;}
.badge--disability-owned{background:#1B4332;color:#fff;}
.badge--immigrant-owned{background:#7E5109;color:#fff;}
.badge--faith-based{background:#4A235A;color:#fff;}
.badge--verified{background:var(--color-green-light);color:var(--color-green-dark);}
.badge--featured{background:var(--color-amber-light);color:var(--color-warning);}
.badge--online-shop{background:var(--color-info-bg);color:var(--color-info);}
.badge--ships-worldwide{background:var(--color-green-light);color:var(--color-green);}
.badge--open-now{background:var(--color-green-light);color:var(--color-green);}

/* NAVIGATION */
.site-header{background:var(--color-navy);height:var(--nav-height);position:sticky;top:0;z-index:1000;border-bottom:1px solid rgba(255,255,255,.08);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:var(--space-6);}
.site-logo{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text-inverse);letter-spacing:-.02em;flex-shrink:0;}
.site-logo span{color:var(--color-amber);}
.site-logo:hover{color:var(--color-text-inverse);}
.site-nav{display:flex;align-items:center;gap:var(--space-6);}
.site-nav__link{font-size:var(--text-sm);font-weight:500;color:rgba(255,255,255,.7);}
.site-nav__link:hover{color:var(--color-text-inverse);}
.site-nav__cta{font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;color:var(--color-navy);background:var(--color-amber);padding:.5rem 1.1rem;border-radius:var(--radius-pill);transition:all var(--transition-fast);}
.site-nav__cta:hover{background:var(--color-amber-dark);color:var(--color-navy);transform:translateY(-1px);}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:28px;padding:4px;cursor:pointer;}
.nav-toggle span{display:block;height:2px;background:rgba(255,255,255,.8);border-radius:2px;}

/* HERO */
.hero{background:var(--color-navy);padding:var(--space-16) 0 var(--space-12);text-align:center;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(26,107,74,.15) 0%,transparent 70%);pointer-events:none;}
.hero__eyebrow{font-size:var(--text-xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-amber);margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:center;gap:var(--space-3);}
.hero__eyebrow::before,.hero__eyebrow::after{content:'';display:block;width:24px;height:1px;background:var(--color-amber);opacity:.5;}
.hero__headline{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);font-weight:700;color:var(--color-text-inverse);line-height:1.1;letter-spacing:-.03em;margin-bottom:var(--space-5);max-width:700px;margin-left:auto;margin-right:auto;}
.hero__sub{font-size:var(--text-lg);color:rgba(255,255,255,.65);line-height:1.6;max-width:520px;margin:0 auto var(--space-8);}
.hero__search{max-width:600px;margin:0 auto var(--space-5);}
.search-bar{display:flex;align-items:center;background:var(--color-card);border-radius:var(--radius-pill);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-xl);}
.search-bar__icon{display:flex;align-items:center;padding:0 var(--space-4);color:var(--color-text-muted);flex-shrink:0;}
.search-bar__input{flex:1;border:none;background:transparent;padding:.875rem 0;font-size:var(--text-base);color:var(--color-text-primary);outline:none;}
.search-bar__input::placeholder{color:var(--color-text-faint);}
.search-bar__divider{width:1px;height:24px;background:var(--color-border);flex-shrink:0;}
.search-bar__region{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;position:relative;}
.search-bar__region select{position:absolute;inset:0;opacity:0;cursor:pointer;}
.search-bar__btn{background:var(--color-amber);color:var(--color-navy);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;padding:.75rem 1.5rem;border-radius:var(--radius-pill);margin:5px;flex-shrink:0;transition:all var(--transition-fast);}
.search-bar__btn:hover{background:var(--color-amber-dark);}
.hero__tags{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap;}
.hero__tag{font-size:var(--text-xs);font-weight:500;padding:.35rem .875rem;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);background:rgba(255,255,255,.06);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;}
.hero__tag:hover{background:rgba(255,255,255,.15);color:var(--color-text-inverse);}

/* STATS BAR */
.stats-bar{background:var(--color-green);padding:var(--space-4) 0;}
.stats-bar__inner{display:flex;justify-content:center;align-items:center;gap:var(--space-10);flex-wrap:wrap;}
.stat__number{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-inverse);line-height:1;}
.stat__label{font-size:var(--text-xs);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:var(--space-1);}

/* SECTION */
.section{padding:var(--space-12) 0;}
.section--white{background:var(--color-card);}
.section--navy{background:var(--color-navy);}
.section--green{background:var(--color-green);}
.section__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3);}
.section__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-navy);}
.section__link{font-size:var(--text-sm);font-weight:500;color:var(--color-green);display:flex;align-items:center;gap:var(--space-1);}

/* CATEGORY CARDS */
.cat-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);text-align:center;cursor:pointer;transition:all var(--transition-base);text-decoration:none;display:block;}
.cat-card:hover{border-color:var(--color-green);box-shadow:var(--shadow-md);transform:translateY(-2px);}
.cat-card__icon{font-size:1.75rem;color:var(--color-green);margin-bottom:var(--space-3);display:block;}
.cat-card__name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--color-navy);margin-bottom:var(--space-1);}
.cat-card__count{font-size:var(--text-xs);color:var(--color-text-muted);}

/* LISTING CARDS */
.listing-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base);text-decoration:none;display:flex;flex-direction:column;}
.listing-card:hover{border-color:var(--color-green);box-shadow:var(--shadow-md);transform:translateY(-3px);}
.listing-card__thumb{height:140px;background:var(--color-green-light);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0;}
.listing-card__thumb img{width:100%;height:100%;object-fit:cover;}
.listing-card__thumb-icon{font-size:2.5rem;color:var(--color-green);opacity:.6;}
.listing-card__body{padding:var(--space-4);flex:1;display:flex;flex-direction:column;}
.listing-card__badges{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-2);}
.listing-card__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;color:var(--color-navy);margin-bottom:var(--space-1);line-height:1.3;}
.listing-card__category{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-3);}
.listing-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
.listing-card__location{font-size:var(--text-xs);color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-1);}
.listing-card__rating{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-amber);font-weight:500;}
.listing-card__rating span{color:var(--color-text-muted);font-weight:400;}

/* FILTER BAR */
.filter-bar{padding:var(--space-4) 0;background:var(--color-warm-white);border-bottom:1px solid var(--color-border);position:sticky;top:var(--nav-height);z-index:100;}
.filter-bar__inner{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;}
.filter-bar__label{font-size:var(--text-xs);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);flex-shrink:0;}
.filter-btn{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:500;padding:.4rem .875rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;}
.filter-btn:hover{border-color:var(--color-navy);color:var(--color-navy);}
.filter-btn.active{background:var(--color-navy);color:var(--color-text-inverse);border-color:var(--color-navy);}
.filter-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* OWNERSHIP IDENTITY */
.identity-section{background:var(--color-navy);padding:var(--space-12) 0;}
.identity-section__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-inverse);margin-bottom:var(--space-2);}
.identity-section__sub{font-size:var(--text-sm);color:rgba(255,255,255,.6);margin-bottom:var(--space-6);}
.identity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-3);}
.identity-pill{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);padding:var(--space-3);text-align:center;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:block;}
.identity-pill:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);}
.identity-pill__icon{font-size:1.25rem;color:rgba(255,255,255,.75);margin-bottom:var(--space-2);display:block;}
.identity-pill__label{font-size:var(--text-xs);font-weight:500;color:rgba(255,255,255,.7);line-height:1.3;}

/* REGION BAR */
.region-bar{background:var(--color-green);padding:var(--space-3) 0;overflow:hidden;}
.region-bar__inner{display:flex;align-items:center;gap:var(--space-3);overflow-x:auto;scrollbar-width:none;}
.region-bar__inner::-webkit-scrollbar{display:none;}
.region-bar__label{font-size:var(--text-xs);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap;flex-shrink:0;}
.region-pill{font-size:var(--text-xs);font-weight:500;padding:.35rem .875rem;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7);white-space:nowrap;flex-shrink:0;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;}
.region-pill:hover{background:rgba(255,255,255,.12);color:var(--color-text-inverse);}
.region-pill.active{background:var(--color-amber);color:var(--color-navy);border-color:var(--color-amber);font-weight:700;}

/* LISTING DETAIL */
.listing-hero{background:var(--color-navy);padding:var(--space-6) 0 0;}
.listing-hero__breadcrumb{font-size:var(--text-xs);color:rgba(255,255,255,.4);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;}
.listing-hero__breadcrumb a{color:rgba(255,255,255,.65);}
.listing-hero__breadcrumb a:hover{color:var(--color-text-inverse);}
.listing-hero__top{display:flex;gap:var(--space-5);align-items:flex-start;margin-bottom:var(--space-5);}
.listing-avatar{width:72px;height:72px;border-radius:var(--radius-lg);background:var(--color-green);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--color-text-inverse);flex-shrink:0;border:2px solid rgba(255,255,255,.15);overflow:hidden;}
.listing-avatar img{width:100%;height:100%;object-fit:cover;}
.listing-hero__info{flex:1;min-width:0;}
.listing-hero__badges{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3);}
.listing-hero__name{font-family:var(--font-display);font-size:clamp(1.4rem,4vw,2rem);font-weight:700;color:var(--color-text-inverse);line-height:1.15;margin-bottom:var(--space-2);letter-spacing:-.02em;}
.listing-hero__category{font-size:var(--text-sm);color:rgba(255,255,255,.55);margin-bottom:var(--space-3);}
.listing-hero__rating{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;}
.rating-stars{display:flex;gap:2px;color:var(--color-amber);font-size:var(--text-base);}
.rating-num{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;color:var(--color-text-inverse);}
.rating-count{font-size:var(--text-sm);color:rgba(255,255,255,.5);}
.listing-hero__location{font-size:var(--text-xs);color:rgba(255,255,255,.5);display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);}
.listing-cta-strip{display:flex;gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap;}
.listing-cta-strip .btn--primary{flex:1;min-width:160px;}
.listing-body{padding:var(--space-8) 0;}
.listing-body__grid{display:grid;grid-template-columns:1fr 280px;gap:var(--space-6);align-items:start;}
.content-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);}
.content-card__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--color-navy);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);}
.content-card__title i{color:var(--color-green);}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);}
.service-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);}
.service-item__name{font-size:var(--text-sm);font-weight:500;color:var(--color-navy);margin-bottom:var(--space-1);}
.service-item__desc{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5;}
.service-item__price{font-size:var(--text-xs);font-weight:600;color:var(--color-green);margin-top:var(--space-2);}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
.product-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all var(--transition-fast);}
.product-item:hover{border-color:var(--color-green);box-shadow:var(--shadow-sm);}
.product-item__img{height:80px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;}
.product-item__body{padding:var(--space-2) var(--space-3);}
.product-item__name{font-size:var(--text-xs);font-weight:500;color:var(--color-navy);margin-bottom:var(--space-1);}
.product-item__price{font-size:var(--text-xs);font-weight:600;color:var(--color-green);}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);}
.gallery-thumb{height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-green-light);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--color-green);cursor:pointer;position:relative;}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;}
.gallery-thumb__more{position:absolute;inset:0;background:rgba(10,38,64,.6);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;color:var(--color-text-inverse);border-radius:var(--radius-md);}
.review-item{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);}
.review-item:last-child{border-bottom:none;padding-bottom:0;}
.review-item__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2);}
.reviewer{display:flex;align-items:center;gap:var(--space-3);}
.reviewer__avatar{width:36px;height:36px;border-radius:50%;background:var(--color-green-light);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;color:var(--color-green-dark);flex-shrink:0;}
.reviewer__name{font-size:var(--text-sm);font-weight:500;color:var(--color-navy);}
.reviewer__date{font-size:var(--text-xs);color:var(--color-text-faint);}
.review-item__text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;}
.faq-item{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);cursor:pointer;}
.faq-item:last-child{border-bottom:none;padding-bottom:0;}
.faq-item__question{font-size:var(--text-sm);font-weight:500;color:var(--color-navy);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:0;}
.faq-item__question i{color:var(--color-text-muted);flex-shrink:0;}
.faq-item__answer{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.65;margin-top:var(--space-3);}
.sidebar-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);}
.info-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);}
.info-row:last-child{border-bottom:none;}
.info-row i{color:var(--color-green);flex-shrink:0;margin-top:2px;font-size:1rem;}
.info-row__label{font-size:var(--text-xs);color:var(--color-text-muted);min-width:54px;}
.info-row__value{color:var(--color-text-primary);line-height:1.5;}
.info-row__value a{color:var(--color-green);}
.hours-row{display:flex;justify-content:space-between;font-size:var(--text-xs);padding:var(--space-1) 0;}
.hours-row__day{color:var(--color-text-muted);}
.hours-row__time{font-weight:500;color:var(--color-text-primary);}
.hours-row--today .hours-row__time{color:var(--color-green);}
.map-embed{height:140px;background:var(--color-green-light);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-green);font-size:var(--text-sm);margin-bottom:var(--space-3);overflow:hidden;}
.map-embed iframe{width:100%;height:100%;border:none;}
.claim-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;margin-bottom:var(--space-4);}
.claim-card__title{font-size:var(--text-sm);font-weight:600;color:var(--color-navy);margin-bottom:var(--space-2);}
.claim-card__sub{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5;margin-bottom:var(--space-4);}
.shop-hero-card{background:linear-gradient(135deg,var(--color-navy),var(--color-green-dark));border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;margin-bottom:var(--space-4);}
.shop-hero-card__name{font-size:var(--text-sm);font-weight:600;color:var(--color-text-inverse);margin-bottom:var(--space-2);}
.shop-hero-card__sub{font-size:var(--text-xs);color:rgba(255,255,255,.6);line-height:1.5;margin-bottom:var(--space-4);}
.promo-card{background:var(--color-amber-light);border:1px solid #F5D48A;border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);}
.promo-card__label{font-size:var(--text-xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--color-warning);margin-bottom:var(--space-2);}
.promo-card__code{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:700;color:var(--color-navy);letter-spacing:.05em;margin-bottom:var(--space-2);}
.promo-card__sub{font-size:var(--text-xs);color:#633806;}

/* CATEGORY-CITY PAGE */
.category-hero{background:var(--color-navy);padding:var(--space-8) 0 var(--space-6);}
.category-hero__inner{display:flex;gap:var(--space-6);align-items:flex-start;justify-content:space-between;}
.category-hero__eyebrow{font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-amber);margin-bottom:var(--space-3);}
.category-hero__title{font-family:var(--font-display);font-size:clamp(1.4rem,4vw,2.2rem);font-weight:700;color:var(--color-text-inverse);line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--space-3);}
.category-hero__summary{font-size:var(--text-sm);color:rgba(255,255,255,.6);line-height:1.65;max-width:480px;margin-bottom:var(--space-5);}
.category-hero__stats{display:flex;gap:var(--space-6);}
.quick-answer{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);min-width:200px;flex-shrink:0;}
.quick-answer__label{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:var(--space-3);}
.quick-answer__item{font-size:var(--text-xs);color:rgba(255,255,255,.75);padding:var(--space-2) 0;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:flex-start;gap:var(--space-2);line-height:1.4;}
.quick-answer__item:last-child{border-bottom:none;}
.quick-answer__item i{color:var(--color-amber);flex-shrink:0;font-size:.8rem;margin-top:1px;}
.editorial-summary{background:var(--color-card);border:1px solid var(--color-border);border-left:3px solid var(--color-green);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);}
.editorial-summary__label{font-size:var(--text-xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--color-green);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);}
.editorial-summary__text{font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.7;}
.category-body{padding:var(--space-8) 0;}
.category-body__grid{display:grid;grid-template-columns:1fr 220px;gap:var(--space-6);align-items:start;}
.listing-list{display:flex;flex-direction:column;gap:var(--space-3);}
.listing-list-item{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;display:flex;gap:var(--space-4);align-items:flex-start;transition:all var(--transition-base);text-decoration:none;}
.listing-list-item:hover{border-color:var(--color-green);box-shadow:var(--shadow-md);}
.listing-list-item__thumb{width:60px;height:60px;border-radius:var(--radius-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden;}
.listing-list-item__thumb img{width:100%;height:100%;object-fit:cover;}
.listing-list-item__body{flex:1;min-width:0;}
.listing-list-item__top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-2);}
.listing-list-item__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;color:var(--color-navy);line-height:1.2;}
.listing-list-item__cta{font-size:var(--text-xs);font-weight:500;color:var(--color-green);white-space:nowrap;flex-shrink:0;}
.listing-list-item__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5;margin:var(--space-2) 0;}
.listing-list-item__meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);}
.city-list{display:flex;flex-direction:column;}
.city-link{font-size:var(--text-xs);color:var(--color-green);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;text-decoration:none;}
.city-link:hover{color:var(--color-green-dark);}
.city-link:last-child{border-bottom:none;}
.city-count{font-size:var(--text-xs);color:var(--color-text-faint);}
.sub-cat-link{font-size:var(--text-xs);color:var(--color-text-primary);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-2);text-decoration:none;}
.sub-cat-link:hover{color:var(--color-green);}
.sub-cat-link:last-child{border-bottom:none;}
.sub-cat-link i{color:var(--color-green);font-size:.9rem;}
.owner-cta-card{background:var(--color-navy);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;margin-bottom:var(--space-4);}
.owner-cta-card__title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-inverse);margin-bottom:var(--space-2);}
.owner-cta-card__sub{font-size:var(--text-xs);color:rgba(255,255,255,.55);line-height:1.5;margin-bottom:var(--space-4);}

/* BIZ CTA SECTION */
.biz-cta-section{background:var(--color-green);padding:var(--space-12) 0;text-align:center;}
.biz-cta-section__title{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;color:var(--color-text-inverse);margin-bottom:var(--space-3);}
.biz-cta-section__sub{font-size:var(--text-base);color:rgba(255,255,255,.7);max-width:480px;margin:0 auto var(--space-6);line-height:1.6;}
.biz-cta-section__btns{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;}

/* FOOTER */
.site-footer{background:var(--color-navy-deep);padding:var(--space-4) 0;}
.site-footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4);}
.site-footer__logo{font-size:var(--text-xs);color:rgba(255,255,255,.4);}
.site-footer__links{display:flex;gap:var(--space-4);}
.site-footer__link{font-size:var(--text-xs);color:rgba(255,255,255,.35);}
.site-footer__link:hover{color:rgba(255,255,255,.7);}

/* GD OVERRIDES */
.geodir-category-listing{margin:0;padding:0;}
.geodir-category-listing-item{margin:0;}
.geodir_more_info{display:none;}
.gd-bubble{display:none;}

/* UTILITIES */
.text-center{text-align:center;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
.show-more-link{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--color-green);margin-top:var(--space-4);text-decoration:none;}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.animate-fade-up{animation:fadeUp .4s ease both;}
.animate-fade-up--delay-1{animation-delay:.1s;}
.animate-fade-up--delay-2{animation-delay:.2s;}
.animate-fade-up--delay-3{animation-delay:.3s;}

/* RESPONSIVE */
@media(max-width:1024px){.listing-body__grid,.category-body__grid{grid-template-columns:1fr;}}
@media(max-width:768px){
  :root{--nav-height:56px;}
  .site-nav{display:none;}
  .nav-toggle{display:flex;}
  .hero{padding:var(--space-10) 0 var(--space-8);}
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .grid--3{grid-template-columns:repeat(2,1fr);}
  .grid--2{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:1fr;}
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .category-hero__inner{flex-direction:column;}
  .quick-answer{width:100%;}
  .biz-cta-section__btns{flex-direction:column;align-items:center;}
  .section{padding:var(--space-8) 0;}
  .container{padding:0 var(--space-4);}
}
@media(max-width:480px){
  .grid--4,.grid--3{grid-template-columns:1fr 1fr;}
  .product-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
}
