/* ==========================================================================
   Flymate theme — Bootstrap 5.3 overrides & components
   ========================================================================== */

:root {
	--fm-red: #d61f2b;
	--fm-red-dark: #b3141f;
	--fm-ink: #15151a;
	--fm-ink-2: #2a2a31;
	--fm-muted: #6b6b74;
	--fm-line: #ebe8e4;
	--fm-soft: #f7f4f0;
	--fm-white: #fff;
	--fm-radius: 16px;
	--fm-radius-sm: 10px;
	--fm-shadow: 0 10px 30px rgba(21, 21, 26, .07);
	--fm-shadow-lg: 0 20px 50px rgba(21, 21, 26, .12);
	--fm-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fm-display: "Outfit", var(--fm-font);

	--bs-body-font-family: var(--fm-font);
	--bs-body-color: var(--fm-ink-2);
	--bs-link-color: var(--fm-ink);
	--bs-link-color-rgb: 21, 21, 26;
	--bs-link-hover-color: var(--fm-red);
	--bs-link-hover-color-rgb: 214, 31, 43;
	--bs-border-color: var(--fm-line);
	--bs-primary: var(--fm-red);
	--bs-primary-rgb: 214, 31, 43;
}

body { background: var(--fm-white); font-size: 15px; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--fm-display); color: var(--fm-ink); font-weight: 700; letter-spacing: -.01em; }
a { text-decoration: none; transition: color .2s; }
img { max-width: 100%; height: auto; }
::selection { background: var(--fm-red); color: #fff; }
.fm-skip { position: absolute; z-index: 2000; top: 8px; left: 8px; background: #fff; padding: 8px 14px; }

/* Buttons ---------------------------------------------------------------- */
.btn { border-radius: 50px; font-weight: 600; padding: .65rem 1.4rem; font-size: .95rem; }
.btn-lg { padding: .85rem 1.8rem; font-size: 1rem; }
.btn-fm, .woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce #respond input#submit.alt {
	--bs-btn-color: #fff; --bs-btn-bg: var(--fm-red); --bs-btn-border-color: var(--fm-red);
	--bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--fm-red-dark); --bs-btn-hover-border-color: var(--fm-red-dark);
	--bs-btn-active-bg: var(--fm-red-dark); --bs-btn-active-border-color: var(--fm-red-dark); --bs-btn-active-color: #fff;
	background: var(--fm-red); color: #fff; border: 1px solid var(--fm-red);
}
.btn-outline-dark { --bs-btn-color: var(--fm-ink); --bs-btn-border-color: var(--fm-ink); --bs-btn-hover-bg: var(--fm-ink); --bs-btn-hover-border-color: var(--fm-ink); }
.fm-link { font-weight: 600; color: var(--fm-ink); }
.fm-link:hover { color: var(--fm-red); }
.fm-link i { transition: transform .2s; display: inline-block; }
.fm-link:hover i { transform: translateX(4px); }

/* Top bar & header ------------------------------------------------------- */
.fm-topbar { background: var(--fm-ink); color: rgba(255,255,255,.85); font-size: .82rem; padding: .5rem 0; }
.fm-topbar a { color: rgba(255,255,255,.85); }
.fm-topbar a:hover { color: #fff; }
.fm-header { background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--fm-line); transition: box-shadow .25s; }
.fm-header.is-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,.06); }
.fm-header .navbar { padding: .7rem 0; }
.fm-logo img { height: 46px; width: auto; display: block; }
.custom-logo { max-height: 46px; width: auto; }
.fm-header .nav-link { font-family: var(--fm-display); font-weight: 600; color: var(--fm-ink); padding: .5rem 1rem !important; position: relative; }
.fm-header .nav-link:hover, .fm-header .nav-link.active { color: var(--fm-red); }
@media (min-width: 992px) {
	.fm-header .nav-link::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: .2rem; height: 2px; background: var(--fm-red); transform: scaleX(0); transition: transform .25s; }
	.fm-header .nav-link:hover::after, .fm-header .nav-link.active::after { transform: scaleX(1); }
	.fm-header .offcanvas { flex-grow: 1; }
}
.fm-header .dropdown-menu { border: 0; box-shadow: var(--fm-shadow-lg); border-radius: var(--fm-radius-sm); padding: .5rem; }
.fm-header .dropdown-item { border-radius: 8px; padding: .5rem .9rem; }
.fm-header .dropdown-item:active { background: var(--fm-red); }
.fm-icon-btn { width: 42px; height: 42px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 1.2rem; color: var(--fm-ink); border: 0; }
.fm-icon-btn:hover { background: var(--fm-soft); color: var(--fm-red); }
.fm-cart-count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; border-radius: 9px; background: var(--fm-red); color: #fff; font-size: .68rem; font-weight: 700; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.fm-search-drop { border-top: 1px solid var(--fm-line); background: #fff; }
.fm-search-form { position: relative; display: flex; gap: .5rem; max-width: 720px; margin: 0 auto; }
.fm-search-form > i { position: absolute; left: 1.1rem; top: 50%; transform: translateY(-50%); color: var(--fm-muted); }
.fm-search-form .form-control { border-radius: 50px; padding: .75rem 1rem .75rem 2.8rem; border-color: var(--fm-line); background: var(--fm-soft); }
.fm-search-form .form-control:focus { box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); border-color: var(--fm-red); background: #fff; }
@media (max-width: 991.98px) {
	.fm-logo img { height: 38px; }
	.fm-header .offcanvas { max-width: 320px; }
	.fm-header .offcanvas .nav-link { padding: .8rem 0 !important; border-bottom: 1px solid var(--fm-line); }
}

/* Section helpers -------------------------------------------------------- */
.fm-section { padding: 80px 0; }
.fm-bg-soft { background: var(--fm-soft); }
.fm-head { margin-bottom: 2.5rem; }
.fm-head h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: .35rem 0 0; }
.fm-eyebrow { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-red); }
@media (max-width: 767.98px) { .fm-section { padding: 56px 0; } .fm-head { margin-bottom: 1.6rem; } }

/* Hero ------------------------------------------------------------------- */
.fm-hero { background: linear-gradient(180deg, var(--fm-soft) 0%, #fff 100%); padding: 70px 0 90px; overflow: hidden; }
.fm-hero-title { font-size: clamp(2.5rem, 6vw, 4.4rem); line-height: 1.02; font-weight: 800; margin: 1rem 0 1.2rem; }
.fm-hero-title span { display: block; font-size: .42em; font-weight: 600; color: var(--fm-muted); margin-top: .7rem; letter-spacing: 0; }
.fm-hero-text { font-size: 1.08rem; color: var(--fm-muted); max-width: 520px; margin-bottom: 2rem; }
.fm-hero-points li { font-weight: 600; font-size: .92rem; color: var(--fm-ink); }
.fm-hero-points i { color: var(--fm-red); margin-right: .35rem; }
.fm-hero-visual { position: relative; max-width: 520px; margin: 0 auto; }
.fm-hero-blob { position: absolute; inset: 8% 4% 4% 4%; background: #fff; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; box-shadow: var(--fm-shadow-lg); }
.fm-hero-blob::before { content: ""; position: absolute; width: 120px; height: 120px; border-radius: 50%; background: var(--fm-red); opacity: .1; top: -20px; right: -10px; }
.fm-hero-img { position: relative; display: block; width: 100%; mix-blend-mode: multiply; animation: fmFloat 6s ease-in-out infinite; }
.fm-hero-tag { position: absolute; left: 0; bottom: 12%; background: var(--fm-ink); color: #fff; padding: .9rem 1.3rem; border-radius: 14px; box-shadow: var(--fm-shadow-lg); line-height: 1.2; }
.fm-hero-tag small { display: block; font-size: .72rem; opacity: .7; text-transform: uppercase; letter-spacing: .08em; }
.fm-hero-tag strong { font-family: var(--fm-display); font-size: 1.35rem; }
.fm-hero-tag:hover { background: var(--fm-red); color: #fff; }
@keyframes fmFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@media (max-width: 991.98px) { .fm-hero { padding: 40px 0 60px; text-align: center; } .fm-hero-text { margin-left: auto; margin-right: auto; } .fm-hero .d-flex { justify-content: center; } .fm-hero-visual { max-width: 380px; } }
@media (prefers-reduced-motion: reduce) { .fm-hero-img { animation: none; } }

/* Category cards --------------------------------------------------------- */
.fm-cat-card { display: block; background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); overflow: hidden; height: 100%; transition: transform .3s, box-shadow .3s, border-color .3s; }
.fm-cat-card:hover { transform: translateY(-6px); box-shadow: var(--fm-shadow-lg); border-color: transparent; }
.fm-cat-img { aspect-ratio: 1 / 1; background: #fff; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.fm-cat-img img { max-height: 100%; object-fit: contain; transition: transform .4s; }
.fm-cat-card:hover .fm-cat-img img { transform: scale(1.06); }
.fm-cat-body { padding: 1rem 1.2rem 1.3rem; border-top: 1px solid var(--fm-line); }
.fm-cat-body h3 { font-size: 1.08rem; margin-bottom: .25rem; }
.fm-cat-body span { font-size: .85rem; color: var(--fm-muted); }
.fm-cat-card:hover .fm-cat-body span { color: var(--fm-red); }

/* Product grid & card ---------------------------------------------------- */
.woocommerce ul.products, ul.products.fm-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce-page .col-lg-9 ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1199.98px) { .woocommerce ul.products, ul.products.fm-products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .woocommerce ul.products, ul.products.fm-products, .woocommerce-page .col-lg-9 ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }

.woocommerce ul.products li.product.fm-card, li.fm-card { width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important; background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .3s, transform .3s, border-color .3s; }
li.fm-card:hover { box-shadow: var(--fm-shadow-lg); transform: translateY(-4px); border-color: transparent; }
.fm-card-media { position: relative; aspect-ratio: 1 / 1; background: #fff; overflow: hidden; }
.fm-card-img { display: block; width: 100%; height: 100%; }
.fm-card-img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain; padding: 10px; margin: 0 !important; transition: opacity .4s, transform .5s; }
.fm-card-img .fm-img-hover { opacity: 0; }
li.fm-card:hover .fm-img-hover { opacity: 1; }
li.fm-card:hover .fm-card-img img:only-child, li.fm-card:hover .fm-img-hover { transform: scale(1.04); }
li.fm-card:hover .fm-card-img .fm-img-main:not(:only-child) { opacity: 0; }
.fm-badge-sale, .woocommerce span.onsale.fm-badge-sale { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--fm-red); color: #fff; font-size: .75rem; font-weight: 700; padding: .3rem .6rem; border-radius: 50px; min-height: 0; min-width: 0; line-height: 1.2; margin: 0; }
.fm-badge-out { position: absolute; top: 12px; right: 12px; background: var(--fm-ink); color: #fff; font-size: .72rem; font-weight: 600; padding: .3rem .6rem; border-radius: 50px; }
.fm-card-quick { position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--fm-ink); display: flex; align-items: center; justify-content: center; box-shadow: var(--fm-shadow); opacity: 0; transform: translateY(8px); transition: all .3s; }
li.fm-card:hover .fm-card-quick { opacity: 1; transform: none; }
.fm-card-quick:hover { background: var(--fm-red); color: #fff; }
.fm-card-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; flex: 1; border-top: 1px solid var(--fm-line); }
.fm-card-cat { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; margin-bottom: .35rem; }
.fm-card-cat a { color: var(--fm-muted); }
.fm-card-cat a:hover { color: var(--fm-red); }
.fm-card-title { font-family: var(--fm-font); font-size: .93rem; font-weight: 600; line-height: 1.4; margin: 0 0 .6rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.fm-card-title a { color: var(--fm-ink); }
.fm-card-title a:hover { color: var(--fm-red); }
.fm-card-price { margin-bottom: .9rem; font-family: var(--fm-display); }
.fm-card-price .price, .fm-card-price { color: var(--fm-ink); font-weight: 700; font-size: 1.12rem; }
.fm-card-price del, .price del { color: var(--fm-muted); font-weight: 500; font-size: .85em; opacity: .8; margin-right: .3rem; }
.fm-card-price ins, .price ins { text-decoration: none; }
.fm-card-actions { margin-top: auto; }
.fm-card-actions .button { display: flex !important; width: 100%; justify-content: center; align-items: center; gap: .4rem; border-radius: 50px !important; background: var(--fm-ink) !important; color: #fff !important; font-weight: 600 !important; font-size: .86rem !important; padding: .65rem 1rem !important; border: 0 !important; transition: background .2s !important; }
.fm-card-actions .button:hover { background: var(--fm-red) !important; }
.fm-card-actions .button.loading { opacity: .7; }
.fm-card-actions .added_to_cart { display: block; text-align: center; font-size: .82rem; font-weight: 600; margin-top: .5rem; color: var(--fm-red); }
@media (max-width: 575.98px) {
	.fm-card-body { padding: .8rem .8rem 1rem; }
	.fm-card-title { font-size: .84rem; }
	.fm-card-price, .fm-card-price .price { font-size: 1rem; }
	.fm-card-actions .button { font-size: .78rem !important; padding: .55rem .5rem !important; }
	.fm-card-quick { display: none; }
}

/* Colour swatches band --------------------------------------------------- */
.fm-colours { background: var(--fm-ink); padding: 70px 0; position: relative; overflow: hidden; }
.fm-colours::after { content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%; background: var(--fm-red); opacity: .18; filter: blur(60px); right: -100px; top: -120px; }
.fm-colours h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: .35rem 0 1rem; }
.fm-swatches { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; position: relative; z-index: 1; }
.fm-swatch { display: flex; align-items: center; gap: .7rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff; padding: .8rem 1rem; border-radius: 50px; font-weight: 600; transition: background .2s, transform .2s; }
.fm-swatch span { width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); flex-shrink: 0; }
.fm-swatch:hover { background: rgba(255,255,255,.14); color: #fff; transform: translateY(-2px); }
@media (max-width: 575.98px) { .fm-swatches { grid-template-columns: repeat(2, 1fr); } }

/* Tabs ------------------------------------------------------------------- */
.fm-tabs { gap: .4rem; background: var(--fm-soft); padding: .35rem; border-radius: 50px; }
.fm-tabs .nav-link { border-radius: 50px; color: var(--fm-ink); font-weight: 600; font-size: .9rem; padding: .5rem 1.1rem; border: 0; }
.fm-tabs .nav-link.active { background: var(--fm-ink); color: #fff; }

/* Why / features --------------------------------------------------------- */
.fm-why { background: #fff; border-radius: var(--fm-radius); padding: 2rem 1.6rem; height: 100%; border: 1px solid var(--fm-line); transition: transform .3s, box-shadow .3s; }
.fm-why:hover { transform: translateY(-5px); box-shadow: var(--fm-shadow-lg); }
.fm-why i { font-size: 1.6rem; width: 56px; height: 56px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(214,31,43,.08); color: var(--fm-red); margin-bottom: 1.2rem; }
.fm-why h3 { font-size: 1.12rem; }
.fm-why p { color: var(--fm-muted); margin: 0; font-size: .93rem; }

/* CTA -------------------------------------------------------------------- */
.fm-cta { padding: 0 0 80px; }
.fm-cta-box { background: linear-gradient(120deg, var(--fm-red) 0%, #8f0f18 100%); border-radius: 24px; padding: 3rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: rgba(255,255,255,.85); position: relative; overflow: hidden; }
.fm-cta-box::before { content: "\F72B"; font-family: "bootstrap-icons"; position: absolute; right: 18%; top: 50%; transform: translateY(-50%) rotate(-15deg); font-size: 11rem; color: rgba(255,255,255,.07); }
.fm-cta-box h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.fm-cta-box .btn-light { color: var(--fm-red); position: relative; }
@media (max-width: 767.98px) { .fm-cta-box { flex-direction: column; text-align: center; padding: 2.2rem 1.5rem; } }

/* Features strip & footer ------------------------------------------------ */
.fm-features-strip { border-top: 1px solid var(--fm-line); padding: 42px 0; background: #fff; }
.fm-feature { display: flex; gap: 1rem; align-items: center; }
.fm-feature i { font-size: 1.9rem; color: var(--fm-red); }
.fm-feature strong { display: block; font-family: var(--fm-display); color: var(--fm-ink); }
.fm-feature span { font-size: .84rem; color: var(--fm-muted); }
@media (max-width: 767.98px) { .fm-feature { flex-direction: column; text-align: center; gap: .5rem; } }

.fm-footer { background: var(--fm-ink); color: rgba(255,255,255,.65); padding: 70px 0 0; font-size: .92rem; }
.fm-footer h6 { color: #fff; font-family: var(--fm-display); font-size: 1rem; margin-bottom: 1.2rem; }
.fm-footer a { color: rgba(255,255,255,.65); }
.fm-footer a:hover { color: #fff; }
.fm-footer ul li { margin-bottom: .6rem; }
.fm-footer .fm-logo img { height: 52px; }
.fm-footer-about { max-width: 340px; }
.fm-social a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.fm-social a:hover { background: var(--fm-red); }
.fm-contact-list li { display: flex; gap: .6rem; }
.fm-contact-list i { color: var(--fm-red); }
.fm-contact-list a { word-break: break-all; }
.fm-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.3rem 0; margin-top: 50px; font-size: .84rem; }
.fm-pay i { font-size: 1.3rem; color: rgba(255,255,255,.8); }

.fm-wa, .fm-top { position: fixed; right: 20px; z-index: 1030; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: var(--fm-shadow-lg); border: 0; }
.fm-wa { bottom: 84px; background: #25d366; color: #fff; font-size: 1.5rem; }
.fm-wa:hover { color: #fff; transform: scale(1.06); }
.fm-top { bottom: 24px; background: var(--fm-ink); color: #fff; opacity: 0; visibility: hidden; transition: all .3s; }
.fm-top.show { opacity: 1; visibility: visible; }
.fm-top:hover { background: var(--fm-red); }

/* Inner page hero & breadcrumbs ----------------------------------------- */
.fm-page-hero { background: var(--fm-soft); padding: 48px 0 40px; text-align: center; border-bottom: 1px solid var(--fm-line); }
.fm-page-hero h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: .5rem; }
.fm-page-hero .lead { color: var(--fm-muted); font-size: 1rem; }
.fm-breadcrumb { margin-top: .8rem; }
.fm-breadcrumb .breadcrumb { justify-content: center; font-size: .85rem; --bs-breadcrumb-divider-color: var(--fm-muted); --bs-breadcrumb-item-active-color: var(--fm-muted); }
.fm-breadcrumb a { color: var(--fm-ink); }
.fm-breadcrumb a:hover { color: var(--fm-red); }
.fm-single-top { background: var(--fm-soft); padding: 14px 0; border-bottom: 1px solid var(--fm-line); }
.fm-single-top .fm-breadcrumb { margin: 0; }
.fm-single-top .breadcrumb { justify-content: flex-start; }

/* Shop sidebar ----------------------------------------------------------- */
.fm-widget { background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); padding: 1.4rem; margin-bottom: 1.2rem; }
.fm-widget-title { font-size: 1rem; margin-bottom: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--fm-line); }
.fm-cat-list li a { display: flex; justify-content: space-between; align-items: center; padding: .5rem .7rem; border-radius: 8px; color: var(--fm-ink-2); font-size: .92rem; }
.fm-cat-list li a span { font-size: .75rem; background: var(--fm-soft); color: var(--fm-muted); padding: .1rem .5rem; border-radius: 50px; }
.fm-cat-list li a:hover, .fm-cat-list li a.active { background: var(--fm-soft); color: var(--fm-red); font-weight: 600; }
.fm-side-promo { background: var(--fm-ink); border-color: var(--fm-ink); color: rgba(255,255,255,.7); text-align: center; }
.fm-side-promo i { font-size: 2rem; color: var(--fm-red); display: block; }
.fm-side-promo strong { display: block; color: #fff; font-family: var(--fm-display); font-size: 1.15rem; }
@media (max-width: 991.98px) { #fmFilters .offcanvas-body { padding-top: 0; } }

/* Shop toolbar ----------------------------------------------------------- */
.woocommerce .woocommerce-result-count { color: var(--fm-muted); font-size: .9rem; margin: .5rem 0 1.4rem; }
.woocommerce .woocommerce-ordering { margin-bottom: 1.4rem; }
.woocommerce .woocommerce-ordering select, .woocommerce-ordering .orderby { border: 1px solid var(--fm-line); border-radius: 50px; padding: .5rem 2.2rem .5rem 1rem; font-size: .9rem; background-color: #fff; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: .4rem; margin-top: 2.5rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--fm-line); color: var(--fm-ink); padding: 0; }
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--fm-red); border-color: var(--fm-red); color: #fff; }

/* Single product --------------------------------------------------------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
.woocommerce div.product > .onsale, .woocommerce div.product > span.onsale { position: absolute; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images { position: relative; background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); padding: 1rem; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 1rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; border: 1px solid var(--fm-line); border-radius: 10px; overflow: hidden; padding: 4px; }
.woocommerce div.product div.images .flex-control-thumbs li img { opacity: .6; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li:hover img { opacity: 1; }
.woocommerce div.product .woocommerce-product-gallery__trigger { top: 1.5rem; right: 1.5rem; background: #fff; box-shadow: var(--fm-shadow); }
.woocommerce div.product .product_title { font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.25; margin-bottom: 1rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--fm-ink); font-family: var(--fm-display); font-size: 1.9rem; font-weight: 700; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
.woocommerce div.product p.price del { font-size: 1.1rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--fm-muted); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0; padding: 1.4rem 0; border-top: 1px solid var(--fm-line); border-bottom: 1px solid var(--fm-line); }
.woocommerce div.product form.cart div.quantity { margin: 0 !important; float: none; }
.woocommerce .quantity .qty { width: 90px; height: 52px; border-radius: 50px; border: 1px solid var(--fm-line); text-align: center; font-weight: 600; }
.woocommerce div.product form.cart .button { flex: 1; min-width: 200px; height: 52px; border-radius: 50px !important; background: var(--fm-red) !important; font-weight: 700; font-size: 1rem; float: none; }
.woocommerce div.product form.cart .button:hover { background: var(--fm-red-dark) !important; }
.fm-trust-list { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 0 0 1.6rem; }
.fm-trust-list li { background: var(--fm-soft); border-radius: 12px; padding: .8rem 1rem; font-size: .88rem; font-weight: 600; color: var(--fm-ink); }
.fm-trust-list i { color: var(--fm-red); margin-right: .4rem; }
.woocommerce div.product .product_meta { font-size: .88rem; color: var(--fm-muted); }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: .3rem; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.5rem; display: flex; gap: .5rem; border-bottom: 1px solid var(--fm-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; margin: 0; padding: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: .8rem 1.2rem; font-family: var(--fm-display); color: var(--fm-muted); border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--fm-ink); border-color: var(--fm-red); }
.woocommerce div.product .woocommerce-tabs .panel { background: #fff; }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: 1.6rem; margin: 2rem 0 1.5rem; }
@media (max-width: 991.98px) { .woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }
@media (max-width: 575.98px) { .fm-trust-list { grid-template-columns: 1fr; } .woocommerce div.product form.cart .button { min-width: 0; } }

/* Notices ---------------------------------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--fm-radius-sm); border-top-color: var(--fm-red); background: var(--fm-soft); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--fm-red); }
.woocommerce-message .button, .woocommerce-info .button { background: var(--fm-ink) !important; color: #fff !important; border-radius: 50px !important; }

/* Cart / checkout / account ---------------------------------------------- */
.fm-wc-page .woocommerce table.shop_table { border-radius: var(--fm-radius); border-color: var(--fm-line); overflow: hidden; }
.fm-wc-page .woocommerce table.shop_table th { font-family: var(--fm-display); background: var(--fm-soft); }
.fm-wc-page .woocommerce table.shop_table img { width: 70px; border-radius: 8px; }
.fm-wc-page .woocommerce .button { border-radius: 50px; padding: .7rem 1.4rem; font-weight: 600; background: var(--fm-ink); color: #fff; }
.fm-wc-page .woocommerce .button:hover { background: var(--fm-red); color: #fff; }
.fm-wc-page .woocommerce .checkout-button, .fm-wc-page .woocommerce #place_order { background: var(--fm-red) !important; font-size: 1.05rem !important; padding: 1rem !important; }
.fm-wc-page .cart_totals, .fm-wc-page #order_review, .fm-wc-page .woocommerce-checkout-review-order { background: var(--fm-soft); border-radius: var(--fm-radius); padding: 1.5rem; }
.fm-wc-page .form-control, .fm-wc-page .form-select, .fm-wc-page .input-text, .fm-wc-page select { border-radius: 10px; border: 1px solid #ddd8d2; padding: .7rem .9rem; }
.fm-wc-page .form-control:focus, .fm-wc-page .input-text:focus { border-color: var(--fm-red); box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); }
.fm-wc-page .woocommerce form .form-row label { font-weight: 600; font-size: .88rem; margin-bottom: .35rem; }
.fm-wc-page .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); overflow: hidden; }
.fm-wc-page .woocommerce-MyAccount-navigation li a { display: block; padding: .8rem 1.2rem; border-bottom: 1px solid var(--fm-line); color: var(--fm-ink); }
.fm-wc-page .woocommerce-MyAccount-navigation li.is-active a, .fm-wc-page .woocommerce-MyAccount-navigation li a:hover { background: var(--fm-soft); color: var(--fm-red); }
.fm-wc-page .wc-block-components-button:not(.is-link) { background: var(--fm-red); color: #fff; border-radius: 50px; }
.fm-wc-page .wc-block-cart, .fm-wc-page .wc-block-checkout { font-family: var(--fm-font); }

/* Content pages ---------------------------------------------------------- */
.fm-content { max-width: 860px; font-size: 1rem; line-height: 1.8; }
.fm-content h2 { font-size: 1.5rem; margin: 2rem 0 .8rem; }
.fm-content h3 { font-size: 1.2rem; margin: 1.6rem 0 .6rem; }
.fm-content ul { padding-left: 1.2rem; }
.fm-info-card { background: var(--fm-soft); border-radius: var(--fm-radius); padding: 1.6rem; height: 100%; }
.fm-info-card i { font-size: 1.6rem; color: var(--fm-red); }
.fm-info-card h3 { font-size: 1.05rem; margin: .8rem 0 .3rem; }
.fm-contact-form .form-control { border-radius: 10px; padding: .8rem 1rem; border-color: #ddd8d2; }
.fm-contact-form .form-control:focus { border-color: var(--fm-red); box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); }
.fm-post-card { background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); overflow: hidden; }
.fm-404 { font-family: var(--fm-display); font-size: clamp(5rem, 15vw, 9rem); font-weight: 800; line-height: 1; color: var(--fm-red); margin: 0; }
.fm-empty i { color: var(--fm-muted); }

/* Single-category banner (home) ----------------------------------------- */
.fm-cat-banner { display: grid; grid-template-columns: 1fr 1.3fr; align-items: center; gap: 2rem; background: var(--fm-soft); border-radius: 24px; padding: 2.5rem; color: var(--fm-ink-2); transition: box-shadow .3s; }
.fm-cat-banner:hover { box-shadow: var(--fm-shadow-lg); color: var(--fm-ink-2); }
.fm-cat-banner h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: .4rem 0 .6rem; }
.fm-cat-banner p { color: var(--fm-muted); margin-bottom: 1.4rem; }
.fm-cat-banner-imgs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fm-cat-banner-imgs div { background: #fff; border-radius: var(--fm-radius); aspect-ratio: 1 / 1; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.fm-cat-banner-imgs img { width: 100%; height: 100%; object-fit: contain; padding: 8px; transition: transform .4s; }
.fm-cat-banner:hover .fm-cat-banner-imgs img { transform: scale(1.05); }
@media (max-width: 991.98px) { .fm-cat-banner { grid-template-columns: 1fr; text-align: center; padding: 1.8rem 1.2rem; } }

/* Logo sizing for the wide "flymate luggage" mark ----------------------- */
.fm-logo img { height: 52px; }
.fm-footer .fm-logo img { height: 60px; }
.offcanvas-header .fm-logo img { height: 42px; }
@media (max-width: 991.98px) { .fm-logo img { height: 42px; } }

/* Hero product slider ---------------------------------------------------- */
.fm-hero { padding: 0; }
.fm-hero .carousel-item { padding: 60px 0 90px; }
.fm-hero .fm-hero-title { font-size: clamp(1.9rem, 4.2vw, 3.2rem); line-height: 1.12; margin: .9rem 0 1.1rem; text-transform: capitalize; }
.fm-hero-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .7rem; margin-bottom: 1.8rem; font-family: var(--fm-display); }
.fm-hero-price strong { font-size: 2.2rem; color: var(--fm-ink); }
.fm-hero-price del { color: var(--fm-muted); font-size: 1.15rem; }
.fm-hero-off { background: rgba(214,31,43,.1); color: var(--fm-red); font-weight: 700; font-size: .9rem; padding: .3rem .75rem; border-radius: 50px; }
.fm-hero-visual { display: block; position: relative; background: #fff; border-radius: 28px; box-shadow: var(--fm-shadow-lg); padding: 1.5rem; max-width: 540px; margin: 0 auto; aspect-ratio: 1 / .86; overflow: hidden; }
.fm-hero-visual .fm-hero-img { width: 100%; height: 100%; object-fit: contain; animation: none; mix-blend-mode: normal; }
.fm-hero-visual .fm-hero-photo { object-fit: cover; border-radius: 18px; }
.fm-hero-badge { position: absolute; top: 1.4rem; left: 1.4rem; background: var(--fm-red); color: #fff; font-weight: 800; font-family: var(--fm-display); font-size: 1.05rem; width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(214,31,43,.35); }
.fm-hero .carousel-item.active .fm-hero-img { animation: fmZoom 5s ease-out both; }
@keyframes fmZoom { from { transform: scale(1.06); } to { transform: scale(1); } }
.fm-hero .carousel-indicators { margin-bottom: 1.6rem; }
.fm-hero .carousel-indicators [data-bs-target] { width: 10px; height: 10px; border-radius: 50%; background: var(--fm-ink); border: 0; opacity: .25; margin: 0 5px; transition: all .3s; }
.fm-hero .carousel-indicators .active { opacity: 1; width: 28px; border-radius: 5px; background: var(--fm-red); }
.fm-hero .carousel-control-prev, .fm-hero .carousel-control-next { width: 48px; height: 48px; top: 50%; transform: translateY(-50%); border-radius: 50%; background: #fff; color: var(--fm-ink); opacity: 1; box-shadow: var(--fm-shadow); font-size: 1.2rem; }
.fm-hero .carousel-control-prev { left: 16px; }
.fm-hero .carousel-control-next { right: 16px; }
.fm-hero .carousel-control-prev:hover, .fm-hero .carousel-control-next:hover { background: var(--fm-red); color: #fff; }
@media (max-width: 1399.98px) { .fm-hero .carousel-control-prev, .fm-hero .carousel-control-next { display: none; } }
@media (max-width: 991.98px) {
	.fm-hero .carousel-item { padding: 28px 0 70px; text-align: center; }
	.fm-hero-price, .fm-hero .d-flex { justify-content: center; }
	.fm-hero-visual { max-width: 360px; padding: 1rem; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) { .fm-hero .carousel-item.active .fm-hero-img { animation: none; } }
.fm-hero .carousel-item > .container > .row { min-height: 470px; }
@media (max-width: 991.98px) { .fm-hero .carousel-item > .container > .row { min-height: 0; } }

/* Product reviews -------------------------------------------------------- */
.woocommerce #reviews { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 2rem; align-items: start; }
.woocommerce #reviews #comments, .woocommerce #reviews #review_form_wrapper { background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); padding: 2rem; }
.woocommerce #reviews #comments { background: var(--fm-soft); border-color: transparent; }
.woocommerce #reviews .woocommerce-Reviews-title { font-size: 1.35rem; margin-bottom: .6rem; }
.woocommerce #reviews .woocommerce-noreviews { color: var(--fm-muted); margin: 0; display: flex; align-items: center; gap: .6rem; }
.woocommerce #reviews .woocommerce-noreviews::before { content: "\F586"; font-family: "bootstrap-icons"; font-size: 1.5rem; color: var(--fm-red); }
.woocommerce #reviews #comments ol.commentlist { padding: 0; margin: 1rem 0 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: 1rem; }
.woocommerce #reviews #comments ol.commentlist li .comment_container { background: #fff; border-radius: 12px; padding: 1rem; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border: 0; border-radius: 50%; padding: 0; width: 44px; top: 1rem; left: 1rem; background: none; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 0; margin-left: 56px; padding: 0; border-radius: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta { color: var(--fm-muted); font-size: .85rem; }
.woocommerce #reviews #comments ol.commentlist li .comment-text strong { color: var(--fm-ink); }

.woocommerce #review_form #respond .comment-reply-title { display: block; font-family: var(--fm-display); font-size: 1.35rem; font-weight: 700; color: var(--fm-ink); margin-bottom: .4rem; }
.woocommerce #review_form #respond p.comment-notes { color: var(--fm-muted); font-size: .88rem; margin-bottom: 1.2rem; }
.woocommerce #review_form #respond form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.woocommerce #review_form #respond form > * { grid-column: 1 / -1; }
.woocommerce #review_form #respond form .comment-form-author { grid-column: 1; }
.woocommerce #review_form #respond form .comment-form-email { grid-column: 2; }
.woocommerce #review_form #respond p { margin: 0 0 1rem; }
.woocommerce #review_form #respond label { display: block; font-weight: 600; font-size: .88rem; color: var(--fm-ink); margin-bottom: .4rem; }
.woocommerce #review_form #respond label .required { color: var(--fm-red); }
.woocommerce #review_form #respond textarea, .woocommerce #review_form #respond input[type="text"], .woocommerce #review_form #respond input[type="email"] { width: 100%; border: 1px solid #ddd8d2; border-radius: 10px; padding: .75rem .9rem; font-size: .95rem; background: #fff; transition: border-color .2s, box-shadow .2s; box-sizing: border-box; }
.woocommerce #review_form #respond textarea { min-height: 130px; resize: vertical; }
.woocommerce #review_form #respond textarea:focus, .woocommerce #review_form #respond input:focus { outline: 0; border-color: var(--fm-red); box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); }
.woocommerce #review_form #respond .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: .5rem; font-size: .85rem; color: var(--fm-muted); }
.woocommerce #review_form #respond .comment-form-cookies-consent input { margin-top: .2rem; accent-color: var(--fm-red); }
.woocommerce #review_form #respond .comment-form-cookies-consent label { display: inline; font-weight: 400; color: var(--fm-muted); margin: 0; }
.woocommerce #review_form #respond .form-submit { margin: .4rem 0 0; }
.woocommerce #review_form #respond .form-submit input#submit { background: var(--fm-red); color: #fff; border: 0; border-radius: 50px; padding: .85rem 2.2rem; font-weight: 700; font-size: 1rem; transition: background .2s; }
.woocommerce #review_form #respond .form-submit input#submit:hover { background: var(--fm-red-dark); }

/* Star rating picker */
.woocommerce #review_form #respond .comment-form-rating { background: var(--fm-soft); border-radius: 12px; padding: 1rem 1.1rem; }
.woocommerce #review_form #respond p.stars { margin: .2rem 0 0; line-height: 1; }
.woocommerce #review_form #respond p.stars span { display: inline-flex; gap: .35rem; }
.woocommerce #review_form #respond p.stars a { width: 2.1rem; height: 2.1rem; font-size: 0; text-indent: 0; color: #d5cfc8; }
.woocommerce #review_form #respond p.stars a::before { content: "\F586"; font-family: "bootstrap-icons"; font-size: 1.9rem; width: auto; height: auto; line-height: 1; position: static; color: #d5cfc8; transition: color .15s, transform .15s; display: block; }
.woocommerce #review_form #respond p.stars.selected a::before { color: #f2b01e; }
.woocommerce #review_form #respond p.stars.selected a.active ~ a::before { color: #d5cfc8; }
.woocommerce #review_form #respond p.stars:hover a::before { color: #f2b01e; }
.woocommerce #review_form #respond p.stars a:hover ~ a::before { color: #d5cfc8; }
.woocommerce #review_form #respond p.stars a:hover::before { transform: scale(1.12); }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: #f2b01e; }

@media (max-width: 991.98px) { .woocommerce #reviews { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) {
	.woocommerce #reviews #comments, .woocommerce #reviews #review_form_wrapper { padding: 1.3rem; }
	.woocommerce #review_form #respond form { grid-template-columns: 1fr; }
	.woocommerce #review_form #respond form .comment-form-author, .woocommerce #review_form #respond form .comment-form-email { grid-column: 1; }
}

/* Policy pages: contact block and tables */
.fm-content table { font-size: .95rem; }
.fm-content table th { background: var(--fm-soft); font-family: var(--fm-display); }
.fm-content ol { padding-left: 1.2rem; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { min-width: 0; }
.woocommerce div.product div.images img { max-width: 100%; height: auto; }

/* Footer: tighter about column, roomier contact column */
.fm-footer .row.g-5 { --bs-gutter-x: 2rem; }
.fm-footer-about { font-size: .88rem; line-height: 1.7; }
.fm-footer .fm-logo img { height: 54px; }
.fm-contact-list li { gap: .7rem; line-height: 1.6; margin-bottom: .9rem; }
.fm-contact-list i { margin-top: .2rem; flex-shrink: 0; }
.fm-contact-list a { word-break: normal; overflow-wrap: anywhere; }
@media (min-width: 992px) {
	.fm-footer .fm-fcol-about { width: 23%; }
	.fm-footer .fm-fcol-shop { width: 12%; }
	.fm-footer .fm-fcol-links { width: 14%; }
	.fm-footer .fm-fcol-care { width: 19%; }
	.fm-footer .fm-fcol-contact { width: 32%; }
}

/* ==== Product detail page v2 ============================================ */
.single-product .fm-section.pt-4 { padding-top: 2.5rem !important; }
.woocommerce div.product { gap: 3.5rem; }
.woocommerce div.product div.images { padding: 1.25rem; border-radius: 20px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: 14px; overflow: hidden; }
.woocommerce div.product div.images .flex-control-thumbs li { border-radius: 12px; border: 2px solid var(--fm-line); transition: border-color .2s; cursor: pointer; }
.woocommerce div.product div.images .flex-control-thumbs li:has(img.flex-active) { border-color: var(--fm-red); }
.woocommerce div.product div.images .flex-control-thumbs li img { opacity: .75; border-radius: 8px; }
.woocommerce div.product .images .onsale, .woocommerce div.product > .onsale { top: 1.9rem; left: 1.9rem; z-index: 5; font-size: .85rem; padding: .4rem .8rem; }

/* Summary */
.fm-pd-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.fm-pd-cat a { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fm-red); }
.fm-pd-stock { font-size: .82rem; font-weight: 600; padding: .3rem .75rem; border-radius: 50px; white-space: nowrap; }
.fm-pd-stock.in { background: #e9f7ef; color: #1a7f45; }
.fm-pd-stock.out { background: #fdecec; color: var(--fm-red); }
.woocommerce div.product .product_title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.25; margin-bottom: 1.1rem; text-transform: capitalize; }
.woocommerce div.product .summary p.price { background: var(--fm-soft); border-radius: 16px 16px 0 0; padding: 1.1rem 1.3rem .4rem; margin: 0; font-size: 2.1rem; display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: baseline; gap: .8rem; }
.woocommerce div.product .summary p.price del { font-size: 1.15rem; font-weight: 500; }
.fm-pd-save { background: var(--fm-soft); border-radius: 0 0 16px 16px; padding: .2rem 1.3rem 1.1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: 1.4rem; }
.fm-pd-save-badge { background: #e9f7ef; color: #1a7f45; font-weight: 700; font-size: .85rem; padding: .3rem .75rem; border-radius: 50px; }
.fm-pd-save-badge .amount { color: inherit; }
.fm-pd-tax { color: var(--fm-muted); font-size: .82rem; }

.fm-pd-delivery { display: flex; gap: .9rem; align-items: flex-start; border: 1px dashed #d9d3cc; border-radius: 14px; padding: .9rem 1.1rem; margin-bottom: 1.2rem; }
.fm-pd-delivery i { font-size: 1.4rem; color: var(--fm-red); line-height: 1; margin-top: .1rem; }
.fm-pd-delivery strong { display: block; color: var(--fm-ink); font-size: .92rem; }
.fm-pd-delivery span { color: var(--fm-muted); font-size: .85rem; }

/* Cart form */
.woocommerce div.product form.cart { border: 0; padding: 0; margin: 0 0 1.5rem; gap: .75rem; align-items: stretch; }
.woocommerce div.product form.cart div.quantity.fm-qty { display: inline-flex; align-items: center; border: 1px solid #ddd8d2; border-radius: 50px; height: 54px; padding: 0 .35rem; background: #fff; }
.woocommerce div.product form.cart .fm-qty .qty { border: 0; width: 46px; height: 100%; padding: 0; background: transparent; -moz-appearance: textfield; appearance: textfield; font-size: 1.05rem; }
.fm-qty .qty::-webkit-outer-spin-button, .fm-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fm-qty-btn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--fm-soft); color: var(--fm-ink); display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; transition: background .2s, color .2s; }
.fm-qty-btn:hover { background: var(--fm-ink); color: #fff; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 170px; min-width: 0; height: 54px; background: var(--fm-ink) !important; border-radius: 50px !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: #000 !important; }
.woocommerce div.product form.cart .single_add_to_cart_button::before { content: "\F179"; font-family: "bootstrap-icons"; margin-right: .5rem; font-weight: 400; }
.fm-buy-now { flex: 1 1 170px; height: 54px; border: 0; border-radius: 50px; background: var(--fm-red); color: #fff; font-weight: 700; font-size: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; transition: background .2s, transform .2s; box-shadow: 0 8px 20px rgba(214,31,43,.25); }
.fm-buy-now:hover { background: var(--fm-red-dark); transform: translateY(-1px); }

/* Trust grid */
.fm-trust-list { gap: .7rem; margin-bottom: 1.4rem; }
.fm-trust-list li { display: flex; align-items: center; gap: .75rem; background: #fff; border: 1px solid var(--fm-line); padding: .8rem .9rem; }
.fm-trust-list li i { width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; background: rgba(214,31,43,.08); display: inline-flex; align-items: center; justify-content: center; margin: 0; font-size: 1.05rem; }
.fm-trust-list li span { display: flex; flex-direction: column; font-weight: 500; font-size: .78rem; color: var(--fm-muted); line-height: 1.3; }
.fm-trust-list li strong { color: var(--fm-ink); font-size: .88rem; }

/* Meta + share */
.woocommerce div.product .product_meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; padding: 1rem 0; border-top: 1px solid var(--fm-line); border-bottom: 1px solid var(--fm-line); margin-bottom: 1rem; }
.woocommerce div.product .product_meta > span { margin: 0; }
.woocommerce div.product .product_meta .sku, .woocommerce div.product .product_meta a { color: var(--fm-ink); font-weight: 600; }
.fm-pd-share { display: flex; align-items: center; gap: .5rem; }
.fm-pd-share span { font-size: .88rem; color: var(--fm-muted); margin-right: .25rem; }
.fm-pd-share a, .fm-pd-share button { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--fm-line); background: #fff; color: var(--fm-ink); display: inline-flex; align-items: center; justify-content: center; transition: all .2s; }
.fm-pd-share a:hover, .fm-pd-share button:hover { background: var(--fm-red); border-color: var(--fm-red); color: #fff; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 1rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { justify-content: center; border-bottom: 0; background: var(--fm-soft); border-radius: 50px; padding: .35rem; width: fit-content; max-width: 100%; margin: 0 auto 2rem; flex-wrap: wrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { border: 0; border-radius: 50px; padding: .6rem 1.4rem; font-size: .95rem; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { background: var(--fm-ink); color: #fff; }
.fm-ship-box { background: var(--fm-soft); border-radius: 16px; padding: 1.6rem; height: 100%; }
.fm-ship-box h3 { font-size: 1.15rem; display: flex; align-items: center; gap: .5rem; }
.fm-ship-box h3 i { color: var(--fm-red); }
.fm-ship-box ul { color: var(--fm-ink-2); padding-left: 1.1rem; line-height: 1.8; }
.fm-ship-box a { font-weight: 600; color: var(--fm-red); }

/* Related */
.woocommerce div.product .related > h2 { text-align: center; font-size: clamp(1.5rem, 3vw, 2rem); margin: 3.5rem 0 2rem; }

/* Mobile sticky buy bar */
.fm-sticky-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; background: #fff; box-shadow: 0 -8px 24px rgba(0,0,0,.08); padding: .7rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem; transform: translateY(110%); transition: transform .3s; }
.fm-sticky-buy.show { transform: none; }
.fm-sticky-price { font-family: var(--fm-display); font-weight: 700; font-size: 1.2rem; color: var(--fm-ink); line-height: 1.1; }
.fm-sticky-price del { display: block; font-size: .8rem; font-weight: 500; }
.fm-sticky-price ins { text-decoration: none; }
.fm-sticky-buy .btn { padding: .7rem 1.3rem; }
@media (max-width: 991.98px) { body.single-product .fm-top { bottom: 84px; } body.single-product .fm-wa { bottom: 144px; } }
@media (max-width: 575.98px) {
	.woocommerce div.product .summary p.price { font-size: 1.7rem; }
	.woocommerce div.product form.cart div.quantity.fm-qty { width: 100%; justify-content: space-between; }
	.woocommerce div.product form.cart .fm-qty .qty { flex: 1; }
	.fm-trust-list { grid-template-columns: 1fr 1fr; }
	.fm-trust-list li { flex-direction: column; text-align: center; gap: .4rem; }
}
.woocommerce div.product div.images.woocommerce-product-gallery { opacity: 1 !important; transition: none !important; }

/* Hero slider: no text overlap, smooth cross-fade ---------------------- */
.fm-hero .carousel-fade .carousel-item { transition: opacity .8s ease; }
/* Outgoing slide fades out at the same time the new one fades in (Bootstrap keeps it opaque by default). */
.fm-hero .carousel-fade .active.carousel-item-start,
.fm-hero .carousel-fade .active.carousel-item-end { opacity: 0; transition: opacity .8s ease; }
/* Text is shown/hidden by JS (fm-show) on Bootstrap slide events; without JS it simply stays visible. */
.fm-hero.fm-anim .fm-hero-copy > * { transition: opacity .55s ease, transform .65s cubic-bezier(.2, .7, .2, 1); }
.fm-hero.fm-anim .carousel-item:not(.fm-show) .fm-hero-copy > * { opacity: 0; transform: translateY(22px); transition-duration: .2s; transition-delay: 0s; }
.fm-hero.fm-anim .fm-show .fm-hero-copy > :nth-child(2) { transition-delay: .08s; }
.fm-hero.fm-anim .fm-show .fm-hero-copy > :nth-child(3) { transition-delay: .16s; }
.fm-hero.fm-anim .fm-show .fm-hero-copy > :nth-child(4) { transition-delay: .24s; }
.fm-hero.fm-anim .fm-show .fm-hero-copy > :nth-child(5) { transition-delay: .32s; }
/* Image card: gentle scale-in on the incoming slide. */
.fm-hero .carousel-item .fm-hero-visual { transition: transform .8s ease; }
.fm-hero .carousel-item-next .fm-hero-visual, .fm-hero .carousel-item-prev .fm-hero-visual { transform: scale(.97); }
.fm-hero .carousel-item.active:not(.carousel-item-start):not(.carousel-item-end) .fm-hero-visual { transform: none; }
.fm-hero .carousel-item.active .fm-hero-img { animation: none; }
@media (prefers-reduced-motion: reduce) {
	.fm-hero.fm-anim .fm-hero-copy > * { opacity: 1 !important; transform: none !important; transition: none !important; }
	.fm-hero .carousel-fade .carousel-item { transition: none; }
}

/* Elementor-built header/footer: let the theme header stay sticky through Elementor wrappers */
body:not(.elementor-editor-active) .fm-site-header,
body:not(.elementor-editor-active) .fm-site-header .elementor,
body:not(.elementor-editor-active) .fm-site-header .e-con,
body:not(.elementor-editor-active) .fm-site-header .e-con-inner,
body:not(.elementor-editor-active) .fm-site-header .elementor-element,
body:not(.elementor-editor-active) .fm-site-header .elementor-widget-container { display: contents; }
.fm-main .elementor-widget-fm-hero-slider, .fm-main .e-con:has(> .elementor-widget[class*="elementor-widget-fm-"]) { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.elementor-widget[class*="elementor-widget-fm-"] .elementor-widget-container { margin: 0; padding: 0; }

/* Keep logo sizes when rendered inside Elementor (its ".elementor img" rule loads later) */
.fm-header a.fm-logo img, .offcanvas-header a.fm-logo img { height: 52px; width: auto; max-width: none; }
.fm-footer a.fm-logo img { height: 54px; width: auto; max-width: none; }
.offcanvas-header a.fm-logo img { height: 42px; }
@media (max-width: 991.98px) { .fm-header a.fm-logo img { height: 42px; } }
.fm-header .navbar-nav .nav-link { white-space: nowrap; }

/* ==== Checkout / cart / account layout (WooCommerce col-1/col-2 clash with Bootstrap grid) ==== */
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2 { flex: none; width: 100%; max-width: none; float: none; padding: 0; }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }

.fm-wc-page form.checkout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); column-gap: 2.5rem; align-items: start; }
.fm-wc-page form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.fm-wc-page form.checkout #customer_details { grid-column: 1; grid-row: span 2; display: flex; flex-direction: column; gap: 1.5rem; }
.fm-wc-page form.checkout #order_review_heading { grid-column: 2; margin: 0; padding: 1.5rem 1.6rem 0; background: #fff; border: 1px solid var(--fm-line); border-bottom: 0; border-radius: var(--fm-radius) var(--fm-radius) 0 0; font-size: 1.3rem; }
.fm-wc-page form.checkout #order_review { grid-column: 2; background: #fff; border: 1px solid var(--fm-line); border-top: 0; border-radius: 0 0 var(--fm-radius) var(--fm-radius); padding: 1rem 1.6rem 1.6rem; }
@media (min-width: 992px) {
	.fm-wc-page form.checkout #order_review_heading { position: sticky; top: 96px; }
}
.fm-wc-page #customer_details .col-1, .fm-wc-page #customer_details .col-2 { background: #fff; border: 1px solid var(--fm-line); border-radius: var(--fm-radius); padding: 1.6rem; }
.fm-wc-page #customer_details .col-2:not(:has(input, textarea, select)) { display: none; }
.fm-wc-page .woocommerce-billing-fields > h3, .fm-wc-page .woocommerce-additional-fields > h3, .fm-wc-page #ship-to-different-address { font-size: 1.3rem; margin: 0 0 1.2rem; }
.fm-wc-page #ship-to-different-address label { font-size: 1rem; font-weight: 600; display: flex; align-items: center; gap: .5rem; }

/* Fields: two-column grid, full width where needed */
.fm-wc-page .woocommerce-billing-fields__field-wrapper,
.fm-wc-page .woocommerce-shipping-fields__field-wrapper,
.fm-wc-page .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.fm-wc-page .woocommerce-billing-fields__field-wrapper > .form-row,
.fm-wc-page .woocommerce-shipping-fields__field-wrapper > .form-row,
.fm-wc-page .woocommerce-address-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: auto; float: none; margin: 0 0 1rem; padding: 0; }
.fm-wc-page .woocommerce-billing-fields__field-wrapper > .form-row-first,
.fm-wc-page .woocommerce-shipping-fields__field-wrapper > .form-row-first,
.fm-wc-page .woocommerce-address-fields__field-wrapper > .form-row-first { grid-column: 1; }
.fm-wc-page .woocommerce-billing-fields__field-wrapper > .form-row-last,
.fm-wc-page .woocommerce-shipping-fields__field-wrapper > .form-row-last,
.fm-wc-page .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 2; }
.fm-wc-page .woocommerce form .form-row { padding: 0; margin: 0 0 1rem; }
.fm-wc-page .woocommerce form .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.fm-wc-page .woocommerce form .form-row input.input-text, .fm-wc-page .woocommerce form .form-row textarea, .fm-wc-page .woocommerce form .form-row select { width: 100%; }
.fm-wc-page .woocommerce form .form-row #billing_address_2 { margin-top: .6rem; }
.fm-wc-page .woocommerce form .form-row label { line-height: 1.4; }
.fm-wc-page .woocommerce form .form-row .required { color: var(--fm-red); text-decoration: none; }
.fm-wc-page .woocommerce form .form-row strong { display: block; padding: .7rem .9rem; background: var(--fm-soft); border-radius: 10px; font-weight: 600; }
.fm-wc-page .select2-container .select2-selection--single { height: 46px; border: 1px solid #ddd8d2; border-radius: 10px; }
.fm-wc-page .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: .9rem; }
.fm-wc-page .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.fm-wc-page textarea#order_comments { min-height: 110px; }

/* Order review table */
.fm-wc-page .woocommerce-checkout-review-order { background: none; padding: 0; border-radius: 0; }
.fm-wc-page table.woocommerce-checkout-review-order-table { border: 0; margin: 0 0 1.2rem; }
.fm-wc-page table.woocommerce-checkout-review-order-table th, .fm-wc-page table.woocommerce-checkout-review-order-table td { border: 0; border-bottom: 1px solid var(--fm-line); padding: .8rem 0; background: none; font-family: var(--fm-font); }
.fm-wc-page table.woocommerce-checkout-review-order-table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--fm-muted); font-weight: 600; }
.fm-wc-page table.woocommerce-checkout-review-order-table td.product-name { font-size: .9rem; padding-right: 1rem; }
.fm-wc-page table.woocommerce-checkout-review-order-table td.product-total, .fm-wc-page table.woocommerce-checkout-review-order-table tfoot td { text-align: right; font-weight: 600; color: var(--fm-ink); }
.fm-wc-page table.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: var(--fm-ink-2); }
.fm-wc-page table.woocommerce-checkout-review-order-table tr.order-total th, .fm-wc-page table.woocommerce-checkout-review-order-table tr.order-total td { border-bottom: 0; font-family: var(--fm-display); font-size: 1.25rem; color: var(--fm-ink); padding-top: 1rem; }
.fm-wc-page #shipping_method { list-style: none; padding: 0; margin: 0; }

/* Payment methods */
.fm-wc-page #payment, .woocommerce-checkout #payment { background: var(--fm-soft); border-radius: 14px; }
.fm-wc-page #payment ul.payment_methods { border-bottom: 1px solid var(--fm-line); padding: 1rem 1.1rem; margin: 0; list-style: none; }
.fm-wc-page #payment ul.payment_methods li { padding: .55rem 0; line-height: 1.4; }
.fm-wc-page #payment ul.payment_methods li > label { font-weight: 600; color: var(--fm-ink); cursor: pointer; display: inline; }
.fm-wc-page #payment ul.payment_methods li input[type="radio"] { accent-color: var(--fm-red); margin-right: .5rem; transform: scale(1.15); }
.fm-wc-page #payment div.payment_box { background: #fff; color: var(--fm-ink-2); border-radius: 10px; font-size: .88rem; margin: .7rem 0 0; padding: .8rem 1rem; }
.fm-wc-page #payment div.payment_box::before { border-bottom-color: #fff; }
.fm-wc-page #payment div.form-row.place-order { padding: 1.1rem; margin: 0; }
.fm-wc-page .woocommerce-terms-and-conditions-wrapper { font-size: .85rem; color: var(--fm-muted); }
.fm-wc-page .woocommerce-privacy-policy-text p { margin-bottom: .8rem; }
.fm-wc-page #payment #place_order { width: 100%; float: none; border-radius: 50px !important; height: 56px; font-weight: 700; font-size: 1.05rem !important; background: var(--fm-red) !important; box-shadow: 0 8px 20px rgba(214,31,43,.25); }
.fm-wc-page #payment #place_order:hover { background: var(--fm-red-dark) !important; }

/* Coupon / login toggles */
.fm-wc-page .woocommerce-form-coupon-toggle .woocommerce-info, .fm-wc-page .woocommerce-form-login-toggle .woocommerce-info { border-top: 0; border-left: 4px solid var(--fm-red); }
.fm-wc-page form.checkout_coupon { border: 1px dashed #d9d3cc; border-radius: var(--fm-radius); padding: 1.2rem; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.fm-wc-page form.checkout_coupon p { margin: 0; float: none; width: auto; }
.fm-wc-page form.checkout_coupon .form-row-first { flex: 1 1 220px; }

@media (max-width: 991.98px) {
	.fm-wc-page form.checkout { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.fm-wc-page form.checkout #customer_details, .fm-wc-page form.checkout #order_review_heading, .fm-wc-page form.checkout #order_review { grid-column: 1; grid-row: auto; }
	.fm-wc-page form.checkout #order_review_heading { margin-top: 1.5rem; }
}
@media (max-width: 575.98px) {
	.fm-wc-page .woocommerce-billing-fields__field-wrapper, .fm-wc-page .woocommerce-shipping-fields__field-wrapper, .fm-wc-page .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
	.fm-wc-page .woocommerce-billing-fields__field-wrapper > .form-row-last, .fm-wc-page .woocommerce-shipping-fields__field-wrapper > .form-row-last, .fm-wc-page .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 1; }
	.fm-wc-page #customer_details .col-1, .fm-wc-page #customer_details .col-2, .fm-wc-page form.checkout #order_review { padding: 1.1rem; }
	.fm-wc-page form.checkout #order_review_heading { padding: 1.1rem 1.1rem 0; }
}

/* Cart page totals / account addresses use the same col-1/col-2 classes */
.fm-wc-page .woocommerce-Addresses.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 767.98px) { .fm-wc-page .woocommerce-Addresses.col2-set { grid-template-columns: 1fr; } }
.fm-wc-page form.checkout { grid-template-rows: auto 1fr; }
.fm-wc-page form.checkout #order_review_heading { position: static; }
.fm-wc-page .woocommerce table.shop_table.woocommerce-checkout-review-order-table { border: 0; border-radius: 0; overflow: visible; }
.fm-wc-page .woocommerce table.shop_table.woocommerce-checkout-review-order-table th,
.fm-wc-page .woocommerce table.shop_table.woocommerce-checkout-review-order-table td { background: transparent; }
@media (min-width: 992px) {
	.fm-wc-page form.checkout #order_review { position: sticky; top: 96px; }
}
.fm-wc-page .woocommerce form .form-row input.input-text, .fm-wc-page .woocommerce form .form-row textarea { border: 1px solid #ddd8d2; border-radius: 10px; padding: .7rem .9rem; background: #fff; }
.fm-wc-page .woocommerce form .form-row input.input-text:focus, .fm-wc-page .woocommerce form .form-row textarea:focus { border-color: var(--fm-red); box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); outline: 0; }
.fm-wc-page .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-top: 0; color: var(--fm-ink-2); }

/* ==== My Account: login + register cards ================================= */
.fm-wc-page #customer_login.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: stretch; }
.fm-wc-page #customer_login .u-column1, .fm-wc-page #customer_login .u-column2 { background: #fff; border: 1px solid var(--fm-line); border-radius: 20px; padding: 2.2rem; display: flex; flex-direction: column; }
.fm-wc-page #customer_login .u-column2 { background: var(--fm-soft); border-color: transparent; }
.fm-wc-page #customer_login h2 { font-size: 1.6rem; margin-bottom: .35rem; display: flex; align-items: center; gap: .6rem; }
.fm-wc-page #customer_login .u-column1 h2::before { content: "\F4E1"; font-family: "bootstrap-icons"; font-size: 1.3rem; color: var(--fm-red); }
.fm-wc-page #customer_login .u-column2 h2::before { content: "\F4DC"; font-family: "bootstrap-icons"; font-size: 1.3rem; color: var(--fm-red); }
.fm-wc-page #customer_login form.login, .fm-wc-page #customer_login form.register { border: 0; padding: 0; margin: 1rem 0 0; border-radius: 0; flex: 1; display: flex; flex-direction: column; }
.fm-wc-page .woocommerce form.login .form-row, .fm-wc-page .woocommerce form.register .form-row { margin: 0 0 1.1rem; padding: 0; }
.fm-wc-page .woocommerce form.login .input-text, .fm-wc-page .woocommerce form.register .input-text { width: 100%; height: 50px; border: 1px solid #ddd8d2; border-radius: 12px; padding: .7rem 1rem; background: #fff; font-size: .95rem; }
.fm-wc-page .woocommerce form.login .input-text:focus, .fm-wc-page .woocommerce form.register .input-text:focus { border-color: var(--fm-red); box-shadow: 0 0 0 .2rem rgba(214,31,43,.12); outline: 0; }
.fm-wc-page .woocommerce form.register p:not(.form-row) { color: var(--fm-muted); font-size: .88rem; }
.fm-wc-page .woocommerce form.register .woocommerce-privacy-policy-text p { font-size: .82rem; color: var(--fm-muted); }

/* Password show/hide eye inside the field */
.woocommerce form .password-input, .woocommerce-page form .password-input { position: relative; display: block; width: 100%; }
.woocommerce form .password-input input.input-text { padding-right: 3rem; }
.woocommerce form .show-password-input, .woocommerce-page form .show-password-input { position: absolute; right: .6rem; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; padding: 0; margin: 0; border: 0; border-radius: 50%; background: transparent; color: var(--fm-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 0; line-height: 1; }
.woocommerce form .show-password-input::after, .woocommerce-page form .show-password-input::after { content: "\F341"; font-family: "bootstrap-icons"; font-size: 1.1rem; margin: 0; position: static; }
.woocommerce form .show-password-input.display-password::after, .woocommerce-page form .show-password-input.display-password::after { content: "\F340"; color: var(--fm-red); }
.woocommerce form .show-password-input:hover { background: var(--fm-soft); color: var(--fm-ink); }

/* Remember me + buttons */
.fm-wc-page .woocommerce form.login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .8rem; }
.fm-wc-page .woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: .45rem; font-weight: 500; color: var(--fm-ink-2); margin: 0 !important; cursor: pointer; }
.fm-wc-page .woocommerce-form-login__rememberme input { accent-color: var(--fm-red); width: 17px; height: 17px; margin: 0; }
.fm-wc-page .woocommerce form.login .button, .fm-wc-page .woocommerce form.register .button { background: var(--fm-red) !important; color: #fff !important; border: 0; border-radius: 50px !important; height: 50px; padding: 0 2.2rem !important; font-weight: 700; font-size: 1rem; box-shadow: 0 8px 20px rgba(214,31,43,.22); margin: 0; }
.fm-wc-page .woocommerce form.register .button { width: 100%; background: var(--fm-ink) !important; box-shadow: none; }
.fm-wc-page .woocommerce form.login .button:hover { background: var(--fm-red-dark) !important; }
.fm-wc-page .woocommerce form.register .button:hover { background: #000 !important; }
.fm-wc-page .woocommerce form.register .form-row:has(.woocommerce-form-register__submit) { margin-top: auto; padding-top: .5rem; }
.fm-wc-page .woocommerce-LostPassword { margin: .4rem 0 0; }
.fm-wc-page .woocommerce-LostPassword a { color: var(--fm-red); font-weight: 600; font-size: .9rem; }

@media (max-width: 767.98px) {
	.fm-wc-page #customer_login.col2-set { grid-template-columns: 1fr; gap: 1.2rem; }
	.fm-wc-page #customer_login .u-column1, .fm-wc-page #customer_login .u-column2 { padding: 1.4rem; }
	.fm-wc-page .woocommerce form.login .button { width: 100%; }
}

/* ==== Cart page ========================================================== */
body.woocommerce-cart .fm-wc-page > .woocommerce { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
body.woocommerce-cart .fm-wc-page > .woocommerce > .woocommerce-notices-wrapper, body.woocommerce-cart .fm-wc-page > .woocommerce > .cart-empty, body.woocommerce-cart .fm-wc-page > .woocommerce > .return-to-shop, body.woocommerce-cart .fm-wc-page > .woocommerce > .wc-empty-cart-message { grid-column: 1 / -1; }
body.woocommerce-cart .fm-wc-page > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; background: #fff; border: 1px solid var(--fm-line); border-radius: 20px; padding: .6rem 1.6rem 1.4rem; }
body.woocommerce-cart .cart-collaterals { grid-column: 2; width: auto; }
@media (min-width: 992px) { body.woocommerce-cart .cart-collaterals { position: sticky; top: 96px; } }

/* Cart table */
body.woocommerce-cart .fm-wc-page .woocommerce table.shop_table.cart { border: 0; border-radius: 0; margin: 0; overflow: visible; }
body.woocommerce-cart .fm-wc-page .woocommerce table.shop_table.cart th, body.woocommerce-cart .fm-wc-page .woocommerce table.shop_table.cart td { background: transparent; border: 0; border-bottom: 1px solid var(--fm-line); padding: 1.1rem .5rem; vertical-align: middle; }
body.woocommerce-cart .fm-wc-page .woocommerce table.shop_table.cart thead th { font-family: var(--fm-font); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--fm-muted); font-weight: 600; padding: 1rem .5rem; }
body.woocommerce-cart table.cart td.product-remove { width: 44px; }
body.woocommerce-cart table.cart a.remove { width: 34px; height: 34px; border-radius: 50%; background: var(--fm-soft); color: var(--fm-muted) !important; font-size: 1.3rem; line-height: 34px; display: inline-flex; align-items: center; justify-content: center; font-weight: 400; transition: all .2s; }
body.woocommerce-cart table.cart a.remove:hover { background: var(--fm-red); color: #fff !important; }
body.woocommerce-cart table.cart td.product-thumbnail { width: 110px; }
body.woocommerce-cart .fm-wc-page .woocommerce table.cart img { width: 92px !important; height: 92px; object-fit: contain; border: 1px solid var(--fm-line); border-radius: 14px; padding: 6px; background: #fff; }
body.woocommerce-cart table.cart td.product-name a { color: var(--fm-ink); font-weight: 600; font-size: .98rem; line-height: 1.4; }
body.woocommerce-cart table.cart td.product-name a:hover { color: var(--fm-red); }
body.woocommerce-cart table.cart td.product-price { color: var(--fm-muted); white-space: nowrap; }
body.woocommerce-cart table.cart td.product-subtotal { font-family: var(--fm-display); font-weight: 700; color: var(--fm-ink); font-size: 1.05rem; white-space: nowrap; text-align: right; }
body.woocommerce-cart table.cart th.product-subtotal { text-align: right; }

/* Quantity stepper (JS adds +/- buttons) */
body.woocommerce-cart .quantity { display: inline-flex; align-items: center; border: 1px solid #ddd8d2; border-radius: 50px; height: 46px; padding: 0 .3rem; background: #fff; }
body.woocommerce-cart .quantity .qty { border: 0 !important; width: 42px !important; height: 100% !important; padding: 0 !important; background: transparent; text-align: center; font-weight: 600; -moz-appearance: textfield; appearance: textfield; border-radius: 0 !important; }
body.woocommerce-cart .quantity .qty::-webkit-outer-spin-button, body.woocommerce-cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.woocommerce-cart .fm-qty-btn { width: 34px; height: 34px; }

/* Actions row: coupon + update */
body.woocommerce-cart table.cart td.actions { border-bottom: 0 !important; padding: 1.3rem 0 .2rem !important; }
body.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: .6rem; float: left; flex-wrap: wrap; }
body.woocommerce-cart table.cart td.actions .coupon .input-text { width: 220px; height: 46px; border: 1px dashed #cfc8c0; border-radius: 50px; padding: 0 1.1rem; background: var(--fm-soft); margin: 0; font-size: .92rem; }
body.woocommerce-cart table.cart td.actions .coupon .input-text:focus { border-style: solid; border-color: var(--fm-red); outline: 0; background: #fff; }
body.woocommerce-cart table.cart td.actions .button { height: 46px; border-radius: 50px !important; padding: 0 1.4rem !important; font-weight: 600; font-size: .9rem; }
body.woocommerce-cart table.cart td.actions .coupon .button { background: var(--fm-ink) !important; color: #fff !important; }
body.woocommerce-cart table.cart td.actions > .button[name="update_cart"] { float: right; background: transparent !important; color: var(--fm-ink) !important; border: 1px solid var(--fm-line) !important; }
body.woocommerce-cart table.cart td.actions > .button[name="update_cart"]:disabled { opacity: .45; }
body.woocommerce-cart table.cart td.actions > .button[name="update_cart"]:not(:disabled):hover { background: var(--fm-ink) !important; color: #fff !important; }
.fm-continue { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.1rem; font-weight: 600; color: var(--fm-ink); font-size: .92rem; }
.fm-continue:hover { color: var(--fm-red); }

/* Totals card */
body.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; background: #fff; border: 1px solid var(--fm-line); border-radius: 20px; padding: 1.6rem; }
body.woocommerce-cart .cart_totals > h2 { font-size: 1.35rem; margin: 0 0 .8rem; }
body.woocommerce-cart .fm-wc-page .woocommerce .cart_totals table.shop_table { border: 0; border-radius: 0; margin: 0; }
body.woocommerce-cart .fm-wc-page .woocommerce .cart_totals table.shop_table th, body.woocommerce-cart .fm-wc-page .woocommerce .cart_totals table.shop_table td { background: transparent; border: 0; border-bottom: 1px solid var(--fm-line); padding: .85rem 0; font-family: var(--fm-font); }
body.woocommerce-cart .cart_totals table.shop_table th { font-weight: 500; color: var(--fm-ink-2); width: 45%; }
body.woocommerce-cart .cart_totals table.shop_table td { text-align: right; font-weight: 600; color: var(--fm-ink); }
body.woocommerce-cart .cart_totals tr.order-total th, body.woocommerce-cart .cart_totals tr.order-total td { border-bottom: 0 !important; font-family: var(--fm-display) !important; font-size: 1.3rem; color: var(--fm-ink); font-weight: 700; padding-top: 1.1rem !important; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals td, body.woocommerce-cart .cart_totals .woocommerce-shipping-destination { font-size: .85rem; font-weight: 500; color: var(--fm-muted); }
body.woocommerce-cart .cart_totals #shipping_method { list-style: none; padding: 0; margin: 0; }
body.woocommerce-cart .wc-proceed-to-checkout { padding: 1.2rem 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; align-items: center; justify-content: center; gap: .5rem; height: 56px; margin: 0; padding: 0; border-radius: 50px; background: var(--fm-red) !important; color: #fff !important; font-weight: 700; font-size: 1.05rem; box-shadow: 0 8px 20px rgba(214,31,43,.25); }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--fm-red-dark) !important; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after { content: "\F138"; font-family: "bootstrap-icons"; font-weight: 400; }
.fm-cart-trust { list-style: none; padding: 1rem 0 0; margin: 1rem 0 0; border-top: 1px dashed var(--fm-line); display: grid; gap: .55rem; }
.fm-cart-trust li { display: flex; align-items: center; gap: .6rem; font-size: .86rem; color: var(--fm-ink-2); }
.fm-cart-trust i { color: var(--fm-red); font-size: 1.05rem; }

/* Mobile: each cart row becomes a card */
@media (max-width: 991.98px) {
	body.woocommerce-cart .fm-wc-page > .woocommerce { grid-template-columns: minmax(0, 1fr); }
	body.woocommerce-cart .woocommerce-cart-form, body.woocommerce-cart .cart-collaterals { grid-column: 1; }
}
@media (max-width: 767.98px) {
	body.woocommerce-cart .woocommerce-cart-form { padding: .4rem 1rem 1rem; }
	body.woocommerce-cart table.shop_table_responsive thead { display: none; }
	body.woocommerce-cart table.shop_table_responsive tr.cart_item { display: grid; grid-template-columns: 92px 1fr auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub"; column-gap: .9rem; row-gap: .3rem; padding: 1.1rem 0; border-bottom: 1px solid var(--fm-line); }
	body.woocommerce-cart table.shop_table_responsive tr.cart_item td { display: block; border: 0 !important; padding: 0 !important; text-align: left !important; }
	body.woocommerce-cart table.shop_table_responsive tr.cart_item td::before { display: none; }
	body.woocommerce-cart table.cart td.product-remove { grid-area: remove; width: auto; }
	body.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; width: auto; display: block !important; }
	body.woocommerce-cart .fm-wc-page .woocommerce table.cart img { width: 92px !important; height: 92px; }
	body.woocommerce-cart table.cart td.product-name { grid-area: name; }
	body.woocommerce-cart table.cart td.product-price { grid-area: price; font-size: .85rem; }
	body.woocommerce-cart table.cart td.product-quantity { grid-area: qty; }
	body.woocommerce-cart table.cart td.product-subtotal { grid-area: sub; align-self: center; text-align: right !important; }
	body.woocommerce-cart table.shop_table_responsive tr:not(.cart_item) td.actions { display: block; }
	body.woocommerce-cart table.cart td.actions .coupon { float: none; width: 100%; }
	body.woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1; width: auto; }
	body.woocommerce-cart table.cart td.actions > .button[name="update_cart"] { float: none; width: 100%; margin-top: .7rem; }
	body.woocommerce-cart .cart-collaterals .cart_totals { padding: 1.2rem; }
	body.woocommerce-cart .cart_totals table.shop_table_responsive tr { display: table-row; }
	body.woocommerce-cart .cart_totals table.shop_table_responsive td::before { display: none; }
}
/* Checkout grid: keep the order card intact when WooCommerce injects an error notice into the form */
.fm-wc-page form.checkout { grid-template-rows: auto auto 1fr; }
.fm-wc-page form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; margin-bottom: 1.5rem; }
.fm-wc-page form.checkout #customer_details { grid-row: 2 / 4; }
.fm-wc-page form.checkout #order_review_heading { grid-row: 2; }
.fm-wc-page form.checkout #order_review { grid-row: 3; }
@media (max-width: 991.98px) {
	.fm-wc-page form.checkout { grid-template-rows: none; }
	.fm-wc-page form.checkout #customer_details, .fm-wc-page form.checkout #order_review_heading, .fm-wc-page form.checkout #order_review, .fm-wc-page form.checkout > .woocommerce-NoticeGroup { grid-row: auto; }
}
