/*
Theme Name: elzyrafashion
Theme URI: https://elzyrafashion.shop
Author: elzyrafashion
Author URI: https://elzyrafashion.shop
Description: A feminine, modern WooCommerce fashion theme with one-click WhatsApp ordering, Customizer-editable store details and built-in Bangladeshi eCommerce policies.
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elzyrafashion
Tags: e-commerce, fashion, woocommerce, custom-logo, custom-colors, responsive-layout, one-column, two-columns
*/

/* ---------- Variables (overridden from Customizer via wp_head) ---------- */
:root {
  --elz-pink: #f9c9d9;
  --elz-pink-light: #fdeef3;
  --elz-pink-dark: #e58fae;
  --elz-white: #ffffff;
  --elz-yellow: #d4a843;
  --elz-green: #25d366;
  --elz-green-dark: #1da851;
  --elz-dark: #3b2a31;
  --elz-muted: #7d6a72;
  --elz-radius: 14px;
  --elz-shadow: 0 8px 28px rgba(229, 143, 174, 0.22);
  --elz-font-head: "Playfair Display", Georgia, serif;
  --elz-font-body: "Poppins", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--elz-font-body);
  font-size: 15px;
  line-height: 1.65;
  color: var(--elz-dark);
  background: var(--elz-white);
  -webkit-font-smoothing: antialiased;
}
body.elz-modal-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--elz-dark); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--elz-yellow); }
h1, h2, h3, h4 { font-family: var(--elz-font-head); color: var(--elz-dark); line-height: 1.25; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
.elz-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.screen-reader-text { position: absolute; left: -9999px; }
.elz-icon { width: 1.1em; height: 1.1em; fill: currentColor; vertical-align: -0.15em; }

/* ---------- Buttons ---------- */
.elz-btn, .button, button.button, input[type="submit"], .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 20px; border: 2px solid var(--elz-dark); border-radius: 50px;
  background: var(--elz-dark); color: var(--elz-white); font-family: var(--elz-font-body);
  font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; text-align: center;
  transition: all .2s ease;
}
.elz-btn:hover, .button:hover, button.button:hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
  background: var(--elz-pink); border-color: var(--elz-pink); color: var(--elz-dark);
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
  background: var(--elz-dark); color: var(--elz-white);
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--elz-pink); color: var(--elz-dark); }
.elz-btn-wa, .elz-btn-wa:visited { background: var(--elz-green); border-color: var(--elz-green); color: #fff; }
.elz-btn-wa:hover { background: var(--elz-green-dark); border-color: var(--elz-green-dark); color: #fff; }
.elz-btn-outline { background: transparent; color: var(--elz-dark); }
.elz-btn-outline:hover { background: var(--elz-dark); border-color: var(--elz-dark); color: #fff; }
.elz-btn-gold { background: var(--elz-yellow); border-color: var(--elz-yellow); color: #fff; }
.elz-btn-gold:hover { background: var(--elz-dark); border-color: var(--elz-dark); color: #fff; }

/* ---------- Top bar ---------- */
.elz-topbar { background: var(--elz-dark); color: #fff; font-size: 13px; }
.elz-topbar .elz-container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px; padding-top: 8px; padding-bottom: 8px; }
.elz-topbar a { color: #fff; }
.elz-topbar a:hover { color: var(--elz-pink); }
.elz-topbar-links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.elz-topbar-note { color: var(--elz-pink); font-weight: 500; }

/* ---------- Header ---------- */
.elz-header { background: var(--elz-white); border-bottom: 1px solid var(--elz-pink); position: sticky; top: 0; z-index: 90; box-shadow: 0 2px 14px rgba(229, 143, 174, 0.15); }
.admin-bar .elz-header { top: 32px; }
.elz-header .elz-container { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.elz-brand { display: flex; align-items: center; }
.elz-brand .custom-logo { max-height: 56px; width: auto; }
.elz-brand-name { font-family: var(--elz-font-head); font-size: 28px; font-weight: 700; color: var(--elz-dark); letter-spacing: .5px; }
.elz-brand-name span { color: var(--elz-yellow); }
.elz-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; align-items: center; }
.elz-nav li { position: relative; }
.elz-nav a { display: block; padding: 8px 14px; font-weight: 500; border-radius: 30px; }
.elz-nav a:hover, .elz-nav .current-menu-item > a { background: var(--elz-pink-light); color: var(--elz-dark); }
.elz-nav ul ul { display: none; position: absolute; top: 100%; left: 0; min-width: 190px; background: #fff; border: 1px solid var(--elz-pink); border-radius: 12px; padding: 8px; flex-direction: column; align-items: stretch; box-shadow: var(--elz-shadow); }
.elz-nav li:hover > ul { display: flex; }
.elz-header-actions { display: flex; align-items: center; gap: 10px; }
.elz-cart-link { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--elz-pink-light); }
.elz-cart-link .elz-icon { width: 22px; height: 22px; }
.elz-cart-count { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--elz-yellow); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.elz-menu-toggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--elz-pink-light); cursor: pointer; padding: 0; }
.elz-menu-toggle span, .elz-menu-toggle span::before, .elz-menu-toggle span::after { display: block; width: 20px; height: 2px; background: var(--elz-dark); position: relative; margin: 0 auto; content: ""; }
.elz-menu-toggle span::before { position: absolute; top: -6px; left: 0; }
.elz-menu-toggle span::after { position: absolute; top: 6px; left: 0; }

/* ---------- Hero ---------- */
.elz-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--elz-pink-light) 0%, var(--elz-pink) 100%); padding: 80px 0; }
.elz-hero::before, .elz-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, 0.45); }
.elz-hero::before { width: 380px; height: 380px; right: -90px; top: -110px; }
.elz-hero::after { width: 220px; height: 220px; right: 180px; bottom: -110px; background: rgba(212, 168, 67, 0.22); }
.elz-hero .elz-container { position: relative; z-index: 2; }
.elz-hero-inner { max-width: 640px; }
.elz-eyebrow { display: inline-block; background: #fff; color: var(--elz-yellow); padding: 5px 16px; border-radius: 30px; font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 18px; }
.elz-hero h1 { font-size: clamp(34px, 5.5vw, 58px); margin-bottom: 16px; }
.elz-hero p { font-size: 17px; color: var(--elz-muted); max-width: 520px; }
.elz-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

/* ---------- Feature strip ---------- */
.elz-features { background: #fff; border-bottom: 1px solid var(--elz-pink-light); }
.elz-features .elz-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-top: 26px; padding-bottom: 26px; }
.elz-feature { text-align: center; padding: 10px; }
.elz-feature strong { display: block; font-family: var(--elz-font-head); font-size: 17px; }
.elz-feature span { font-size: 13px; color: var(--elz-muted); }
.elz-feature-mark { width: 44px; height: 44px; border-radius: 50%; background: var(--elz-pink-light); color: var(--elz-yellow); display: flex; align-items: center; justify-content: center; margin: 0 auto 8px; font-size: 20px; font-weight: 700; }

/* ---------- Sections ---------- */
.elz-section { padding: 70px 0; }
.elz-section-head { text-align: center; max-width: 620px; margin: 0 auto 34px; }
.elz-section-head h2 { font-size: clamp(26px, 4vw, 38px); }
.elz-section-head h2::after { content: ""; display: block; width: 64px; height: 3px; background: var(--elz-yellow); margin: 12px auto 0; border-radius: 3px; }
.elz-section-head p { color: var(--elz-muted); }
.elz-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 34px; }
.elz-cat { padding: 8px 20px; border-radius: 30px; border: 1.5px solid var(--elz-pink); background: #fff; font-weight: 500; font-size: 14px; }
.elz-cat:hover, .elz-cat.is-active { background: var(--elz-pink); color: var(--elz-dark); }

/* ---------- Product grid ---------- */
.elz-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.elz-card { background: #fff; border: 1px solid var(--elz-pink-light); border-radius: var(--elz-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.elz-card:hover { transform: translateY(-5px); box-shadow: var(--elz-shadow); }
.elz-card-img { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--elz-pink-light); overflow: hidden; }
.elz-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.elz-card:hover .elz-card-img img { transform: scale(1.06); }
.elz-badge { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--elz-yellow); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 4px 12px; border-radius: 30px; }
.elz-badge-out { background: var(--elz-dark); left: auto; right: 12px; }
.elz-card-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.elz-card-title { font-size: 18px; margin-bottom: 6px; }
.elz-card-price { font-weight: 700; font-size: 17px; color: var(--elz-dark); margin-bottom: 8px; }
.elz-card-price del { color: var(--elz-muted); font-weight: 400; font-size: 14px; margin-right: 6px; }
.elz-card-price ins { text-decoration: none; color: #c0446f; }
.elz-card-desc { font-size: 13.5px; color: var(--elz-muted); margin-bottom: 14px; flex: 1; }
.elz-card-actions { display: grid; gap: 8px; }
.elz-card-actions .button, .elz-card-actions .elz-btn { width: 100%; padding: 10px 12px; font-size: 13.5px; }
.elz-card-actions .added_to_cart { display: block; text-align: center; font-size: 13px; font-weight: 600; color: var(--elz-yellow); }
.elz-empty { text-align: center; padding: 40px 20px; background: var(--elz-pink-light); border-radius: var(--elz-radius); }

/* ---------- Pagination ---------- */
.elz-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 40px; }
.elz-pagination a, .elz-pagination span, .page-numbers { min-width: 42px; height: 42px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid var(--elz-pink); border-radius: 30px; font-weight: 500; }
.elz-pagination a:hover, .elz-pagination .current, .page-numbers.current { background: var(--elz-pink); color: var(--elz-dark); }

/* ---------- Contact band ---------- */
.elz-contact { background: var(--elz-pink-light); }
.elz-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.elz-contact-box { background: #fff; border-radius: var(--elz-radius); padding: 26px; text-align: center; box-shadow: 0 4px 18px rgba(229, 143, 174, 0.15); }
.elz-contact-box .elz-icon { width: 28px; height: 28px; color: var(--elz-yellow); margin-bottom: 8px; }
.elz-contact-box h3 { font-size: 18px; }
.elz-contact-cta { text-align: center; margin-top: 30px; }

/* ---------- Footer ---------- */
.elz-footer { background: var(--elz-dark); color: #e9dde2; padding-top: 60px; }
.elz-footer h4 { color: #fff; font-size: 18px; margin-bottom: 16px; position: relative; padding-bottom: 10px; }
.elz-footer h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; background: var(--elz-yellow); }
.elz-footer a, .elz-footer .elz-linkbtn { color: #e9dde2; }
.elz-footer a:hover, .elz-footer .elz-linkbtn:hover { color: var(--elz-pink); }
.elz-footer-grid { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr 1fr; gap: 34px; padding-bottom: 40px; }
.elz-footer-brand { font-family: var(--elz-font-head); font-size: 26px; color: #fff; margin-bottom: 10px; display: block; }
.elz-footer-list { list-style: none; margin: 0; padding: 0; }
.elz-footer-list li { margin-bottom: 10px; display: flex; gap: 10px; align-items: flex-start; }
.elz-footer-list .elz-icon { margin-top: 5px; color: var(--elz-yellow); flex-shrink: 0; }
.elz-footer-links { list-style: none; margin: 0; padding: 0; }
.elz-footer-links li { margin-bottom: 9px; }
.elz-linkbtn { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.elz-social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.elz-social a { padding: 7px 16px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 30px; font-size: 13px; }
.elz-social a:hover { background: var(--elz-pink); border-color: var(--elz-pink); color: var(--elz-dark); }
.elz-social a.elz-social-wa { background: var(--elz-green); border-color: var(--elz-green); color: #fff; }
.elz-copy { border-top: 1px solid rgba(255, 255, 255, .14); padding: 20px 0; text-align: center; font-size: 13px; color: #b9a8b0; }
.elz-copy .elz-container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }

/* ---------- Floating WhatsApp ---------- */
.elz-float-wa { position: fixed; right: 20px; bottom: 20px; z-index: 95; width: 58px; height: 58px; border-radius: 50%; background: var(--elz-green); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(37, 211, 102, .5); animation: elzPulse 2.4s infinite; }
.elz-float-wa:hover { background: var(--elz-green-dark); color: #fff; }
.elz-float-wa .elz-icon { width: 30px; height: 30px; }
@keyframes elzPulse { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }

/* ---------- Policy modals ---------- */
.elz-modal { position: fixed; inset: 0; z-index: 200; background: rgba(59, 42, 49, .68); display: none; align-items: center; justify-content: center; padding: 20px; }
.elz-modal.is-open { display: flex; }
.elz-modal-box { position: relative; background: #fff; color: var(--elz-dark); border-radius: 18px; width: 100%; max-width: 780px; max-height: 88vh; overflow-y: auto; padding: 36px 34px; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.elz-modal-close { position: absolute; top: 12px; right: 14px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--elz-pink-light); font-size: 24px; line-height: 1; cursor: pointer; color: var(--elz-dark); }
.elz-modal-close:hover { background: var(--elz-pink); }
.elz-policy h2 { font-size: 28px; }
.elz-policy h3 { font-size: 19px; margin-top: 24px; }
.elz-policy ul { padding-left: 20px; }
.elz-policy table { width: 100%; border-collapse: collapse; margin: 14px 0; }
.elz-policy th, .elz-policy td { border: 1px solid var(--elz-pink); padding: 10px 12px; text-align: left; }
.elz-policy th { background: var(--elz-pink-light); }
.elz-policy .elz-updated { color: var(--elz-muted); font-size: 13px; }

/* ---------- Generic pages ---------- */
.elz-page { padding: 50px 20px 70px; min-height: 50vh; }
.elz-entry { margin-bottom: 40px; }
.elz-entry-title { font-size: clamp(28px, 4vw, 40px); }
.elz-entry-content img { border-radius: 10px; }

/* ---------- WooCommerce ---------- */
.woocommerce .woocommerce-breadcrumb { color: var(--elz-muted); font-size: 13px; margin-bottom: 20px; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0 0 30px; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; border: 1px solid var(--elz-pink-light); border-radius: var(--elz-radius); padding: 14px; text-align: center; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--elz-font-head); font-size: 17px; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--elz-dark); font-weight: 700; }
.woocommerce span.onsale { background: var(--elz-yellow); color: #fff; min-height: 0; min-width: 0; line-height: 1; padding: 8px 14px; border-radius: 30px; top: 12px; left: 12px; right: auto; }
.woocommerce div.product div.images img { border-radius: var(--elz-radius); }
.woocommerce div.product .product_title { font-size: clamp(26px, 3.5vw, 36px); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 20px; }
.woocommerce div.product form.cart .quantity .qty { height: 44px; border-radius: 30px; border: 1.5px solid var(--elz-pink); padding: 0 10px; }
.woocommerce div.product form.cart .elz-btn-wa { margin-left: 0; }
.woocommerce-tabs ul.tabs li { border-radius: 12px 12px 0 0 !important; border-color: var(--elz-pink) !important; background: var(--elz-pink-light) !important; }
.woocommerce-tabs ul.tabs li.active { background: #fff !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--elz-yellow) !important; background: var(--elz-pink-light); border-radius: 10px; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--elz-yellow) !important; }
.woocommerce table.shop_table { border-radius: 12px; border-color: var(--elz-pink); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--elz-pink-light); }
.woocommerce .cart_totals .elz-btn-wa { width: 100%; margin-top: 10px; }
.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="password"], input[type="search"], textarea, select {
  border: 1.5px solid var(--elz-pink); border-radius: 10px; padding: 10px 14px; font-family: var(--elz-font-body); max-width: 100%;
}
.woocommerce form .form-row input.input-text:focus, textarea:focus, select:focus { outline: none; border-color: var(--elz-yellow); }
.woocommerce-checkout #payment { background: var(--elz-pink-light); border-radius: 12px; }
.woocommerce-checkout #payment div.payment_box { background: #fff; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .elz-grid, .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
  .elz-footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .elz-menu-toggle { display: inline-block; }
  .elz-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--elz-pink); padding: 12px 20px 20px; box-shadow: var(--elz-shadow); }
  .elz-nav.is-open { display: block; }
  .elz-nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .elz-nav ul ul { display: block; position: static; box-shadow: none; border: 0; padding-left: 14px; }
  .elz-header .elz-container { position: relative; }
  .elz-features .elz-container { grid-template-columns: repeat(2, 1fr); }
  .elz-contact-grid { grid-template-columns: 1fr; }
  .elz-hero { padding: 56px 0; }
  .elz-section { padding: 50px 0; }
}
@media (max-width: 782px) { .admin-bar .elz-header { top: 46px; } }
@media (max-width: 640px) {
  .elz-grid, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .elz-card-body { padding: 12px; }
  .elz-card-title { font-size: 15px; }
  .elz-card-desc { display: none; }
  .elz-footer-grid { grid-template-columns: 1fr; }
  .elz-topbar .elz-container { justify-content: center; text-align: center; }
  .elz-topbar-note { display: none; }
  .elz-modal-box { padding: 30px 20px; }
  .elz-copy .elz-container { justify-content: center; text-align: center; }
}
@media (max-width: 380px) {
  .elz-grid, .woocommerce ul.products { grid-template-columns: 1fr; }
}
