/*
Theme Name: Assam Directory Theme
Theme URI: https://assamdirectory.com
Author: Assam Directory
Author URI: https://assamdirectory.com
Description: A YellowPages.com-style business directory theme for Assam Directory.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assam-directory
*/

/* ==========================================================================
   0. HARD RESET — Neutralize WordPress & Theme Defaults
   ========================================================================== */

body,
body.home,
body.archive,
body.single,
body.single-listing,
body.page,
body.search {
    margin: 0 !important;
    padding: 0 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #222 !important;
    background: #f5f5f5 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

/* Kill WordPress default link underlines and colors */
body a,
body a:link,
body a:visited {
    text-decoration: none !important;
    color: #1a0dab !important;
    transition: color 0.15s ease !important;
}

body a:hover,
body a:focus {
    color: #1a0dab !important;
    text-decoration: underline !important;
}

/* Reset all headings */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
    font-family: Arial, Helvetica, sans-serif !important;
    color: #222 !important;
    margin: 0 0 0.5em 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
}

/* Reset paragraphs */
body p {
    margin: 0 0 1em 0 !important;
    padding: 0 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* Reset lists */
body ul,
body ol {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body li {
    margin: 0 !important;
    padding: 0 !important;
}

/* Reset images */
body img {
    max-width: 100% !important;
    height: auto !important;
    border: 0 !important;
    vertical-align: middle !important;
}

/* Reset form elements */
body input,
body select,
body textarea,
body button {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    box-sizing: border-box !important;
}

/* Box sizing global */
body *,
body *::before,
body *::after {
    box-sizing: border-box !important;
}

/* Remove WordPress admin bar spacing if logged in */
body.admin-bar .yp-topbar {
    margin-top: 0 !important;
}


/* ==========================================================================
   1. TOPBAR — Dark utility bar at the very top
   ========================================================================== */

body .yp-topbar {
    display: block !important;
    width: 100% !important;
    background: #2a2a2a !important;
    color: #ccc !important;
    font-size: 12px !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    position: relative !important;
    z-index: 100 !important;
}

body .yp-topbar-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 7px 20px !important;
    width: 100% !important;
}

body .yp-topbar a,
body .yp-topbar a:link,
body .yp-topbar a:visited {
    color: #ccc !important;
    font-size: 12px !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

body .yp-topbar a:hover {
    color: #fff !important;
    text-decoration: none !important;
}

body .yp-topbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}

body .yp-topbar-right {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}

body .yp-topbar-right a {
    padding: 0 !important;
}


/* ==========================================================================
   2. HEADER — Yellow branded header with search
   ========================================================================== */

body .yp-header {
    display: block !important;
    width: 100% !important;
    background: #fcd900 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: 1px solid #e6c300 !important;
    position: relative !important;
    z-index: 99 !important;
}

body .yp-header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 12px 20px !important;
    width: 100% !important;
    gap: 30px !important;
}

/* =========================================================================
   FRONT PAGE
   ========================================================================= */
body .yp-hero { background-color: #ffd400 !important; padding: 60px 0 !important; text-align: center !important; }
body .yp-hero h1 { font-size: 42px !important; font-weight: 800 !important; margin-bottom: 30px !important; color: #222 !important; letter-spacing: -1px !important; }
body .yp-hero h1 sup { font-size: 16px !important; vertical-align: top !important; position: relative !important; top: -5px !important; }
body .yp-hero-search { display: flex !important; max-width: 900px !important; margin: 0 auto !important; background: #fff !important; border-radius: 4px !important; padding: 5px !important; box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important; position: relative !important; }
body .yp-hero-search input[type="text"] { flex: 1 !important; border: none !important; padding: 15px 20px !important; font-size: 18px !important; outline: none !important; color: #222 !important; }
body .yp-hero-search input[name="s"] { border-right: 1px solid #ddd !important; }
body .yp-hero-search button { background: #d40000 !important; color: #fff !important; border: none !important; padding: 0 40px !important; font-size: 20px !important; font-weight: bold !important; cursor: pointer !important; border-radius: 0 3px 3px 0 !important; transition: background 0.2s !important; }
body .yp-hero-search button:hover { background: #b30000 !important; }
body #ajax-search-results { position: absolute !important; top: 100% !important; left: 0 !important; width: 100% !important; background: #fff !important; text-align: left !important; border-radius: 0 0 4px 4px !important; box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important; z-index: 100 !important; margin-top: 5px !important; display: none !important; }

body .yp-categories-section { padding: 60px 0 !important; background: #fff !important; }
body .yp-categories-section h2 { text-align: center !important; font-size: 28px !important; font-weight: 800 !important; margin-bottom: 40px !important; color: #222 !important; }
body .yp-cat-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 20px !important; max-width: 1000px !important; margin: 0 auto !important; }
body .yp-cat-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; padding: 25px 15px !important; background: #f9f9f9 !important; border: 1px solid #eee !important; border-radius: 4px !important; color: #333 !important; font-weight: bold !important; font-size: 15px !important; transition: all 0.2s !important; }
body .yp-cat-card:hover { border-color: #ffd400 !important; background: #fff !important; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; text-decoration: none !important; color: #1a0dab !important; }
body .yp-cat-icon { font-size: 32px !important; margin-bottom: 15px !important; }

/* Responsive */
@media (max-width: 991px) {
    body .yp-single-body, body .yp-archive-wrap { flex-direction: column !important; }
    body .yp-single-sidebar, body .yp-archive-sidebar { width: 100% !important; flex: none !important; }
    body .yp-single-header-inner { flex-direction: column !important; gap: 15px !important; }
    body .yp-single-contact-area { text-align: left !important; align-items: flex-start !important; }
    body .yp-single-actions { justify-content: flex-start !important; }
    body .yp-footer-grid { grid-template-columns: repeat(2, 1fr) !important; }
    body .yp-cat-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 767px) {
    body .yp-header-inner { flex-direction: column !important; align-items: flex-start !important; }
    body .yp-header-search { margin-left: 0 !important; width: 100% !important; margin-top: 15px !important; flex-direction: column !important; }
    body .yp-search-field { border-right: none !important; border-bottom: 1px solid #ddd !important; }
    body .yp-search-btn { padding: 12px 0 !important; width: 100% !important; }
    body .yp-result { flex-direction: column !important; }
    body .yp-result-contact { flex: none !important; text-align: left !important; align-items: flex-start !important; margin-top: 10px !important; }
    body .yp-result-actions { justify-content: flex-start !important; }
    body .yp-hero-search { flex-direction: column !important; padding: 10px !important; }
    body .yp-hero-search input[name="s"] { border-right: none !important; border-bottom: 1px solid #eee !important; }
    body .yp-hero-search button { border-radius: 3px !important; padding: 15px !important; margin-top: 10px !important; }
    body .yp-cat-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Logo */
body .yp-logo {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    text-decoration: none !important;
}

body .yp-logo img {
    height: 40px !important;
    width: auto !important;
    display: block !important;
}

body .yp-logo-text {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #222 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
}

body .yp-logo-text:hover {
    text-decoration: none !important;
    color: #222 !important;
}

body .yp-logo-text span {
    color: #222 !important;
}

/* Header Search Form */
body .yp-header-search {
    display: flex !important;
    align-items: flex-end !important;
    flex: 1 1 auto !important;
    gap: 0 !important;
    min-width: 0 !important;
}

body .yp-search-field {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 0% !important;
    min-width: 0 !important;
    position: relative !important;
}

body .yp-search-field label {
    display: block !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 3px 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
}

body .yp-search-field input[type="text"],
body .yp-search-field input[type="search"] {
    display: block !important;
    width: 100% !important;
    height: 40px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    color: #222 !important;
    background: #fff !important;
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
    outline: none !important;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.08) !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    line-height: normal !important;
}

body .yp-search-field input[type="text"]:focus,
body .yp-search-field input[type="search"]:focus {
    border-color: #999 !important;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.12) !important;
    outline: none !important;
}

body .yp-search-field input::placeholder {
    color: #999 !important;
    opacity: 1 !important;
    font-style: italic !important;
}

/* First search field has rounded left corners */
body .yp-search-field:first-child input {
    border-radius: 4px 0 0 4px !important;
    border-right: none !important;
}

/* Second search field has no border-radius */
body .yp-search-field:nth-child(2) input {
    border-radius: 0 !important;
}

/* Search Button */
body .yp-search-btn,
body button.yp-search-btn,
body input.yp-search-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 40px !important;
    padding: 0 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #fff !important;
    background: #d40000 !important;
    border: 1px solid #b30000 !important;
    border-left: none !important;
    border-radius: 0 4px 4px 0 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 40px !important;
    flex-shrink: 0 !important;
    align-self: flex-end !important;
    margin: 0 !important;
    transition: background 0.15s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

body .yp-search-btn:hover,
body button.yp-search-btn:hover {
    background: #b30000 !important;
    color: #fff !important;
    text-decoration: none !important;
}

/* Search icon inside button */
body .yp-search-btn svg,
body .yp-search-btn i {
    fill: #fff !important;
    color: #fff !important;
    width: 16px !important;
    height: 16px !important;
    margin-right: 4px !important;
}


/* ==========================================================================
   3. NAVIGATION BAR (optional nav below header)
   ========================================================================== */

body .yp-nav {
    display: block !important;
    width: 100% !important;
    background: #fff !important;
    border-bottom: 1px solid #ddd !important;
    padding: 0 !important;
    margin: 0 !important;
}

body .yp-nav-inner {
    display: flex !important;
    align-items: center !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    width: 100% !important;
    gap: 0 !important;
}

body .yp-nav a,
body .yp-nav a:link,
body .yp-nav a:visited {
    display: inline-block !important;
    padding: 10px 16px !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #222 !important;
    text-decoration: none !important;
    border-bottom: 2px solid transparent !important;
    transition: all 0.15s ease !important;
}

body .yp-nav a:hover,
body .yp-nav a.active {
    color: #d40000 !important;
    border-bottom-color: #d40000 !important;
    text-decoration: none !important;
}


/* ==========================================================================
   4. BREADCRUMBS
   ========================================================================== */

body .yp-breadcrumbs {
    display: block !important;
    width: 100% !important;
    background: #f5f5f5 !important;
    border-bottom: 1px solid #e5e5e5 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 12px !important;
}

body .yp-breadcrumbs-inner {
    display: flex !important;
    align-items: center !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 8px 20px !important;
    width: 100% !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
}

body .yp-breadcrumbs a,
body .yp-breadcrumbs a:link,
body .yp-breadcrumbs a:visited {
    color: #1a0dab !important;
    font-size: 12px !important;
    text-decoration: none !important;
}

body .yp-breadcrumbs a:hover {
    text-decoration: underline !important;
}

body .yp-breadcrumbs span {
    color: #666 !important;
    font-size: 12px !important;
}

body .yp-breadcrumbs .yp-breadcrumb-sep {
    margin: 0 6px !important;
    color: #999 !important;
}


/* ==========================================================================
   5. HOMEPAGE — Hero / Popular Categories / CTA
   ========================================================================== */

body .yp-hero {
    display: block !important;
    width: 100% !important;
    background: #fcd900 !important;
    padding: 40px 20px 50px 20px !important;
    margin: 0 !important;
    text-align: center !important;
}

body .yp-hero-inner {
    max-width: 700px !important;
    margin: 0 auto !important;
}

body .yp-hero h1,
body .yp-hero .yp-hero-title {
    font-size: 32px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 8px 0 !important;
    line-height: 1.2 !important;
}

body .yp-hero p,
body .yp-hero .yp-hero-sub {
    font-size: 16px !important;
    color: #444 !important;
    margin: 0 0 24px 0 !important;
}

/* Hero search (larger version of header search) */
body .yp-hero-search {
    display: flex !important;
    align-items: stretch !important;
    max-width: 700px !important;
    margin: 0 auto !important;
    gap: 0 !important;
}

body .yp-hero-search input[type="text"],
body .yp-hero-search input[type="search"] {
    flex: 1 1 0% !important;
    height: 48px !important;
    padding: 10px 16px !important;
    font-size: 16px !important;
    color: #222 !important;
    background: #fff !important;
    border: 2px solid #fff !important;
    border-radius: 4px 0 0 4px !important;
    outline: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
    margin: 0 !important;
    -webkit-appearance: none !important;
}

body .yp-hero-search input:last-of-type {
    border-radius: 0 !important;
    border-left: 1px solid #e5e5e5 !important;
}

body .yp-hero-search .yp-search-btn,
body .yp-hero-search button {
    height: 48px !important;
    padding: 0 32px !important;
    font-size: 16px !important;
    border-radius: 0 4px 4px 0 !important;
}

/* Popular categories grid */
body .yp-popular-cats {
    display: block !important;
    width: 100% !important;
    background: #fff !important;
    padding: 40px 20px !important;
    margin: 0 !important;
}

body .yp-popular-cats-inner {
    max-width: 1200px !important;
    margin: 0 auto !important;
}

body .yp-popular-cats h2,
body .yp-popular-cats .yp-section-title {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 20px 0 !important;
    text-align: center !important;
}

body .yp-cats-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .yp-cat-card {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 16px !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    transition: box-shadow 0.15s ease, border-color 0.15s ease !important;
}

body .yp-cat-card:hover {
    border-color: #bbb !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    text-decoration: none !important;
}

body .yp-cat-card .yp-cat-icon {
    width: 40px !important;
    height: 40px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f5f5f5 !important;
    border-radius: 50% !important;
    font-size: 20px !important;
    color: #666 !important;
}

body .yp-cat-card .yp-cat-name {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #222 !important;
}


/* ==========================================================================
   6. ARCHIVE / SEARCH RESULTS — Sidebar + Listings
   ========================================================================== */

body .yp-archive-wrap {
    display: flex !important;
    align-items: flex-start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    width: 100% !important;
    gap: 20px !important;
    min-height: 60vh !important;
}

/* Left filter sidebar */
body .yp-archive-sidebar {
    display: block !important;
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    flex-shrink: 0 !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    padding: 0 !important;
    margin: 0 !important;
}

body .yp-archive-sidebar .yp-filter-section {
    padding: 14px 16px !important;
    border-bottom: 1px solid #e5e5e5 !important;
}

body .yp-archive-sidebar .yp-filter-section:last-child {
    border-bottom: none !important;
}

body .yp-archive-sidebar .yp-filter-title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

body .yp-archive-sidebar .yp-filter-section a,
body .yp-archive-sidebar .yp-filter-section a:link,
body .yp-archive-sidebar .yp-filter-section a:visited {
    display: block !important;
    padding: 4px 0 !important;
    font-size: 13px !important;
    color: #1a0dab !important;
    text-decoration: none !important;
}

body .yp-archive-sidebar .yp-filter-section a:hover {
    text-decoration: underline !important;
}

body .yp-archive-sidebar .yp-filter-section label {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 3px 0 !important;
    font-size: 13px !important;
    color: #222 !important;
    cursor: pointer !important;
    font-weight: 400 !important;
}

body .yp-archive-sidebar input[type="checkbox"] {
    width: 14px !important;
    height: 14px !important;
    margin: 0 !important;
    accent-color: #d40000 !important;
}

/* Main results area */
body .yp-archive-main {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* Archive header / result count */
body .yp-archive-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
}

body .yp-archive-header h1 {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

body .yp-result-count {
    font-size: 13px !important;
    color: #666 !important;
    margin: 0 !important;
}

body .yp-sort-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #666 !important;
}

body .yp-sort-bar select {
    height: 30px !important;
    padding: 4px 8px !important;
    font-size: 13px !important;
    border: 1px solid #ccc !important;
    border-radius: 3px !important;
    background: #fff !important;
    color: #222 !important;
}

/* Sponsored / Ad labels */
body .yp-ad-label {
    display: inline-block !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 0 4px 0 !important;
}


/* ==========================================================================
   7. RESULT CARD — Individual listing in archive
   ========================================================================== */

body .yp-result {
    display: flex !important;
    align-items: flex-start !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    padding: 16px !important;
    margin: 0 0 12px 0 !important;
    gap: 14px !important;
    transition: box-shadow 0.15s ease !important;
    position: relative !important;
}

body .yp-result:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Result number */
body .yp-result-number {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    background: #f5f5f5 !important;
    border-radius: 50% !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #666 !important;
    flex-shrink: 0 !important;
    margin-top: 2px !important;
}

/* Thumbnail */
body .yp-result-thumb {
    display: block !important;
    width: 100px !important;
    height: 100px !important;
    min-width: 100px !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    border-radius: 4px !important;
    border: 1px solid #e5e5e5 !important;
    background: #f9f9f9 !important;
}

body .yp-result-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* Result info (middle section) */
body .yp-result-info {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body .yp-result-name,
body .yp-result-info h2.yp-result-name {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
}

body .yp-result-name a,
body .yp-result-name a:link,
body .yp-result-name a:visited,
body h2.yp-result-name a,
body h2.yp-result-name a:link,
body h2.yp-result-name a:visited {
    color: #1a0dab !important;
    text-decoration: none !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

body .yp-result-name a:hover,
body h2.yp-result-name a:hover {
    text-decoration: underline !important;
    color: #1a0dab !important;
}

/* Stars / Rating */
body .yp-result-rating,
body .yp-single-meta .yp-result-rating {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 0 4px 0 !important;
    font-size: 13px !important;
    line-height: 1 !important;
}

body .yp-stars {
    display: inline-flex !important;
    align-items: center !important;
    gap: 1px !important;
    color: #e8960f !important;
    font-size: 14px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
}

body .yp-stars .star-full,
body .yp-stars .dashicons-star-filled {
    color: #e8960f !important;
}

body .yp-stars .star-empty,
body .yp-stars .dashicons-star-empty {
    color: #ddd !important;
}

body .yp-stars .star-half {
    color: #e8960f !important;
}

body .yp-stars svg {
    width: 14px !important;
    height: 14px !important;
    fill: #e8960f !important;
}

body .yp-rating-count {
    font-size: 12px !important;
    color: #666 !important;
    margin-left: 2px !important;
}

/* Years in business badge */
body .yp-result-years {
    display: inline-block !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #666 !important;
    background: #f5f5f5 !important;
    border: 1px solid #ddd !important;
    border-radius: 3px !important;
    padding: 2px 8px !important;
    margin: 0 0 6px 8px !important;
    vertical-align: middle !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

/* Result categories / tags */
body .yp-result-cats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 8px !important;
    margin: 4px 0 6px 0 !important;
}

body .yp-result-cats a,
body .yp-result-cats a:link,
body .yp-result-cats a:visited {
    font-size: 12px !important;
    color: #1a0dab !important;
    text-decoration: none !important;
}

body .yp-result-cats a:hover {
    text-decoration: underline !important;
}

/* Result snippet */
body .yp-result-snippet {
    font-size: 13px !important;
    color: #666 !important;
    margin: 4px 0 0 0 !important;
    line-height: 1.5 !important;
}

body .yp-result-address {
    font-size: 13px !important;
    color: #666 !important;
    margin: 4px 0 0 0 !important;
}

body .yp-result-address::before {
    content: "" !important;
}

/* Result contact area (right side) */
body .yp-result-contact {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    flex-shrink: 0 !important;
    min-width: 160px !important;
    gap: 8px !important;
    text-align: right !important;
}

body .yp-result-phone {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #222 !important;
    white-space: nowrap !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

body .yp-result-phone a,
body .yp-result-phone a:link,
body .yp-result-phone a:visited {
    color: #222 !important;
    text-decoration: none !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

body .yp-result-phone a:hover {
    color: #d40000 !important;
    text-decoration: none !important;
}

/* Small action buttons in result cards */
body .yp-btn-sm {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 32px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: all 0.15s ease !important;
    line-height: 32px !important;
    gap: 4px !important;
}

body a.yp-btn-sm,
body a.yp-btn-sm:link,
body a.yp-btn-sm:visited {
    text-decoration: none !important;
}

body .yp-btn-sm.yp-btn-primary,
body a.yp-btn-sm.yp-btn-primary {
    color: #fff !important;
    background: #d40000 !important;
    border: 1px solid #b30000 !important;
}

body .yp-btn-sm.yp-btn-primary:hover {
    background: #b30000 !important;
    color: #fff !important;
}

body .yp-btn-sm.yp-btn-outline,
body a.yp-btn-sm.yp-btn-outline {
    color: #222 !important;
    background: #fff !important;
    border: 1px solid #ccc !important;
}

body .yp-btn-sm.yp-btn-outline:hover {
    border-color: #999 !important;
    background: #f5f5f5 !important;
    color: #222 !important;
}


/* ==========================================================================
   8. PAGINATION
   ========================================================================== */

body .yp-pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 24px 0 !important;
    margin: 0 !important;
}

body .yp-pagination a,
body .yp-pagination span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    border: 1px solid #ddd !important;
    border-radius: 3px !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
}

body .yp-pagination a,
body .yp-pagination a:link,
body .yp-pagination a:visited {
    color: #1a0dab !important;
    background: #fff !important;
}

body .yp-pagination a:hover {
    background: #f5f5f5 !important;
    border-color: #bbb !important;
    text-decoration: none !important;
}

body .yp-pagination span.current,
body .yp-pagination .current {
    color: #fff !important;
    background: #d40000 !important;
    border-color: #d40000 !important;
    font-weight: 700 !important;
}


/* ==========================================================================
   9. SINGLE LISTING PAGE — Header
   ========================================================================== */

body .yp-single-header {
    display: block !important;
    width: 100% !important;
    background: #fff !important;
    border-bottom: 1px solid #ddd !important;
    padding: 0 !important;
    margin: 0 !important;
}

body .yp-single-header-inner {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 24px 20px !important;
    width: 100% !important;
    gap: 30px !important;
}

/* Title Area (left) */
body .yp-single-title-area {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body .yp-single-title,
body h1.yp-single-title {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    line-height: 1.25 !important;
}

/* Verified badge */
body .yp-verified-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #0b7a0b !important;
    background: #e6f4e6 !important;
    border: 1px solid #b3d9b3 !important;
    border-radius: 3px !important;
    padding: 2px 8px !important;
    margin-left: 10px !important;
    vertical-align: middle !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

body .yp-verified-badge svg,
body .yp-verified-badge i {
    width: 12px !important;
    height: 12px !important;
    color: #0b7a0b !important;
    fill: #0b7a0b !important;
}

/* Single meta (stars + rating count) */
body .yp-single-meta {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 6px 0 8px 0 !important;
    flex-wrap: wrap !important;
}

/* Single cats */
body .yp-single-cats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 8px !important;
    margin: 6px 0 0 0 !important;
}

body .yp-single-cats a,
body .yp-single-cats a:link,
body .yp-single-cats a:visited {
    font-size: 13px !important;
    color: #1a0dab !important;
    text-decoration: none !important;
}

body .yp-single-cats a:hover {
    text-decoration: underline !important;
}

body .yp-single-cats .yp-cat-sep {
    color: #999 !important;
    margin: 0 2px !important;
}

/* Contact Area (right) */
body .yp-single-contact-area {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    flex-shrink: 0 !important;
    min-width: 220px !important;
    gap: 8px !important;
    text-align: right !important;
}

body .yp-single-phone {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.2 !important;
}

body .yp-single-phone a,
body .yp-single-phone a:link,
body .yp-single-phone a:visited {
    color: #222 !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    font-size: 24px !important;
}

body .yp-single-phone a:hover {
    color: #d40000 !important;
    text-decoration: none !important;
}

body .yp-single-address {
    font-size: 13px !important;
    color: #666 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.5 !important;
    text-align: right !important;
}

/* Action buttons row */
body .yp-single-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin: 4px 0 0 0 !important;
}

/* Primary red button */
body .yp-btn-primary,
body a.yp-btn-primary,
body a.yp-btn-primary:link,
body a.yp-btn-primary:visited,
body button.yp-btn-primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 38px !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #fff !important;
    background: #d40000 !important;
    border: 1px solid #b30000 !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: background 0.15s ease !important;
    gap: 6px !important;
    line-height: 38px !important;
}

body .yp-btn-primary:hover,
body a.yp-btn-primary:hover,
body button.yp-btn-primary:hover {
    background: #b30000 !important;
    color: #fff !important;
    text-decoration: none !important;
}

/* Outline button */
body .yp-btn-outline,
body a.yp-btn-outline,
body a.yp-btn-outline:link,
body a.yp-btn-outline:visited,
body button.yp-btn-outline {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 38px !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #222 !important;
    background: #fff !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: all 0.15s ease !important;
    gap: 6px !important;
    line-height: 38px !important;
}

body .yp-btn-outline:hover,
body a.yp-btn-outline:hover,
body button.yp-btn-outline:hover {
    border-color: #999 !important;
    background: #f5f5f5 !important;
    color: #222 !important;
    text-decoration: none !important;
}


/* ==========================================================================
   10. SINGLE LISTING PAGE — Body (Main + Sidebar)
   ========================================================================== */

body .yp-single-body {
    display: flex !important;
    align-items: flex-start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    width: 100% !important;
    gap: 24px !important;
}

/* Main content area (2/3) */
body .yp-single-main {
    display: block !important;
    flex: 2 1 0% !important;
    min-width: 0 !important;
}

/* Sidebar (1/3) */
body .yp-single-sidebar {
    display: block !important;
    flex: 1 1 0% !important;
    min-width: 280px !important;
    max-width: 360px !important;
    flex-shrink: 0 !important;
}

/* Content boxes (used in both main & sidebar) */
body .yp-content-box {
    display: block !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

body .yp-content-box-header {
    display: flex !important;
    align-items: center !important;
    padding: 12px 16px !important;
    background: #f9f9f9 !important;
    border-bottom: 1px solid #e5e5e5 !important;
    margin: 0 !important;
}

body .yp-content-box-header h2,
body .yp-content-box-header h3,
body .yp-content-box-header .yp-box-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
}

body .yp-content-box-body {
    display: block !important;
    padding: 16px !important;
    margin: 0 !important;
}

body .yp-content-box-body p {
    font-size: 14px !important;
    color: #222 !important;
    line-height: 1.6 !important;
    margin: 0 0 10px 0 !important;
}

body .yp-content-box-body p:last-child {
    margin-bottom: 0 !important;
}


/* ==========================================================================
   11. HOURS TABLE
   ========================================================================== */

body .yp-hours-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

body .yp-hours-table tr {
    border: none !important;
}

body .yp-hours-table td {
    padding: 6px 0 !important;
    font-size: 14px !important;
    color: #222 !important;
    border: none !important;
    border-bottom: 1px solid #f0f0f0 !important;
    vertical-align: top !important;
    background: transparent !important;
}

body .yp-hours-table tr:last-child td {
    border-bottom: none !important;
}

body .yp-hours-table td:first-child {
    font-weight: 700 !important;
    width: 120px !important;
    color: #222 !important;
    padding-right: 16px !important;
}

body .yp-hours-table td:last-child {
    color: #444 !important;
}

body .yp-hours-table .yp-today td {
    color: #0b7a0b !important;
    font-weight: 700 !important;
}

body .yp-hours-open {
    color: #0b7a0b !important;
    font-weight: 700 !important;
    font-size: 13px !important;
}

body .yp-hours-closed {
    color: #d40000 !important;
    font-weight: 700 !important;
    font-size: 13px !important;
}


/* ==========================================================================
   12. GALLERY GRID
   ========================================================================== */

body .yp-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .yp-gallery-grid img {
    width: 100% !important;
    height: 140px !important;
    object-fit: cover !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    transition: opacity 0.15s ease !important;
    display: block !important;
}

body .yp-gallery-grid img:hover {
    opacity: 0.85 !important;
}

body .yp-gallery-grid .yp-gallery-item {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 3px !important;
}

body .yp-gallery-more {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0,0,0,0.6) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    cursor: pointer !important;
}


/* ==========================================================================
   13. REVIEWS SECTION
   ========================================================================== */

body .yp-review {
    display: block !important;
    padding: 16px 0 !important;
    border-bottom: 1px solid #e5e5e5 !important;
    margin: 0 !important;
}

body .yp-review:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

body .yp-review-header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 8px 0 !important;
}

body .yp-review-avatar {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: #e5e5e5 !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
}

body .yp-review-avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

body .yp-review-author {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #222 !important;
}

body .yp-review-date {
    font-size: 12px !important;
    color: #999 !important;
}

body .yp-review-body {
    font-size: 14px !important;
    color: #222 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}


/* ==========================================================================
   14. MAP SECTION
   ========================================================================== */

body .yp-map-wrap {
    display: block !important;
    width: 100% !important;
    height: 220px !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    margin: 0 !important;
    background: #e8e8e8 !important;
}

body .yp-map-wrap iframe {
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    display: block !important;
}


/* ==========================================================================
   15. SIDEBAR WIDGETS (Single Listing Sidebar)
   ========================================================================== */

body .yp-single-sidebar .yp-content-box {
    margin: 0 0 16px 0 !important;
}

body .yp-sidebar-info-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .yp-sidebar-info-list li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
    font-size: 14px !important;
    color: #222 !important;
}

body .yp-sidebar-info-list li:last-child {
    border-bottom: none !important;
}

body .yp-sidebar-info-list .yp-info-label {
    font-weight: 700 !important;
    color: #222 !important;
    min-width: 80px !important;
    flex-shrink: 0 !important;
    font-size: 13px !important;
}

body .yp-sidebar-info-list .yp-info-value {
    color: #444 !important;
    font-size: 14px !important;
    word-break: break-word !important;
}

body .yp-sidebar-info-list .yp-info-value a,
body .yp-sidebar-info-list .yp-info-value a:link,
body .yp-sidebar-info-list .yp-info-value a:visited {
    color: #1a0dab !important;
}

/* CTA box in sidebar */
body .yp-cta-box {
    display: block !important;
    background: #fff8e1 !important;
    border: 1px solid #fcd900 !important;
    border-radius: 4px !important;
    padding: 20px !important;
    margin: 0 0 16px 0 !important;
    text-align: center !important;
}

body .yp-cta-box h3 {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 8px 0 !important;
}

body .yp-cta-box p {
    font-size: 13px !important;
    color: #666 !important;
    margin: 0 0 14px 0 !important;
}


/* ==========================================================================
   16. SERVICES / AMENITIES LIST
   ========================================================================== */

body .yp-services-list,
body .yp-amenities-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body .yp-services-list li,
body .yp-amenities-list li {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 13px !important;
    color: #222 !important;
    background: #f5f5f5 !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 3px !important;
    padding: 4px 10px !important;
}

body .yp-amenities-list li .yp-check {
    color: #0b7a0b !important;
    font-weight: 700 !important;
    font-size: 14px !important;
}


/* ==========================================================================
   17. FOOTER
   ========================================================================== */

body .yp-footer {
    display: block !important;
    width: 100% !important;
    background: #2a2a2a !important;
    color: #ccc !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

body .yp-footer-inner {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 40px 20px 30px 20px !important;
    width: 100% !important;
}

body .yp-footer-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .yp-footer-col {
    display: block !important;
    min-width: 0 !important;
}

body .yp-footer-col h3,
body .yp-footer-col h4,
body .yp-footer-col .yp-footer-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin: 0 0 14px 0 !important;
    padding: 0 0 8px 0 !important;
    border-bottom: 1px solid #444 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

body .yp-footer-col ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .yp-footer-col ul li {
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
}

body .yp-footer-col a,
body .yp-footer-col a:link,
body .yp-footer-col a:visited {
    color: #aaa !important;
    font-size: 13px !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

body .yp-footer-col a:hover {
    color: #fff !important;
    text-decoration: none !important;
}

body .yp-footer-col p {
    font-size: 13px !important;
    color: #aaa !important;
    line-height: 1.6 !important;
    margin: 0 0 8px 0 !important;
}

/* Footer bottom bar */
body .yp-footer-bottom {
    display: block !important;
    width: 100% !important;
    background: #222 !important;
    border-top: 1px solid #444 !important;
    padding: 0 !important;
    margin: 0 !important;
}

body .yp-footer-bottom-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 14px 20px !important;
    width: 100% !important;
}

body .yp-footer-bottom p,
body .yp-footer-bottom .yp-copyright {
    font-size: 12px !important;
    color: #888 !important;
    margin: 0 !important;
}

body .yp-footer-bottom a,
body .yp-footer-bottom a:link,
body .yp-footer-bottom a:visited {
    color: #aaa !important;
    font-size: 12px !important;
}

body .yp-footer-bottom a:hover {
    color: #fff !important;
}

body .yp-footer-bottom-links {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}


/* ==========================================================================
   18. CONTACT / CLAIM FORMS (Modal or Inline)
   ========================================================================== */

body .yp-form-group {
    display: block !important;
    margin: 0 0 14px 0 !important;
}

body .yp-form-group label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 0 4px 0 !important;
}

body .yp-form-group input[type="text"],
body .yp-form-group input[type="email"],
body .yp-form-group input[type="tel"],
body .yp-form-group textarea,
body .yp-form-group select {
    display: block !important;
    width: 100% !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    color: #222 !important;
    background: #fff !important;
    border: 1px solid #ccc !important;
    border-radius: 3px !important;
    outline: none !important;
}

body .yp-form-group input:focus,
body .yp-form-group textarea:focus,
body .yp-form-group select:focus {
    border-color: #999 !important;
    box-shadow: 0 0 0 2px rgba(0,0,0,0.05) !important;
}

body .yp-form-group textarea {
    min-height: 100px !important;
    resize: vertical !important;
}

body .yp-form-submit {
    margin-top: 10px !important;
}


/* ==========================================================================
   19. ALERTS & NOTICES
   ========================================================================== */

body .yp-alert {
    display: block !important;
    padding: 12px 16px !important;
    margin: 0 0 16px 0 !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

body .yp-alert-success {
    background: #e6f4e6 !important;
    color: #0b7a0b !important;
    border: 1px solid #b3d9b3 !important;
}

body .yp-alert-error {
    background: #fde8e8 !important;
    color: #d40000 !important;
    border: 1px solid #f5c2c2 !important;
}

body .yp-alert-info {
    background: #e8f0fe !important;
    color: #1a0dab !important;
    border: 1px solid #c2d4f5 !important;
}

body .yp-alert-warning {
    background: #fff8e1 !important;
    color: #856404 !important;
    border: 1px solid #fcd900 !important;
}


/* ==========================================================================
   20. LOADING / SKELETON STATES
   ========================================================================== */

body .yp-skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%) !important;
    background-size: 200% 100% !important;
    animation: yp-shimmer 1.5s infinite !important;
    border-radius: 3px !important;
}

@keyframes yp-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}


/* ==========================================================================
   21. RESPONSIVE — Tablet (max-width: 960px)
   ========================================================================== */

@media screen and (max-width: 960px) {
    body .yp-header-inner {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        padding: 10px 16px !important;
    }

    body .yp-logo {
        justify-content: center !important;
    }

    body .yp-header-search {
        width: 100% !important;
    }

    body .yp-archive-wrap {
        flex-direction: column !important;
        gap: 16px !important;
        padding: 16px !important;
    }

    body .yp-archive-sidebar {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        order: -1 !important;
    }

    body .yp-single-header-inner {
        flex-direction: column !important;
        gap: 16px !important;
        padding: 20px 16px !important;
    }

    body .yp-single-contact-area {
        align-items: flex-start !important;
        text-align: left !important;
        min-width: 100% !important;
    }

    body .yp-single-address {
        text-align: left !important;
    }

    body .yp-single-body {
        flex-direction: column !important;
        gap: 16px !important;
        padding: 16px !important;
    }

    body .yp-single-sidebar {
        min-width: 100% !important;
        max-width: 100% !important;
    }

    body .yp-footer-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 24px !important;
    }

    body .yp-cats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}


/* ==========================================================================
   22. RESPONSIVE — Mobile (max-width: 640px)
   ========================================================================== */

@media screen and (max-width: 640px) {
    body .yp-topbar-inner {
        flex-direction: column !important;
        gap: 6px !important;
        padding: 6px 12px !important;
        text-align: center !important;
    }

    body .yp-topbar-left,
    body .yp-topbar-right {
        justify-content: center !important;
    }

    body .yp-header-inner {
        padding: 8px 12px !important;
    }

    body .yp-header-search {
        flex-direction: column !important;
        gap: 0 !important;
    }

    body .yp-search-field:first-child input {
        border-radius: 4px 4px 0 0 !important;
        border-right: 1px solid #ccc !important;
        border-bottom: none !important;
    }

    body .yp-search-field:nth-child(2) input {
        border-radius: 0 !important;
    }

    body .yp-search-btn,
    body button.yp-search-btn {
        width: 100% !important;
        border-radius: 0 0 4px 4px !important;
        border-left: 1px solid #b30000 !important;
        border-top: none !important;
    }

    body .yp-result {
        flex-direction: column !important;
        gap: 10px !important;
        padding: 12px !important;
    }

    body .yp-result-number {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
    }

    body .yp-result-thumb {
        width: 100% !important;
        height: 160px !important;
    }

    body .yp-result-contact {
        align-items: flex-start !important;
        text-align: left !important;
        width: 100% !important;
        min-width: 100% !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        flex-wrap: wrap !important;
    }

    body .yp-single-title,
    body h1.yp-single-title {
        font-size: 22px !important;
    }

    body .yp-single-phone {
        font-size: 20px !important;
    }

    body .yp-single-phone a {
        font-size: 20px !important;
    }

    body .yp-single-actions {
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    body .yp-btn-primary,
    body a.yp-btn-primary,
    body .yp-btn-outline,
    body a.yp-btn-outline {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        text-align: center !important;
    }

    body .yp-footer-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    body .yp-footer-bottom-inner {
        flex-direction: column !important;
        gap: 8px !important;
        text-align: center !important;
    }

    body .yp-cats-grid {
        grid-template-columns: 1fr !important;
    }

    body .yp-hero {
        padding: 24px 16px 30px 16px !important;
    }

    body .yp-hero h1 {
        font-size: 24px !important;
    }

    body .yp-hero-search {
        flex-direction: column !important;
    }

    body .yp-hero-search input[type="text"],
    body .yp-hero-search input[type="search"] {
        border-radius: 4px 4px 0 0 !important;
        border-left: 2px solid #fff !important;
    }

    body .yp-hero-search input:last-of-type {
        border-radius: 0 !important;
        border-left: 2px solid #fff !important;
    }

    body .yp-hero-search .yp-search-btn,
    body .yp-hero-search button {
        width: 100% !important;
        border-radius: 0 0 4px 4px !important;
    }

    body .yp-archive-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    body .yp-gallery-grid {
        grid-template-columns: 1fr !important;
    }

    body .yp-gallery-grid img {
        height: 180px !important;
    }

    body .yp-pagination {
        flex-wrap: wrap !important;
        gap: 4px !important;
    }
}


/* ==========================================================================
   23. PRINT STYLES
   ========================================================================== */

@media print {
    body .yp-topbar,
    body .yp-header,
    body .yp-nav,
    body .yp-footer,
    body .yp-footer-bottom,
    body .yp-archive-sidebar,
    body .yp-single-sidebar,
    body .yp-single-actions,
    body .yp-search-btn,
    body .yp-btn-primary,
    body .yp-btn-outline,
    body .yp-btn-sm {
        display: none !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
        font-size: 12pt !important;
    }

    body .yp-single-body,
    body .yp-archive-wrap {
        display: block !important;
        padding: 0 !important;
    }

    body .yp-single-main {
        width: 100% !important;
    }

    body .yp-result {
        page-break-inside: avoid !important;
        border: 1px solid #ccc !important;
    }
}


/* ==========================================================================
   24. WORDPRESS OVERRIDES — Nuclear specificity for WP defaults
   ========================================================================== */

/* Override WordPress entry-content styles */
body .entry-content,
body .post-content,
body .page-content,
body article .entry-content {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #222 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Override WP default link styles inside our components */
body .yp-result a,
body .yp-content-box a,
body .yp-single-header a,
body .yp-footer a {
    transition: color 0.15s ease !important;
}

/* Remove WP default post titles if they leak through */
body .entry-title {
    display: none !important;
}

/* Override WP widget styles */
body .widget,
body .widget-area {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
}

/* WordPress navigation override */
body .site-navigation,
body .main-navigation,
body .primary-menu,
body .nav-menu {
    font-family: Arial, Helvetica, sans-serif !important;
}

/* Override any default WordPress buttons */
body .wp-block-button__link,
body .wp-element-button {
    font-family: Arial, Helvetica, sans-serif !important;
}

/* Kill default post meta */
body .entry-meta,
body .post-meta,
body .byline,
body .posted-on,
body .cat-links,
body .tags-links,
body .comments-link,
body .edit-link {
    display: none !important;
}

/* Remove default WP post navigation */
body .post-navigation,
body .posts-navigation {
    display: none !important;
}

/* Override WP search form if it leaks through */
body .search-form {
    display: none !important;
}

/* Override WP comment form styles to match our theme */
body #respond,
body .comment-respond {
    font-family: Arial, Helvetica, sans-serif !important;
}

/* Ensure our classes win over WordPress Twenty-* theme defaults */
body.wp-custom-logo .yp-header,
body.logged-in .yp-header,
body.admin-bar .yp-header {
    background: #fcd900 !important;
}

body.wp-custom-logo .yp-topbar,
body.logged-in .yp-topbar,
body.admin-bar .yp-topbar {
    background: #2a2a2a !important;
}

body.wp-custom-logo .yp-footer,
body.logged-in .yp-footer,
body.admin-bar .yp-footer {
    background: #2a2a2a !important;
}

/* Remove any WordPress generated content wrappers that add padding */
body .site-content,
body .content-area,
body #primary,
body #main,
body #content,
body .site-main {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

body .site,
body #page,
body .hfeed {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
}

/* Remove any WP generated featured images from single listings */
body.single-listing .post-thumbnail,
body.single-listing .wp-post-image {
    display: none !important;
}

/* WordPress Gutenberg block overrides */
body .wp-block-group,
body .wp-block-columns {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

body .alignwide,
body .alignfull {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* ==========================================================================
   25. UTILITY CLASSES
   ========================================================================== */

body .yp-text-center {
    text-align: center !important;
}

body .yp-text-right {
    text-align: right !important;
}

body .yp-text-muted {
    color: #666 !important;
}

body .yp-text-small {
    font-size: 12px !important;
}

body .yp-mt-0 { margin-top: 0 !important; }
body .yp-mb-0 { margin-bottom: 0 !important; }
body .yp-mt-1 { margin-top: 8px !important; }
body .yp-mb-1 { margin-bottom: 8px !important; }
body .yp-mt-2 { margin-top: 16px !important; }
body .yp-mb-2 { margin-bottom: 16px !important; }
body .yp-mt-3 { margin-top: 24px !important; }
body .yp-mb-3 { margin-bottom: 24px !important; }
body .yp-pt-0 { padding-top: 0 !important; }
body .yp-pb-0 { padding-bottom: 0 !important; }

body .yp-hidden {
    display: none !important;
}

body .yp-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body .yp-clearfix::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

body .yp-truncate {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body .yp-flex {
    display: flex !important;
}

body .yp-flex-center {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body .yp-flex-between {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

body .yp-block {
    display: block !important;
}

body .yp-inline {
    display: inline !important;
}

body .yp-inline-block {
    display: inline-block !important;
}

body .yp-relative {
    position: relative !important;
}

body .yp-w-100 {
    width: 100% !important;
}
