@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&display=swap');

/* efan's Blocks — shared global styles */
:root {
    --efans-brown:    #2D1A0E;
    --efans-rose:     #C4785E;
    --efans-cream:    #FFF8F3;
    --efans-peach:    #F5DDD3;
    --efans-pink:     #FFB7C5;
    --efans-font-head: 'Playfair Display', Georgia, serif;
    --efans-font-body: 'Lato', sans-serif;

    /* Global centered-layout margin — the navbar's width is the standard.
       Change these two values to retune the side gutters site-wide. */
    --efans-container: 1400px;
    --efans-gutter:    40px;
}

.efans-section {
    width: 100%;
    box-sizing: border-box;
}

/* ══════════════════════════════════════════════════════════════
   GLOBAL CENTERED CONTAINER
   One consistent left/right margin (the navbar's) from header to
   footer, on every page. Each section's content block starts & ends
   on the same vertical lines as the navbar above it. Inner styling
   (fonts, colors, grids) is untouched — only the outer width/gutter.
   Hero & announcement bar are intentionally excluded (full-width).
══════════════════════════════════════════════════════════════ */
.efans-hdr__inner,
.efans-categories__inner,
.efans-product-grid__inner,
.efans-partners__inner,
.efans-testimonials__inner,
.efans-hosp__inner,
.efans-hosp__gallery,
.efans-delivery__inner,
.efans-ftr__inner {
    max-width: var(--efans-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--efans-gutter) !important;
    padding-right: var(--efans-gutter) !important;
    box-sizing: border-box;
}

/* ══════════════════════════════════════════════════════════════
   efan's CUSTOM HEADER
══════════════════════════════════════════════════════════════ */

/* Hide old theme header/footer completely */
#masthead, #colophon { display: none !important; }

/* ── Header shell ──────────────────────────────────────────── */
#efans-header {
    width: 100%;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 999;
    box-shadow: 0 1px 0 #f0e8e0;
}

/* Main bar */
.efans-hdr__bar { border-bottom: 1px solid #f0e8e0; }

.efans-hdr__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    height: 80px;
    gap: 16px;
}

/* ── Logo ──────────────────────────────────────────────────── */
.efans-hdr__logo { text-align: center; }
.efans-hdr__logo-link {
    font-family: 'Cardo', serif;
    font-size: 54.4px;
    font-weight: 600;
    color: #f22c68;
    text-decoration: none;
    line-height: 1;
    display: inline-block;
}
.efans-hdr__logo-link:hover { color: #f22c68; }

/* ── Nav lists ─────────────────────────────────────────────── */
.efans-hdr__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
}

/* Left nav aligned left, right nav aligned right */
.efans-hdr__nav--left  .efans-hdr__menu { justify-content: flex-start; }
.efans-hdr__nav--right .efans-hdr__menu { justify-content: flex-end; }

.efans-hdr__menu > li > a {
    font-family: 'Montserrat', sans-serif;
    font-size: 15.1px;
    font-weight: 600;
    color: #1f2022;
    text-decoration: none;
    padding: 0 14px;
    height: 80px;
    display: flex;
    align-items: center;
    white-space: nowrap;
    transition: color 0.15s;
}
.efans-hdr__menu > li > a:hover { color: #C4785E; }

/* Dropdown arrow for parent items */
.efans-hdr__menu .menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-left: 6px;
    margin-top: -3px;
    opacity: 0.7;
}

/* ── Dropdown sub-menu ─────────────────────────────────────── */
.efans-hdr__menu .menu-item-has-children { position: relative; }

.efans-hdr__menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 190px;
    background: #fff;
    border-top: 2px solid #C4785E;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.09);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
    z-index: 200;
}
.efans-hdr__menu .menu-item-has-children:hover > .sub-menu {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.efans-hdr__menu .sub-menu li a {
    display: block;
    padding: 10px 20px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    color: #333;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}
.efans-hdr__menu .sub-menu li a:hover { color: #C4785E; background: #fdf5f0; }

/* ── Right side wrapper ────────────────────────────────────── */
.efans-hdr__right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
}

/* ── Icon buttons ──────────────────────────────────────────── */
.efans-hdr__icons { display: flex; align-items: center; gap: 2px; margin-left: 8px; }

.efans-hdr__icon-btn {
    background: transparent !important;
    border: none;
    box-shadow: none;
    cursor: pointer;
    color: #1a1a1a;
    padding: 10px 8px;
    display: flex;
    align-items: center;
    text-decoration: none;
    position: relative;
    transition: color 0.15s;
}
.efans-hdr__icon-btn:hover { color: #C4785E; }

/* ── Language switcher ─────────────────────────────────────── */
.efans-hdr__lang { position: relative; }
.efans-hdr__lang-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent !important;
    border: none;
    box-shadow: none;
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 15.1px;
    font-weight: 600;
    color: #1f2022;
    padding: 10px 12px;
    transition: color 0.15s;
}
.efans-hdr__lang-btn:hover { color: #C4785E; }
.efans-hdr__lang-caret {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-top: -3px;
    opacity: 0.7;
}
.efans-hdr__lang-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 140px;
    background: #fff;
    border-top: 2px solid #C4785E;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.09);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
    z-index: 200;
}
.efans-hdr__lang:hover .efans-hdr__lang-menu {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.efans-hdr__lang-menu li a {
    display: block;
    padding: 10px 20px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    color: #333;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}
.efans-hdr__lang-menu li a:hover { color: #C4785E; background: #fdf5f0; }

.efans-hdr__cart-count {
    position: absolute;
    top: 2px;
    right: 2px;
    background: #C4785E;
    color: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
}

/* Hamburger — hidden on desktop */
.efans-hdr__burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: transparent !important;
    border: none;
    box-shadow: none;
    cursor: pointer;
    padding: 8px;
}
.efans-hdr__burger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #1a1a1a;
    border-radius: 2px;
    transition: background 0.15s;
}

/* ── Search drawer ─────────────────────────────────────────── */
.efans-hdr__search {
    border-bottom: 1px solid #f0e8e0;
    background: #fff;
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.25s ease, padding 0.25s;
    padding: 0 40px;
}
.efans-hdr__search[aria-hidden="false"] {
    max-height: 80px;
    padding: 14px 40px;
}
.efans-hdr__search-inner {
    max-width: 600px;
    margin: 0 auto;
}
.efans-hdr__search-inner form {
    display: flex;
    gap: 10px;
}
.efans-hdr__search-input {
    flex: 1;
    border: 1.5px solid #e0d8cf;
    border-radius: 6px;
    padding: 9px 16px;
    font-family: 'Lato', sans-serif;
    font-size: 15px;
    outline: none;
    color: #333;
}
.efans-hdr__search-input:focus { border-color: #C4785E; }
.efans-hdr__search-btn {
    background: #C4785E;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 9px 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.efans-hdr__search-btn:hover { background: #b05a40; }

/* ── Announcement bar ──────────────────────────────────────── */
.efans-hdr__announce {
    background: #f7e5e6;
    color: #9f8a54;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 10px 24px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Mobile nav overlay ────────────────────────────────────── */
.efans-mobile-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 1000;
}
.efans-mobile-overlay--active { display: block; }

/* ── Mobile slide-in nav ───────────────────────────────────── */
.efans-mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    height: 100%;
    background: #fff;
    z-index: 1001;
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    box-shadow: 4px 0 24px rgba(0,0,0,0.12);
}
.efans-mobile-nav[aria-hidden="false"] { transform: translateX(0); }

.efans-mobile-nav__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 20px 16px;
    border-bottom: 1px solid #f0e8e0;
}
.efans-mobile-nav__logo {
    font-family: 'Dancing Script', cursive;
    font-size: 32px;
    font-weight: 700;
    color: #C4785E;
}
.efans-mobile-nav__close {
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: #666;
    line-height: 1;
    padding: 4px 8px;
}

.efans-mobile-nav__list {
    list-style: none;
    margin: 0;
    padding: 8px 0;
}
.efans-mobile-nav__list li a {
    display: block;
    padding: 12px 20px;
    font-family: 'Lato', sans-serif;
    font-size: 15px;
    color: #1a1a1a;
    text-decoration: none;
    border-bottom: 1px solid #f8f0ea;
}
.efans-mobile-nav__list li a:hover { color: #C4785E; }

.efans-mobile-nav__list .sub-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: none;
    background: #fdf8f5;
}
.efans-mobile-nav__list .efans-open > .sub-menu { display: block; }
.efans-mobile-nav__list .sub-menu li a {
    padding-left: 36px;
    font-size: 14px;
    color: #555;
}

.efans-mobile-nav__list--secondary {
    border-top: 1px solid #f0e8e0;
    margin-top: 8px;
}

/* body scroll lock when mobile nav open */
body.efans-nav-open { overflow: hidden; }

/* ── Responsive breakpoints ────────────────────────────────── */
@media (max-width: 1024px) {
    .efans-hdr__inner  { padding: 0 20px; }
    .efans-hdr__menu > li > a { padding: 0 10px; font-size: 13.5px; }
}

@media (max-width: 860px) {
    .efans-hdr__nav { display: none; }
    .efans-hdr__burger { display: flex; }
    .efans-hdr__inner { grid-template-columns: auto 1fr auto; }
    .efans-hdr__logo  { text-align: left; }
    .efans-hdr__logo-link { font-size: 36px; }
}

/* ══════════════════════════════════════════════════════════════
   efan's CUSTOM FOOTER
══════════════════════════════════════════════════════════════ */

#efans-footer {
    width: 100%;
    background: #f7e5e6;
}

.efans-ftr__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 60px;
}

/* ── Main footer section ───────────────────────────────────── */
.efans-ftr__main { padding: 56px 0 48px; }

.efans-ftr__main .efans-ftr__inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 60px;
    align-items: start;
}

/* Headings */
.efans-ftr__heading {
    font-family: 'Cardo', Georgia, serif;
    font-size: 22px;
    font-weight: 600;
    font-style: normal;
    color: #9f8a54;
    margin: 0 0 20px;
}

/* Contact column */
.efans-ftr__address,
.efans-ftr__phones {
    font-family: 'DM Sans', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #9f8a54;
    line-height: 1.7;
    margin: 0 0 16px;
}

/* Quick Links two-column grid */
.efans-ftr__links-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
}

.efans-ftr__link-col {
    list-style: none;
    margin: 0;
    padding: 0;
}

.efans-ftr__link-col li {
    padding: 12px 0;
}

.efans-ftr__link-col a {
    font-family: 'DM Sans', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #9f8a54;
    text-decoration: none;
    transition: color 0.15s;
}
.efans-ftr__link-col a:hover { color: #8a6020; }

/* ── Bottom bar ────────────────────────────────────────────── */
.efans-ftr__bottom {
    border-top: 1px solid rgba(176,128,64,0.2);
    padding: 20px 0 28px;
}

.efans-ftr__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Social icons */
.efans-ftr__social { display: flex; gap: 10px; }

.efans-ftr__social-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #3a3a3a;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background 0.2s;
    flex-shrink: 0;
}
.efans-ftr__social-btn:hover { background: #C4785E; }

/* Payment badges */
.efans-ftr__payment { display: flex; align-items: center; gap: 8px; }

.efans-ftr__payment-card {
    font-family: 'Lato', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 8px;
    border-radius: 4px;
    border: 1.5px solid rgba(176,128,64,0.4);
    color: #b08040;
}
.efans-ftr__payment-card--visa  { color: #1a1f71; border-color: #1a1f71; }
.efans-ftr__payment-card--mc    { color: #eb001b; border-color: #eb001b; }
.efans-ftr__payment-card--upi   { color: #097939; border-color: #097939; }

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 768px) {
    .efans-ftr__inner { padding: 0 24px; }
    .efans-ftr__main .efans-ftr__inner { grid-template-columns: 1fr; gap: 32px; }
    .efans-ftr__links-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .efans-ftr__links-grid { grid-template-columns: 1fr; }
    .efans-ftr__bottom-inner { flex-direction: column; gap: 16px; }
}

/* ── Footer — pink/rose theme override ──────────────────────────────────── */

/* Background */
#colophon,
#colophon .site-footer-wrap,
#colophon .site-top-footer-wrap,
#colophon .site-top-footer-row-container,
#colophon .site-middle-footer-wrap,
#colophon .site-middle-footer-row-container,
#colophon .site-bottom-footer-wrap,
#colophon .site-bottom-footer-row-container,
#colophon .site-footer-row-container-inner {
    background: #fde8d8 !important;
    color: #b08040 !important;
}

/* Divider line between middle and bottom footer */
#colophon .site-middle-footer-wrap .site-footer-row-container-inner {
    border-bottom-color: rgba(180, 130, 60, 0.25) !important;
}

/* Widget titles (Contact Us, Quick Links) */
#colophon .site-middle-footer-inner-wrap .widget-area .widget-title,
#colophon .site-middle-footer-inner-wrap .widget-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 600 !important;
    font-size: 20px !important;
    color: #b08040 !important;
    letter-spacing: 0 !important;
}

/* Hide the empty second-column title */
#colophon .widget-title:empty { display: none !important; }

/* All text and links in middle footer */
#colophon .site-middle-footer-inner-wrap,
#colophon .site-middle-footer-inner-wrap p,
#colophon .site-middle-footer-inner-wrap li,
#colophon .site-middle-footer-inner-wrap a,
#colophon .site-middle-footer-wrap a {
    color: #b08040 !important;
    font-family: 'Lato', sans-serif !important;
}

#colophon .site-middle-footer-wrap a:hover {
    color: #8a6020 !important;
    text-decoration: none;
}

/* Contact info widget icons */
#colophon .contact-info-container p::before { color: #b08040 !important; }

/* List items — remove bullet points */
#colophon .site-middle-footer-inner-wrap .wp-block-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

#colophon .site-middle-footer-inner-wrap .wp-block-list li {
    margin-bottom: 18px;
}

/* Bottom footer — social icons keep dark circles, text turns gold */
#colophon .site-bottom-footer-inner-wrap,
#colophon .site-bottom-footer-inner-wrap p,
#colophon .site-bottom-footer-inner-wrap a,
#colophon .footer-html {
    color: #b08040 !important;
}

#colophon .footer-html a { color: #b08040 !important; }
#colophon .footer-html a:hover { color: #8a6020 !important; }

/* ══════════════════════════════════════════════════════════════
   efan's CUSTOM SHOP PAGE
══════════════════════════════════════════════════════════════ */

.efans-shop-page {
    background: #fff;
    width: 100%;
}

/* ── Hero Banner ── */
.efans-shop-hero {
    position: relative;
    width: 100%;
    height: 300px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.efans-shop-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(196, 120, 94, 0.4); /* Pinkish overlay */
}

.efans-shop-hero__inner {
    position: relative;
    z-index: 2;
}

.efans-shop-hero__breadcrumb {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #ffffff;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.efans-shop-hero__breadcrumb a {
    color: #ffffff;
    text-decoration: none;
}
.efans-shop-hero__breadcrumb .sep { opacity: 0.7; }

.efans-shop-hero__title {
    font-family: 'Cardo', Georgia, serif;
    font-size: 45px;
    font-weight: 700;
    color: #ffffff;
    margin: 0;
    line-height: 1;
}

/* ── Main Layout ── */
.efans-shop-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 40px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 24px;
    align-items: start;
}

/* ── Sidebar ── */
.efans-shop-sidebar {
    background: #fff;
    padding-right: 0;
}

.efans-shop-widget {
    margin-bottom: 30px;
    border: 1px solid #e1dede;
    border-radius: 8px;
    padding: 20px;
}

.efans-shop-widget__title {
    font-family: 'Helvetica World', Helvetica, Arial, sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #000000;
    margin: 0 0 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #d3d3d3;
    padding-bottom: 12px;
    text-transform: capitalize;
}

.efans-widget-toggle {
    font-weight: 700;
    font-size: 24px;
    color: #1a1a1a;
    cursor: pointer;
}

.efans-shop-widget__list {
    list-style: none;
    padding: 0 0 0 12px;
    margin: 0;
}

.efans-shop-widget__list li {
    margin-bottom: 12px;
    position: relative;
}

/* ── Categories list: checkboxes + scrollbar ── */
.efans-shop-widget__list--cats {
    max-height: 240px;
    overflow-y: auto;
    padding-right: 12px;
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c9c9c9 #f1f1f1;
}
.efans-shop-widget__list--cats::-webkit-scrollbar { width: 6px; }
.efans-shop-widget__list--cats::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; }
.efans-shop-widget__list--cats::-webkit-scrollbar-thumb { background: #c9c9c9; border-radius: 3px; }

.efans-shop-widget__list--cats li {
    display: flex;
    align-items: center;
    gap: 10px;
}

.efans-cat-check {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    border: 1px solid #d0c8c0;
    border-radius: 3px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    position: relative;
    background: #fff;
}
.efans-cat-check:checked {
    background-color: #9f8a54;
    border-color: #9f8a54;
}
.efans-cat-check:checked::after {
    content: '✓';
    color: #fff;
    position: absolute;
    left: 4px;
    top: -1px;
    font-size: 13px;
}

.efans-shop-widget__list a {
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #727975;
    text-decoration: none;
    transition: color 0.2s;
    display: block;
    padding-left: 0;
}

.efans-shop-widget__list li.active a {
    color: #9f8a54;
}

.efans-shop-widget__list li.active::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 2px;
    bottom: 2px;
    width: 2px;
    background-color: #9f8a54;
}

.efans-shop-widget__list a:hover {
    color: #9f8a54;
}

/* Color Swatches */
.efans-color-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.efans-swatch {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-block;
    cursor: pointer;
    border: 1px solid rgba(0,0,0,0.1);
}

/* Weight Buttons */
.efans-weight-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.efans-weight-buttons button {
    background: #fff;
    border: 1px solid #e0e0e0;
    color: #727975;
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
    padding: 6px 12px;
    cursor: pointer;
    border-radius: 2px;
    transition: all 0.2s;
}
.efans-weight-buttons button:hover {
    border-color: #9f8a54;
    color: #9f8a54;
}

/* Price Filter Widget Overrides */
.efans-shop-widget .widget_price_filter .price_slider_wrapper .ui-slider {
    background: #f0e8e0;
}
.efans-shop-widget .widget_price_filter .ui-slider .ui-slider-range,
.efans-shop-widget .widget_price_filter .ui-slider .ui-slider-handle {
    background: #C4785E;
}
.efans-shop-widget .widget_price_filter .price_slider_amount .button {
    background: #f5f0e8;
    color: #5a4a40;
    border: none;
    border-radius: 4px;
    font-family: 'Lato', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 8px 16px;
}

/* ── Main Shop Area ── */
.efans-shop-main {
    width: 100%;
}

.efans-shop-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
    padding-bottom: 4px;
}

.efans-shop-deliver-checkbox {
    font-family: 'DM Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #9f8a54; /* Goldish color */
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.efans-shop-deliver-checkbox input[type="checkbox"] {
    width: 22px;
    height: 22px;
    border: 1px solid #d0c8c0;
    border-radius: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    position: relative;
    flex-shrink: 0;
}
.efans-shop-deliver-checkbox input[type="checkbox"]:checked {
    background-color: #9f8a54;
    border-color: #9f8a54;
}
.efans-shop-deliver-checkbox input[type="checkbox"]:checked::after {
    content: '✓';
    color: #fff;
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    font-size: 15px;
    line-height: 1;
}

.efans-shop-topbar__right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.efans-shop-topbar__right .woocommerce-result-count {
    display: none !important; /* Hide result count in new design */
}

/* Hide the theme's grid/list view toggle buttons */
.efans-shop-topbar .base-product-toggle-container,
.efans-shop-topbar__right .base-product-toggle-container {
    display: none !important;
}

.efans-shop-topbar__right .woocommerce-ordering select {
    background: transparent;
    border: none;
    border-bottom: 1px solid #d9d9d9;
    min-width: 230px;
    padding: 10px 28px 10px 4px;
    font-family: 'Lexend', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: #4a4a4a;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23999%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 4px center;
    background-size: 16px;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
}

.efans-shop-topbar__right .woocommerce-ordering select:hover,
.efans-shop-topbar__right .woocommerce-ordering select:focus {
    border-bottom-color: #9f8a54;
    color: #1a1a1a;
}

/* ── Custom sorting dropdown (JS-enhanced) ──────────────────────────
   Native <option> highlight colour can't be reliably restyled across
   browsers, so JS replaces the select with this custom list whose
   highlight is the soft pink #F7E5E6. The native <select> is the
   no-JS fallback. */
.efans-shop-topbar__right .woocommerce-ordering.efans-enhanced select {
    display: none !important;
}

.efans-orderby {
    position: relative;
    min-width: 230px;
    font-family: 'Lexend', sans-serif;
}
.efans-orderby__current {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 4px;
    border-bottom: 1px solid #d9d9d9;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: #4a4a4a;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
}
.efans-orderby__current svg { flex-shrink: 0; transition: transform 0.2s; }
.efans-orderby.is-open .efans-orderby__current { border-bottom-color: #9f8a54; color: #1a1a1a; }
.efans-orderby.is-open .efans-orderby__current svg { transform: rotate(180deg); }

.efans-orderby__list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 60;
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #eee;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}
.efans-orderby.is-open .efans-orderby__list { opacity: 1; visibility: visible; transform: translateY(0); }

.efans-orderby__opt {
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    color: #4a4a4a;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}
.efans-orderby__opt:hover { background: #F7E5E6; color: #1a1a1a; }
.efans-orderby__opt.is-selected { background: #F7E5E6; color: #1a1a1a; font-weight: 600; }

/* ── Product Grid Overrides ── */
.efans-shop-main ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px 20px !important;
    margin: 0 !important;
}

.efans-shop-main ul.products li.product {
    margin: 0 !important;
    width: 100% !important;
    text-align: center;
}

.efans-shop-main ul.products li.product,
.efans-shop-main ul.products li.product .product-thumbnail,
.efans-shop-main ul.products li.product .product-thumbnail a,
.efans-shop-main ul.products li.product .product-thumbnail img {
    border-radius: 0 !important;
}

.efans-shop-main ul.products li.product .product-thumbnail {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
}

.efans-shop-main ul.products li.product .product-thumbnail img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/5;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.efans-shop-main ul.products li.product:hover .product-thumbnail img {
    transform: scale(1.05);
}

/* The button's parent is the positioning context for the overlay below */
.efans-shop-main ul.products li.product .product-details,
.efans-shop-main ul.products li.product .entry-content-wrap {
    position: relative !important;
    overflow: visible !important;
}

/* Add to Cart — always-visible overlay anchored to the bottom of the image.
   Its parent .entry-content-wrap is position:relative, and its top edge sits
   exactly at the image bottom (thumbnail margin-bottom:0), so anchoring to
   top:0 and translating up keeps the button on the image regardless of how
   many lines the title/price below it take. */
.efans-shop-main ul.products li.product .product-action-wrap,
.efans-shop-main ul.products.woo-archive-action-on-hover li.product .product-action-wrap {
    position: absolute !important;
    top: 0 !important;
    bottom: auto !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateY(calc(-100% - 14px)) !important;
    box-sizing: border-box;
    opacity: 1 !important;
    z-index: 10;
}

/* clear room between image and title (image now sits flush to text box) */
.efans-shop-main ul.products li.product .woocommerce-loop-product__title {
    margin-top: 16px !important;
}

.efans-shop-main ul.products li.product .product-action-wrap .button {
    display: block;
    width: 100%;
    background: rgba(161, 138, 87, 0.92) !important; /* semi-transparent gold overlay */
    color: #fff !important;
    font-family: 'Lexend', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 14px 0 !important;
    border-radius: 0 !important;
    text-align: center;
    border: none !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.efans-shop-main ul.products li.product .product-action-wrap .button:hover {
    background: #8e794b !important;
}

/* Badges (Sale, Best Seller) */
.efans-shop-main ul.products li.product .onsale,
.efans-shop-main ul.products li.product .product-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    left: auto;
    background: #1a1a1a; /* Black badge in new reference */
    color: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 10px;
    font-weight: 700;
    text-transform: capitalize;
    padding: 4px 12px;
    border-radius: 2px;
    line-height: 1;
    z-index: 5;
    margin: 0;
    min-height: auto;
    min-width: auto;
}

/* Product Info */
.efans-shop-main ul.products li.product h3,
.efans-shop-main ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Lexend', sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #1a1a1a !important;
    margin: 0 0 6px !important;
    line-height: 1.4 !important;
}

.efans-shop-main ul.products li.product .price {
    font-family: 'Lexend', sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important; /* Price is black in new reference */
    margin: 0 !important;
    display: flex;
    justify-content: center;
    gap: 8px;
    align-items: center;
}
.efans-shop-main ul.products li.product .price del {
    color: #999 !important;
    font-weight: 400 !important;
    margin-right: 0 !important;
    font-size: 13px !important;
}
/* Hide star ratings in the shop archive loop */
.efans-shop-main ul.products li.product .star-rating,
.efans-shop-main ul.products li.product .woocommerce-product-rating {
    display: none !important;
}

.efans-shop-main ul.products li.product .price ins {
    text-decoration: none !important;
    color: #1a1a1a !important;
    font-weight: 700 !important;
}

/* Hide theme's quick view and compare buttons which clutters the image */
.efans-shop-main ul.products li.product .woo-smart-quick-view,
.efans-shop-main ul.products li.product .woo-smart-compare,
.efans-shop-main ul.products li.product .yith-wcwl-add-to-wishlist,
.efans-shop-main ul.products li.product .woosc-btn {
    display: none !important;
}

/* Responsive */
@media (max-width: 1024px) {
    .efans-shop-container {
        grid-template-columns: 220px 1fr;
        padding: 40px 20px;
    }
    .efans-shop-main ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}

/* ══════════════════════════════════════════════════════════════
   efan's CUSTOM SINGLE PRODUCT PAGE
══════════════════════════════════════════════════════════════ */

/* Aggressively hide unwanted theme/plugin elements */
.single-product .woocommerce-breadcrumb,
.single-product .storefront-breadcrumb,
.single-product .site-breadcrumb,
.single-product .entry-hero.product-hero-section, /* whole hero band that only held the breadcrumb */
.single-product .summary > .woocommerce-product-rating,
.single-product .summary > .price,
.single-product .woosc-btn,
.single-product .yith-wcwl-add-to-wishlist,
.single-product .woosw-btn,
.single-product .single-product-extras,
.single-product .single-product-payments,
.single-product .woocommerce-product-gallery__trigger, /* image zoom/lightbox icon */
.single-product .product-delivery-info /* Guessing class for bottom text */ {
    display: none !important;
}

.single-product #wrap-summary {
    max-width: 1400px;
    margin: 40px auto;
    padding: 0 40px;
    display: flex !important;
    gap: 50px;
    align-items: flex-start;
}

/* Gallery: Make the gallery exactly the width of the main image so Flexslider
   measures it correctly. We create space for the thumbnails on the left using
   margin-left, and absolutely position the thumbnails into that margin. */
.single-product .woocommerce-product-gallery {
    width: calc(50% - 140px) !important; /* 50% minus half gap minus thumb space */
    float: none !important;
    margin: 0 0 0 160px !important; /* 160px space on left for thumbs (140px + 20px gap) */
    position: relative;
    box-sizing: border-box;
}

.single-product .woocommerce-product-gallery__trigger {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 99;
}

.single-product .woocommerce-product-gallery .flex-viewport {
    width: 100% !important;
    margin: 0 !important;
    border-radius: 0;
    overflow: hidden;
}

/* Before Flexslider initializes */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    margin: 0 !important;
}

.single-product .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: auto !important;
    display: block;
}

/* Thumbnail column pinned OUTSIDE the left of the gallery into the margin */
.single-product .woocommerce-product-gallery .flex-control-thumbs {
    position: absolute !important;
    top: 0 !important;
    left: -160px !important; /* Push into the margin-left */
    width: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 30px 0 0 0 !important; /* Space for arrow */
    float: none !important;
    z-index: 10;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs::before {
    content: '^';
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 20px !important;
    background: #f5f5f5 !important;
    color: #555 !important;
    font-size: 16px !important;
    font-family: monospace !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    width: 100% !important;
    height: auto !important; /* override theme's fixed 65px height that clipped the image */
    margin: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    border: 1px solid transparent !important;
    float: none !important;
    display: block !important;
}

.single-product .flex-control-nav.flex-control-thumbs li img {
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
    width: 100%;
    aspect-ratio: 1 / 1;   /* uniform square thumbnails regardless of source shape */
    height: auto;
    object-fit: cover;     /* fill the square, centre-crop odd-shaped photos */
    display: block;
}
.single-product .flex-control-nav.flex-control-thumbs li img.flex-active,
.single-product .flex-control-nav.flex-control-thumbs li img:hover {
    opacity: 1;
}

/* ── Summary / Right Side ── */
.single-product .summary.entry-summary {
    width: calc(50% - 25px) !important; /* 50% minus half gap */
    float: none !important;
    margin: 0 !important;
    padding-top: 10px;
}

.single-product .product_title {
    font-family: 'Cardo', Georgia, serif !important;
    font-size: 36px !important;
    font-weight: 600 !important;
    color: #9f8a54 !important;
    margin: 0 0 16px !important;
    line-height: 1.2 !important;
    text-transform: capitalize;
}

.single-product .woocommerce-product-details__short-description {
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    color: #000000;
    line-height: 1.6;
    margin-bottom: 24px;
    padding-bottom: 0;
    border-bottom: none;
}

.single-product .price {
    font-family: 'Lato', sans-serif;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    margin-bottom: 24px !important;
    display: flex;
    align-items: center;
    gap: 8px;
}
.single-product .price del {
    color: #999 !important;
    font-weight: 400 !important;
    margin-right: 0 !important;
    font-size: 16px !important;
}
.single-product .price ins {
    text-decoration: none !important;
    color: #1a1a1a !important;
    font-weight: 700 !important;
}

/* Extra attributes / Variations */
.single-product .variations {
    width: 100%;
    margin-bottom: 24px;
    border: none;
}
.single-product .variations tr {
    display: block;
    margin-bottom: 16px;
}
.single-product .variations th {
    display: block;
    text-align: left;
    padding: 0 0 8px;
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #1a1a1a;
    width: 100%;
    border: none;
    text-transform: capitalize;
}
.single-product .variations td {
    display: block;
    padding: 0;
    border: none;
    width: 100%;
}
.single-product .variations .value select {
    display: none; /* Hidden by JS script in functions.php */
}

/* Custom Swatches injected via JS */
.efans-custom-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.efans-swatch-item {
    cursor: pointer;
    border-radius: 4px;
    transition: all 0.2s ease;
    border: 1px solid #d0c8c0;
    opacity: 1;
}
.efans-swatch-item.disabled {
    opacity: 0.3;
    pointer-events: none;
    text-decoration: line-through;
}
.efans-swatch-color {
    width: 28px;
    height: 28px;
    border-radius: 4px;
}
.efans-swatch-color.selected {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #1a1a1a;
    border-color: transparent;
}
.efans-swatch-label {
    padding: 6px 12px;
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    color: #1a1a1a;
    background: #fff;
    font-weight: 600;
}
.efans-swatch-label.selected {
    border-color: #1a1a1a;
    background: #fdfdfd;
}

.single-product .variations .reset_variations {
    display: block;
    margin-top: 8px;
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #C4785E;
    text-decoration: none;
}
.single-product .woocommerce-variation-price .price {
    font-family: 'Lato', sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    margin-bottom: 24px !important;
    display: flex;
    align-items: center;
    gap: 8px;
}
.single-product .woocommerce-variation-price .price del {
    color: #999 !important;
    font-weight: 400 !important;
    font-size: 16px !important;
}
.single-product .woocommerce-variation-price .price ins {
    text-decoration: none !important;
    color: #1a1a1a !important;
}

/* Color Swatches inside single product */
/* Color attribute heading (scoped so the shared __title class on
   Delivery Date / Message On Cake is unaffected) */
.single-product .efans-product-extra > .efans-product-extra__title {
    color: #000000 !important;
    font-size: 16px !important;
    font-family: 'DM Sans', sans-serif !important;
}

.efans-product-colors {
    display: flex;
    gap: 10px;
    margin-bottom: 24px;
}
.efans-product-colors .swatch {
    width: 40px;
    height: 40px;
    border-radius: 2px;
    cursor: pointer;
    border: 2px solid #e1dfdf;
    padding: 2px;                   /* gap between the fill and the border */
    background-clip: content-box;   /* fill only the inner box, leaving the padding as a ring */
    box-shadow: none;
    transition: border-color 0.15s;
}
.efans-product-colors .swatch:hover,
.efans-product-colors .swatch.is-selected {
    border-color: #000000;
}

/* Delivery Date Field */
.efans-delivery-date {
    margin-bottom: 8px;
    font-family: 'DM Sans', sans-serif;
}
.single-product .efans-delivery-date > .efans-product-extra__title {
    font-size: 16px !important;
    color: #000000 !important;
}
.efans-delivery-date input {
    width: 100%;
    max-width: 500px;
    border: 1px solid #e0d8cf;
    border-radius: 4px;
    padding: 10px 16px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    color: #333;
    outline: none;
}
.efans-delivery-note {
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    color: #A18A57;
    margin-bottom: 30px;
    font-weight: 600;
}

/* Message On Cake */
.efans-message-on-cake {
    margin-bottom: 24px;
    width: 100%;
    max-width: 400px;
}
.efans-message-input-wrapper {
    display: flex;
    align-items: center;
    border: 1px solid #e0d8cf;
    border-radius: 4px;
    padding: 0 16px;
    height: 44px;
    background: #fff;
}
.efans-message-input-wrapper .cake-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-right: 12px;
}
.efans-message-input-wrapper input {
    flex: 1;
    border: none;
    background: transparent;
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    color: #333;
    outline: none;
    padding: 0;
}
.efans-message-input-wrapper .char-count {
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    color: #999;
    margin-left: 12px;
}

/* Review Stars */
.single-product .woocommerce-product-rating {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.single-product .woocommerce-product-rating .star-rating {
    font-size: 14px;
    color: #f5b223; /* Yellow stars */
    letter-spacing: 2px;
}
.single-product .woocommerce-product-rating .star-rating span {
    color: #f5b223;
}
.single-product .woocommerce-product-rating .star-rating::before {
    color: #e0d8cf;
}
.single-product .woocommerce-product-rating .woocommerce-review-link {
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    color: #555;
    text-decoration: none;
}

/* ── Cart Form ── */
.single-product form.cart {
    margin-top: 0;
    padding-top: 24px;
    border-top: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}
/* WooCommerce adds clearfix ::before/::after on form.cart; as a flex container
   these become flex items and the gap pushes the first real item right.
   Neutralise them so the delivery block aligns to the left edge. */
.single-product form.cart::before,
.single-product form.cart::after {
    display: none !important;
    content: none !important;
}
/* Give the delivery date, note and cake-message their own full-width rows
   (so the despatch note sits below the date box, not beside it). */
.single-product form.cart .efans-delivery-date,
.single-product form.cart .efans-delivery-note,
.single-product form.cart .efans-message-on-cake {
    flex: 0 0 100%;
    width: 100%;
    margin-bottom: 0;
}
.single-product form.cart.variations_form {
    display: block;
    padding-top: 0;
    border-top: none;
}
.single-product form.cart.variations_form .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 0;
    padding-top: 24px;
    border-top: 1px solid #f0e8e0;
}

/* Quantity */
.single-product form.cart .quantity {
    display: flex;
    background: #f5f5f5;
    border-radius: 0px;
    height: 44px;
    width: 120px;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
}

.single-product form.cart .quantity input.qty {
    width: 40px;
    background: transparent;
    border: none;
    text-align: center;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #000000;
    padding: 0;
    -moz-appearance: textfield;
}

.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.single-product form.cart .quantity .qty-btn,
.single-product form.cart .quantity .plus,
.single-product form.cart .quantity .minus {
    width: 32px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    color: #000000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product form.cart .button.single_add_to_cart_button {
    background: #A18A57 !important; /* Gold */
    color: #fff !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    height: 48px;
    padding: 0 40px !important;
    border: none !important;
    transition: background 0.2s;
    line-height: 48px !important;
    flex: 1;
    max-width: 500px;
}
.single-product form.cart .button.single_add_to_cart_button:hover {
    background: #8e794b !important;
}

/* WhatsApp Link */
.single-product .efans-whatsapp-link {
    width: 100%;
    margin-top: 16px;
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #1a1a1a;
    display: flex;
    align-items: center;
    gap: 6px;
}
.single-product .efans-whatsapp-link a {
    color: #25D366; /* WhatsApp green */
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.single-product .efans-whatsapp-link a svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

/* ── Product Tabs ── */
.single-product .woocommerce-tabs {
    max-width: 1400px;
    margin: 60px auto !important;
    padding: 0 40px;
}

.single-product .woocommerce-tabs ul.tabs {
    display: flex;
    justify-content: center;
    gap: 40px;
    border-bottom: 1px solid #1a1a1a !important; /* Black line */
    padding: 0 !important;
    margin: 0 0 30px !important;
    position: relative;
}
.single-product .woocommerce-tabs ul.tabs::before {
    display: none !important; /* Hide default woo line */
}

.single-product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
}

.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
    font-family: 'Lato', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #888 !important;
    text-transform: capitalize;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #1a1a1a !important;
}

/* ── Additional Info Table ── */
.single-product .woocommerce-Tabs-panel .shop_attributes {
    width: 100%;
    border: none !important;
    margin-bottom: 0;
}

.single-product .woocommerce-Tabs-panel .shop_attributes th,
.single-product .woocommerce-Tabs-panel .shop_attributes td {
    padding: 16px 24px;
    border: none !important;
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    font-style: normal;
    color: #1a1a1a;
}

.single-product .woocommerce-Tabs-panel .shop_attributes th {
    width: 150px;
    font-weight: 700;
}

.single-product .woocommerce-Tabs-panel .shop_attributes tr:nth-child(odd) {
    background: #fff;
}
.single-product .woocommerce-Tabs-panel .shop_attributes tr:nth-child(even) {
    background: #f5f5f5;
}

/* ── Related Products ── */
.single-product .related.products {
    max-width: 1400px;
    margin: 60px auto 80px;
    padding: 0 40px;
}

.single-product .related.products > h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 28px;
    font-weight: 600;
    color: #A18A57;
    text-align: center;
    margin-bottom: 40px;
}

/* Reuse the grid from shop page for related products */
.single-product .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px 20px !important;
    margin: 0 !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .single-product #wrap-summary {
        flex-direction: column;
        padding: 0 20px;
    }
    .single-product .woocommerce-product-gallery,
    .single-product .summary.entry-summary {
        width: 100% !important;
    }
    .single-product .woocommerce-product-gallery__wrapper {
        flex-direction: column;
    }
    .single-product .flex-control-nav.flex-control-thumbs {
        flex-direction: row;
        width: 100%;
        overflow-x: auto;
    }
    .single-product .flex-control-nav.flex-control-thumbs li {
        width: 60px !important;
        flex-shrink: 0;
    }
    .single-product .related.products ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

.single-product .summary.entry-summary,
.single-product .summary.entry-summary *,
.single-product .woocommerce-tabs,
.single-product .woocommerce-tabs * {
    font-family: 'Helvetica World', Helvetica, Arial, sans-serif !important;
}
/* high-specificity holdouts that set their own font */
.single-product form.cart .button.single_add_to_cart_button,
.single-product .woocommerce-variation-price .price,
.single-product .woocommerce-tabs ul.tabs li a {
    font-family: 'Helvetica World', Helvetica, Arial, sans-serif !important;
}
/* keep the title & short description fonts set earlier (win on specificity) */
.single-product .summary.entry-summary .product_title {
    font-family: 'Cardo', Georgia, serif !important;
}
.single-product .summary.entry-summary .woocommerce-product-details__short-description,
.single-product .summary.entry-summary .woocommerce-product-details__short-description * {
    font-family: 'DM Sans', sans-serif !important;
}
/* WhatsApp link — keep its own font (beats the Helvetica World rule above) */
.single-product .summary.entry-summary .efans-whatsapp-link,
.single-product .summary.entry-summary .efans-whatsapp-link * {
    font-family: 'DM Sans', sans-serif !important;
}
/* Color & Delivery Date headings + despatch note — keep DM Sans (beat Helvetica World) */
.single-product .summary.entry-summary .efans-product-extra__title,
.single-product .summary.entry-summary .efans-delivery-note {
    font-family: 'DM Sans', sans-serif !important;
}

.wp-block-woocommerce-filled-cart-block {
    margin: 0 auto;
    padding: 0 40px;
    max-width: 1400px;
}
