/* Theme controls + form/checkout normalization */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="password"], textarea, select {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    border: 1px solid var(--hair);
    border-radius: 14px;
    background: var(--bg-1);
    color: var(--ivory);
    padding: 12px 14px;
    outline: 0;
}
textarea { min-height: 130px; resize: vertical; }
.woocommerce form .form-row label { color: var(--ivory); font-size: 13px; margin-bottom: 7px; display:block; }
.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-cart .cart-collaterals .cart_totals { border-radius: 20px; }
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 999px; background: var(--brand-green); color: var(--brand-cream); border: 0; padding: 12px 20px; }
.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--brand-green-light); color: var(--brand-cream); }
.comment-form-rating select { max-width: 320px; }
.review-stars { color: var(--brand-gold); letter-spacing: 2px; white-space: nowrap; }

/* Continuous marquee: two identical halves loop without an empty tail. */
.marquee-track { width: max-content; animation: beheshtiMarquee 22s linear infinite !important; }
@keyframes beheshtiMarquee { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }

/* Testimonials are horizontally scrollable instead of ending after three cards. */
.strip { display:flex !important; overflow-x:auto; scroll-snap-type:x proximity; gap:16px; padding: 4px 0 14px; scrollbar-width:thin; }
.strip .quote-card { min-width: min(360px, 86vw); flex: 0 0 min(360px, 86vw); scroll-snap-align:start; }

/* Beautiful WooCommerce account page */
.bh-account-shell { padding: 72px 0 120px; }
.bh-account-grid { display:grid; grid-template-columns:280px 1fr; gap:24px; align-items:start; }
.bh-account-card { background:var(--bg-1); border:1px solid var(--hair); border-radius:24px; padding:24px; }
.bh-account-nav ul { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.bh-account-nav a { display:flex; padding:12px 14px; border-radius:12px; color:var(--ivory); }
.bh-account-nav .is-active a, .bh-account-nav a:hover { background:var(--brand-green); color:var(--brand-cream); }
.bh-account-content { min-width:0; }
.bh-account-heading { margin:0 0 20px; font-family:var(--font-display); font-size:42px; font-weight:400; }
.bh-account-content .woocommerce-MyAccount-content { margin:0; }
@media(max-width:760px){.bh-account-grid{grid-template-columns:1fr}.bh-account-shell{padding:45px 0 100px}.bh-account-heading{font-size:32px}}

.desktop-account { display:inline-flex; align-items:center; gap:6px; width:auto; padding-inline:11px; }
.desktop-account-label { font-size:12px; }
@media(max-width:900px){.desktop-account{display:none}}
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { color:var(--ivory); }
.woocommerce table.shop_table { border:1px solid var(--hair); border-radius:18px; overflow:hidden; background:var(--bg-1); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color:var(--hair-soft); }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border:1px solid var(--hair); border-radius:14px; background:var(--bg-1); color:var(--ivory); }
.woocommerce form.checkout, .woocommerce form.woocommerce-cart-form { margin-top:20px; }
@media(max-width:680px){.woocommerce table.shop_table{font-size:12px}.woocommerce .quantity .qty{min-height:44px}.woocommerce-checkout .col2-set,.woocommerce-checkout #order_review_heading{margin-top:20px}}

/* =========================================================
   VERSION 3 — WordPress Menu / Account / Global Theme Controls
   ========================================================= */

.nav-links > .primary-menu,
.nav-links > ul.primary-menu {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-links .primary-menu > li {
    position: relative;
    margin: 0;
    padding: 0;
}

.nav-links .primary-menu > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 10px;
    color: var(--nav-text);
    text-decoration: none;
    transition: color var(--transition), background var(--transition);
}

.nav-links .primary-menu > li > a:hover,
.nav-links .primary-menu > li.current-menu-item > a,
.nav-links .primary-menu > li.current-menu-ancestor > a {
    color: var(--nav-text-hover);
    background: var(--nav-bg-hover, rgba(255,255,255,.07));
}

.nav-links .sub-menu,
.mobile-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 8px;
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    min-width: 190px;
    background: var(--header-bg);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow);
    visibility: hidden;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
    z-index: 30;
}

.nav-links li:hover > .sub-menu,
.nav-links li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.nav-links .sub-menu a,
.mobile-menu .sub-menu a {
    display: block;
    padding: 10px 12px;
    border-radius: 9px;
    color: var(--header-text);
    text-decoration: none;
}

.nav-links .sub-menu a:hover,
.mobile-menu .sub-menu a:hover {
    background: var(--primary-light);
    color: var(--header-hover);
}

.account-icon-only {
    justify-content: center !important;
    width: 42px !important;
    min-width: 42px;
    padding: 0 !important;
}

.desktop-account-label { display: none !important; }

.mobile-menu > .primary-menu-mobile,
.mobile-menu > ul.primary-menu {
    margin: 0;
    padding: 12px;
    list-style: none;
}

.mobile-menu .primary-menu-mobile > li > a {
    display: block;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--header-text);
    text-decoration: none;
}

.mobile-menu .primary-menu-mobile > li > a:hover,
.mobile-menu .primary-menu-mobile > li.current-menu-item > a {
    color: var(--header-hover);
    background: var(--nav-bg-hover, rgba(255,255,255,.07));
}

@media (min-width: 901px) {
    .mobile-menu { display: none !important; }
}

@media (max-width: 900px) {
    .nav-links { display: none; }
    .mobile-menu { display: none; }
    .mobile-menu.open { display: block; }
}

/* Continuous hero ticker: two identical groups, no empty tail. */
.marquee {
    isolation: isolate;
}

.marquee-track {
    display: flex !important;
    width: max-content !important;
    max-width: none !important;
    gap: 0 !important;
    direction: ltr;
    will-change: transform;
    animation: beheshtiTickerScroll 24s linear infinite !important;
}

.marquee-group {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 35px;
    padding-inline-end: 35px;
    direction: ltr;
}

.marquee-group span {
    flex: 0 0 auto;
    direction: rtl;
}

@keyframes beheshtiTickerScroll {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-50%, 0, 0); }
}

/* Profile / account page gets its own color language. */
.bh-auth-hero,
.bh-profile-hero {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 22px;
    margin-bottom: 26px;
    padding: 26px;
    border-radius: 28px;
    border: 1px solid color-mix(in srgb, var(--profile-accent) 32%, var(--border));
    background:
        radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--profile-accent) 18%, transparent), transparent 35%),
        linear-gradient(135deg, var(--profile-bg), var(--primary-dark));
    color: var(--profile-text);
    box-shadow: 0 24px 55px color-mix(in srgb, var(--profile-bg) 24%, transparent);
}

.bh-auth-hero h1,
.bh-profile-hero h1 { margin: 5px 0 8px; color: var(--profile-text); font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 5vw, 48px); }
.bh-auth-hero p,
.bh-profile-hero p { margin: 0; color: color-mix(in srgb, var(--profile-text) 78%, transparent); }
.bh-profile-orb,
.bh-profile-avatar {
    width: 86px;
    height: 86px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, var(--profile-accent), var(--profile-bg) 62%);
    border: 1px solid color-mix(in srgb, var(--profile-text) 28%, transparent);
    box-shadow: inset 0 0 0 8px color-mix(in srgb, var(--profile-text) 8%, transparent), 0 14px 28px rgba(0,0,0,.16);
}
.bh-profile-orb-icon svg { width: 38px; height: 38px; color: var(--profile-text); }
.bh-profile-avatar { overflow: hidden; }
.bh-profile-avatar-img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bh-profile-copy { min-width: 0; }
.bh-profile-copy h1 { color: var(--profile-text); }

.bh-auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.bh-auth-card { background: var(--page-bg-alt); border: 1px solid var(--border); }
.bh-auth-card-full { grid-column: 1 / -1; }
.bh-auth-card h2 { margin: 4px 0 8px; font-family: var(--font-display); font-weight: 400; color: var(--heading); }
.bh-auth-card > p { color: var(--text-soft); margin-top: 0; }
.bh-register-card { background: linear-gradient(180deg, var(--page-bg-alt), color-mix(in srgb, var(--profile-accent) 8%, var(--page-bg-alt))); }
.bh-account-disabled-note { padding: 14px; border-radius: 14px; background: var(--page-surface); color: var(--text-soft); }

@media (max-width: 760px) {
    .bh-auth-grid,
    .bh-auth-hero,
    .bh-profile-hero { grid-template-columns: 1fr; }
    .bh-auth-hero,
    .bh-profile-hero { text-align: center; justify-items: center; }
}

/* Review stars: actual WooCommerce rating value stays in the form, while users click stars. */
.comment-form-rating select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.beheshti-star-picker { display: inline-flex; direction: rtl; gap: 3px; margin-top: 4px; }
.beheshti-star { border: 0; padding: 0 2px; background: transparent; color: var(--border); font-size: 28px; line-height: 1; cursor: pointer; transition: color var(--transition), transform var(--transition); }
.beheshti-star:hover,
.beheshti-star:focus,
.beheshti-star.is-active { color: var(--accent); transform: translateY(-1px); outline: 0; }

/* Global input / checkout normalization. */
body,
button,
input,
select,
textarea { color: var(--text); }

input::placeholder,
textarea::placeholder { color: var(--text-muted); opacity: 1; }

input:focus,
select:focus,
textarea:focus { border-color: var(--accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="password"], textarea, select {
    border-color: var(--border) !important;
    background: var(--page-bg-alt) !important;
    color: var(--text) !important;
}

.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-register,
.woocommerce-checkout #payment,
.woocommerce-cart .cart_totals,
.woocommerce-checkout .woocommerce-checkout-review-order,
.woocommerce-checkout .woocommerce-checkout-review-order-table {
    background: var(--page-bg-alt);
    border: 1px solid var(--border);
    border-radius: 20px;
}

.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-register { padding: 20px; }
.woocommerce form .form-row label { color: var(--text); }
.woocommerce table.shop_table { background: var(--page-bg-alt); border-color: var(--border); color: var(--text); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: var(--border-soft); }
.woocommerce-info, .woocommerce-message, .woocommerce-error { background: var(--page-bg-alt); color: var(--text); border-color: var(--border); }

/* Theme semantic color hooks for elements still using legacy selectors. */
.hero, .site.site-header, header.site { color: var(--header-text); }
.p-card { background: var(--product-bg) !important; color: var(--product-text); }
.p-card h3, .p-card h3 a { color: var(--product-text); }
.p-card .product-price, .p-card .price { color: var(--product-price); }
footer.site { background: var(--footer-bg); color: var(--footer-text); }
footer.site a, footer.site p, footer.site span { color: var(--footer-text); }
footer.site a:hover { color: var(--header-hover); }

/* Prevent the ticker from becoming an accidental horizontal page overflow. */
html, body { overflow-x: clip; }


/* =========================================================
   V3.1 stability fixes
========================================================= */
.single-product-page .single-product-image {
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: radial-gradient(circle, var(--bg-3), var(--bg-2));
    border: 1px solid var(--hair);
    border-radius: 20px;
}
.single-product-page .single-product-image > img {
    width: 84%;
    height: 84%;
    object-fit: contain;
}
.single-product-page .single-thumb img { object-fit: cover; }
.single-product-page .single-title,
.single-product-page .single-content-card h2,
.single-product-page .single-related h2 { color: var(--heading, var(--ivory)); }
.single-product-page .single-short-description,
.single-product-page .single-description-content,
.single-product-page .single-meta { color: var(--text-soft, var(--ivory-dim)); }

/* WooCommerce Checkout / Cart / Account remain fully functional and readable. */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select {
    background: var(--page-bg-alt, var(--bg-1));
    color: var(--text, var(--ivory));
}
.woocommerce form .form-row .select2-container--default .select2-selection--single {
    min-height: 48px;
    border: 1px solid var(--border, var(--hair));
    border-radius: 14px;
    background: var(--page-bg-alt, var(--bg-1));
}
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 46px;
    color: var(--text, var(--ivory));
}

/* Do not allow an empty location assignment to make the primary menu vanish. */
.nav-links .primary-menu:empty,
.mobile-menu .primary-menu:empty { display: none; }

/* Gift banner keeps strong contrast even when the global palette is changed. */
.gift-banner h2 { color: var(--heading, var(--ivory)); }
.gift-banner p { color: var(--text-soft, var(--ivory-dim)); }
