/*
Theme Name: FITBASEBD Commerce
Theme URI: https://fitbasebd.com/
Author: FITBASEBD
Author URI: https://fitbasebd.com/
Description: A modern, mobile-first WooCommerce fashion store theme inspired by high-conversion Bangladeshi ecommerce layouts. Original implementation for FITBASEBD.
Version: 1.0.0
Requires at least: 6.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fitbasebd
Tags: ecommerce, woocommerce, fashion, responsive, mobile-first, custom-logo, custom-menu
*/

:root {
  --fit-primary: #111111;
  --fit-accent: #e9eef5;
  --fit-soft: #f7f7f7;
  --fit-border: #e9e9e9;
  --fit-text: #151515;
  --fit-muted: #737373;
  --fit-white: #ffffff;
  --fit-shadow: 0 10px 30px rgba(0,0,0,.06);
  --fit-radius: 16px;
  --fit-container: 1280px;
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--fit-text);
  background: #fff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.6;
}
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.fit-container { width: min(100% - 32px, var(--fit-container)); margin-inline: auto; }
.fit-visually-hidden { position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

/* Announcement */
.fit-announcement { background: var(--fit-primary); color: #fff; font-size: 12px; }
.fit-announcement__inner { min-height: 34px; display:flex; align-items:center; justify-content:center; text-align:center; padding: 7px 0; }

/* Header */
.fit-header-wrap { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.96); backdrop-filter: blur(14px); border-bottom: 1px solid var(--fit-border); }
.fit-header { min-height: 72px; display:grid; grid-template-columns: 180px 1fr 180px; gap: 20px; align-items:center; }
.fit-brand { display:inline-flex; align-items:center; gap: 11px; font-weight: 900; letter-spacing: -.04em; font-size: 21px; }
.fit-brand-mark { width: 34px; height: 34px; border-radius: 10px; display:grid; place-items:center; background: var(--fit-primary); color:#fff; font-weight:900; font-size:13px; }
.fit-brand__tagline { display:block; color:var(--fit-muted); font-size:9px; font-weight:700; letter-spacing:.14em; margin-top:-5px; }
.fit-desktop-nav { display:flex; justify-content:center; gap: 24px; }
.fit-desktop-nav a { font-size: 13px; font-weight: 700; position:relative; padding: 6px 0; }
.fit-desktop-nav a::after { content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--fit-primary); transition:width .25s ease; }
.fit-desktop-nav a:hover::after, .fit-desktop-nav .current-menu-item > a::after { width:100%; }
.fit-header-actions { display:flex; justify-content:flex-end; gap:8px; }
.fit-icon-btn { width: 42px; height:42px; display:grid; place-items:center; border:1px solid var(--fit-border); border-radius: 50%; background:#fff; transition: transform .2s, background .2s; }
.fit-icon-btn:hover { transform: translateY(-2px); background:var(--fit-soft); }
.fit-cart-count { min-width: 17px; height: 17px; padding:0 4px; border-radius:999px; background:var(--fit-primary); color:#fff; font-size:10px; line-height:17px; text-align:center; position:absolute; top:-3px; right:-2px; }
.fit-relative { position:relative; }
.fit-mobile-toggle { display:none; }

/* Search */
.fit-search-row { border-top:1px solid var(--fit-border); border-bottom:1px solid var(--fit-border); background:#fff; }
.fit-search-form { position:relative; display:flex; max-width: 680px; margin: 12px auto; }
.fit-search-form input[type="search"] { width:100%; height:46px; border:1px solid var(--fit-border); background:var(--fit-soft); border-radius: 999px; padding:0 48px 0 18px; outline:none; }
.fit-search-form input[type="search"]:focus { border-color:#c8c8c8; box-shadow:0 0 0 3px rgba(0,0,0,.03); }
.fit-search-form button { position:absolute; right:6px; top:5px; width:36px; height:36px; border:0; border-radius:50%; background:var(--fit-primary); color:#fff; display:grid; place-items:center; }

/* Mobile drawer */
.fit-drawer-overlay { position:fixed; inset:0; background:rgba(0,0,0,.48); opacity:0; visibility:hidden; transition:.25s; z-index:1100; }
.fit-drawer { position:fixed; top:0; bottom:0; left:0; width:min(88vw,360px); background:#fff; transform:translateX(-100%); transition:transform .3s ease; z-index:1110; padding:22px; overflow:auto; }
.fit-drawer.is-open { transform:translateX(0); }
.fit-drawer-overlay.is-open { opacity:1; visibility:visible; }
.fit-drawer__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.fit-drawer nav ul { list-style:none; padding:0; margin:0; }
.fit-drawer nav li { border-bottom:1px solid var(--fit-border); }
.fit-drawer nav a { display:block; padding:14px 4px; font-weight:700; }

/* Promo */
.fit-promo-strip { overflow:hidden; white-space:nowrap; background:var(--fit-accent); border-bottom:1px solid var(--fit-border); }
.fit-promo-track { display:inline-flex; gap:48px; padding:10px 0; min-width:100%; animation: fitMarquee 22s linear infinite; }
.fit-promo-item { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
@keyframes fitMarquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* Hero */
.fit-hero { padding: 18px 0 30px; }
.fit-hero-card { position:relative; min-height: min(72vh, 680px); overflow:hidden; border-radius:24px; background:linear-gradient(120deg,#e9eef5,#d7dde5); }
.fit-hero-card::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.08) 55%, rgba(0,0,0,0)); pointer-events:none; }
.fit-hero-picture { position:absolute; inset:0; display:block; width:100%; height:100%; }
.fit-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.fit-hero-content { position:relative; z-index:2; min-height:inherit; display:flex; flex-direction:column; justify-content:center; max-width:650px; padding:clamp(28px,6vw,72px); color:#fff; }
.fit-kicker { display:inline-flex; width:max-content; padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.26); backdrop-filter:blur(8px); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.fit-hero h1 { font-size:clamp(34px,6vw,72px); line-height:.98; letter-spacing:-.055em; margin:14px 0; max-width:620px; }
.fit-hero p { margin:0 0 22px; max-width:520px; color:rgba(255,255,255,.92); font-size:16px; }
.fit-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:45px; padding:0 18px; border-radius:999px; border:1px solid var(--fit-primary); background:var(--fit-primary); color:#fff; font-size:13px; font-weight:800; transition:transform .2s, opacity .2s; }
.fit-btn:hover { transform:translateY(-2px); opacity:.92; }
.fit-btn--light { background:#fff; color:#111; border-color:#fff; }

/* Category cards */
.fit-section { padding: 22px 0 44px; }
.fit-section__head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:18px; }
.fit-section__head h2 { margin:0; font-size:clamp(23px,3vw,35px); line-height:1.1; letter-spacing:-.04em; }
.fit-section__head p { margin:4px 0 0; color:var(--fit-muted); font-size:13px; }
.fit-link { font-size:12px; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.fit-category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.fit-category-card { min-height:170px; border-radius:20px; background:linear-gradient(135deg,#f6f6f6,#e8ecf0); position:relative; overflow:hidden; padding:20px; display:flex; align-items:flex-end; transition:transform .25s, box-shadow .25s; }
.fit-category-card:hover { transform:translateY(-4px); box-shadow:var(--fit-shadow); }
.fit-category-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.fit-category-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.6)); }
.fit-category-card__text { position:relative; z-index:2; color:#fff; }
.fit-category-card__text strong { display:block; font-size:20px; letter-spacing:-.02em; }
.fit-category-card__text span { font-size:11px; opacity:.88; }

/* Product grids */
.fit-products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px 14px; }
.fit-product-card { min-width:0; }
.fit-product-media { position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:18px; background:var(--fit-soft); }
.fit-product-media img { width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
.fit-product-card:hover .fit-product-media img { transform:scale(1.04); }
.fit-badge { position:absolute; left:10px; top:10px; z-index:2; padding:6px 8px; border-radius:999px; background:#fff; font-size:10px; font-weight:800; box-shadow:0 3px 10px rgba(0,0,0,.07); }
.fit-product-actions { position:absolute; right:10px; top:10px; display:flex; flex-direction:column; gap:8px; opacity:0; transform:translateY(-6px); transition:.2s; z-index:3; }
.fit-product-card:hover .fit-product-actions { opacity:1; transform:translateY(0); }
.fit-product-actions a, .fit-product-actions button { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; border:0; background:#fff; box-shadow:0 5px 18px rgba(0,0,0,.09); }
.fit-product-info { padding:10px 3px 0; }
.fit-product-category { font-size:10px; color:var(--fit-muted); text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.fit-product-title { display:block; margin-top:3px; font-size:14px; line-height:1.35; font-weight:700; }
.fit-price { display:flex; gap:7px; align-items:center; margin-top:7px; font-size:14px; font-weight:900; }
.fit-price del { color:#aaa; font-weight:600; font-size:12px; }
.fit-sale { color:#c41f1f; }
.fit-add { margin-top:9px; width:100%; min-height:40px; border-radius:11px; border:1px solid #ddd; background:#fff; font-size:12px; font-weight:800; transition:.2s; }
.fit-add:hover { background:var(--fit-primary); color:#fff; border-color:var(--fit-primary); }

/* Editorial split */
.fit-editorial { display:grid; grid-template-columns:1.1fr .9fr; border-radius:24px; overflow:hidden; background:#111; color:#fff; }
.fit-editorial__media { min-height:420px; background:#232323; }
.fit-editorial__media img { width:100%; height:100%; object-fit:cover; }
.fit-editorial__content { padding:clamp(28px,5vw,70px); display:flex; flex-direction:column; justify-content:center; }
.fit-editorial__content h2 { font-size:clamp(28px,4vw,52px); line-height:.98; letter-spacing:-.045em; margin:10px 0 14px; }
.fit-editorial__content p { color:#cfcfcf; max-width:520px; margin-bottom:24px; }

/* Benefits */
.fit-benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border:1px solid var(--fit-border); background:var(--fit-border); overflow:hidden; border-radius:18px; }
.fit-benefit { background:#fff; padding:23px 18px; }
.fit-benefit strong { display:block; margin:7px 0 4px; font-size:14px; }
.fit-benefit span { color:var(--fit-muted); font-size:12px; }

/* Footer */
.fit-footer { margin-top:30px; background:#111; color:#fff; padding:54px 0 20px; }
.fit-footer-grid { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:32px; }
.fit-footer h3 { margin:0 0 14px; font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.fit-footer p, .fit-footer li, .fit-footer a { color:#bababa; font-size:12px; }
.fit-footer ul { list-style:none; margin:0; padding:0; }
.fit-footer li { margin:7px 0; }
.fit-footer__brand { font-size:24px; font-weight:900; letter-spacing:-.05em; }
.fit-footer__bottom { margin-top:40px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:20px; color:#8a8a8a; font-size:11px; }

/* WooCommerce */
.woocommerce .site-main, .woocommerce-page .site-main { padding-top:20px; padding-bottom:50px; }
.woocommerce .woocommerce-breadcrumb { font-size:11px; color:var(--fit-muted); margin:4px 0 18px; }
.woocommerce ul.products { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px 14px; margin:0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto !important; margin:0 !important; float:none !important; }
.woocommerce ul.products li.product a img { border-radius:18px; background:var(--fit-soft); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:14px; line-height:1.35; padding:8px 0 0; font-weight:700; }
.woocommerce ul.products li.product .price { color:var(--fit-text); font-size:14px; font-weight:900; }
.woocommerce span.onsale { min-width:46px; min-height:46px; line-height:46px; padding:0; top:10px; left:10px; margin:0; border-radius:50%; background:#111; font-size:10px; }
.woocommerce a.button { border-radius:10px; background:#111; color:#fff; font-size:12px; padding:11px 14px; }
.woocommerce div.product { padding-top:24px; }
.woocommerce div.product div.images img { border-radius:18px; }
.woocommerce div.product .product_title { font-size:clamp(27px,4vw,44px); letter-spacing:-.045em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color:#111; font-weight:900; }
.woocommerce .quantity .qty { min-height:44px; border:1px solid #ddd; border-radius:10px; }
.woocommerce div.product form.cart .button { min-height:44px; border-radius:10px; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error { border-radius:12px; }
.woocommerce-cart-form, .cart_totals, .woocommerce-checkout #customer_details, .woocommerce-checkout-review-order { background:#fff; }
.woocommerce table.shop_table { border-radius:14px; border:1px solid #e9e9e9; overflow:hidden; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select { border:1px solid #ddd; border-radius:10px; min-height:44px; padding:8px 11px; }
.woocommerce form .form-row { padding:5px; }

/* Pages */
.fit-page-shell { padding:50px 0; }
.fit-page-shell h1, .fit-page-shell h2, .fit-page-shell h3 { letter-spacing:-.035em; }
.fit-content-card { max-width:880px; margin:auto; }

/* Toast */
.fit-toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%,20px); background:#111; color:#fff; padding:12px 16px; border-radius:999px; font-size:12px; font-weight:700; opacity:0; pointer-events:none; transition:.25s; z-index:2000; }
.fit-toast.is-visible { opacity:1; transform:translate(-50%,0); }

/* Responsive */
@media (max-width: 1024px) {
  .fit-header { grid-template-columns: 1fr auto; }
  .fit-desktop-nav { display:none; }
  .fit-mobile-toggle { display:grid; }
  .fit-header-actions { grid-column:2; grid-row:1; }
  .fit-products, .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fit-category-grid { grid-template-columns:repeat(2,1fr); }
  .fit-footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px) {
  .fit-container { width:min(100% - 22px, var(--fit-container)); }
  .fit-announcement__inner { font-size:10px; }
  .fit-header { min-height:62px; grid-template-columns:auto 1fr auto; gap:8px; }
  .fit-brand { font-size:18px; }
  .fit-brand-mark { width:30px; height:30px; border-radius:9px; }
  .fit-header-actions { grid-column:auto; grid-row:auto; }
  .fit-icon-btn { width:38px; height:38px; }
  .fit-header-actions .fit-hide-mobile { display:none; }
  .fit-search-form { margin:9px auto; }
  .fit-search-form input[type="search"] { height:42px; }
  .fit-hero { padding-top:10px; }
  .fit-hero-card { min-height:68vh; border-radius:18px; }
  .fit-hero-content { padding:25px 20px; justify-content:flex-end; padding-bottom:40px; }
  .fit-hero h1 { font-size:42px; }
  .fit-hero p { font-size:14px; }
  .fit-section { padding:18px 0 34px; }
  .fit-products, .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 9px; }
  .fit-product-media { border-radius:14px; }
  .fit-product-actions { opacity:1; transform:none; }
  .fit-category-grid { gap:9px; }
  .fit-category-card { min-height:140px; border-radius:15px; padding:14px; }
  .fit-category-card__text strong { font-size:16px; }
  .fit-editorial { grid-template-columns:1fr; border-radius:18px; }
  .fit-editorial__media { min-height:300px; }
  .fit-editorial__content { padding:28px 20px; }
  .fit-benefits { grid-template-columns:repeat(2,1fr); }
  .fit-footer { padding-top:40px; }
  .fit-footer-grid { grid-template-columns:1fr 1fr; gap:26px 18px; }
  .fit-footer__bottom { flex-direction:column; margin-top:28px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
}
