/* =====================================================================
   Global Fashion UK – storefront additions.
   Loaded after custom.css (the original design). Only adds what the
   live shop needs and fixes a few design behaviours.
   ===================================================================== */

body { font-family: "Raleway", system-ui, -apple-system, "Segoe UI", sans-serif; }
.gf-skip { position: absolute; left: 8px; top: 8px; z-index: 3000; background: #fff; padding: 8px 12px; border-radius: 8px; }
.gf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* ---------- Header: constant height (no jump when scrolling) ---------- */
.gf-navbar, .gf-header .gf-pill, .gf-header .gf-select, .gf-logo-word, .gf-logo-mark { transition: none !important; }
.gf-header.is-scrolled .gf-navbar { min-height: 136px; }
/* .gf-header.is-scrolled .gf-pill { min-height: inherit; padding-inline: inherit; } */
@media (max-width: 1199.98px) { .gf-header.is-scrolled .gf-navbar { min-height: 108px; } }
@media (max-width: 991.98px) {
    .gf-header.is-scrolled .gf-navbar { min-height: 82px; }
    .gf-mobile-actions-right { display: flex !important; position: absolute; left: 12px; }
}
@media (max-width: 575.98px) { .gf-header.is-scrolled .gf-navbar { min-height: 72px; } }
body { overflow-x: clip; }
.gf-actions-right form { margin: 0; }
.gf-user-logout { background: none; border: 0; width: 100%; text-align: left; padding: 10px 14px; color: inherit; font: inherit; display: flex; gap: 10px; align-items: center; }
.gf-user-logout:hover { color: var(--gf-pink); }
a.gf-icon-btn { text-decoration: none; color: inherit; display: inline-flex; align-items: center; justify-content: center; }
.gf-cart-count[hidden], .mobile-nav-item small[hidden] { display: none !important; }

.gf-announcement { background: var(--gf-ink); color: #fff; text-align: center; font-size: 14px; letter-spacing: .02em; padding: 8px 16px; }

/* ---------- Search suggestions ---------- */
.gf-search-suggestions a { display: inline-block; padding: 6px 14px; border-radius: 999px; background: #fff; color: var(--gf-ink); text-decoration: none; margin: 4px; font-size: 14px; }
.gf-search-results { background: #fff; border-radius: 18px; margin-top: 12px; padding: 8px; box-shadow: 0 12px 30px rgba(0,0,0,.08); max-height: 60vh; overflow: auto; }
.gf-search-results a { display: flex; gap: 12px; align-items: center; padding: 8px 10px; border-radius: 12px; color: var(--gf-ink); text-decoration: none; }
.gf-search-results a:hover, .gf-search-results a.is-active { background: var(--gf-bg); }
.gf-search-results img { width: 44px; height: 44px; object-fit: cover; border-radius: 10px; background: #f3f3f3; }
.gf-search-results .gf-sr-price { margin-left: auto; font-weight: 700; white-space: nowrap; }
.gf-search-results .gf-sr-head { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--gf-muted); padding: 8px 10px 2px; }

/* ---------- Basket drawer ---------- */
.gf-cart-drawer-body { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.gf-cart-drawer .gf-cart-body { flex: 1; overflow: auto; }
.gf-cart-thumb { overflow: hidden; text-decoration: none; }
.gf-cart-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gf-cart-info a { color: inherit; text-decoration: none; }
.gf-cart-empty { text-align: center; padding: 48px 16px; color: var(--gf-muted); }
.gf-cart-empty .bi { font-size: 42px; display: block; margin-bottom: 12px; }
.gf-cart-foot a.gf-checkout { display: flex; text-decoration: none; justify-content: center; }
.gf-cart-drawer.is-loading .gf-cart-body { opacity: .5; pointer-events: none; }

/* ---------- Home: categories – 3 per row on tablet & mobile, last row centred ---------- */
@media (max-width: 991.98px) {
    .categories .cat-slider { overflow: visible; }
    .categories .cat-track { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 14px; transform: none !important; }
    .categories .cat-card { flex: 0 0 calc((100% - 28px) / 3); max-width: calc((100% - 28px) / 3); min-width: 0; }
    .categories .cat-img { border-radius: 20px; }
    .categories .cat-card h3 { font-size: 15px; line-height: 1.3; margin: 10px 0 14px; }
    .categories .cat-prev, .categories .cat-next { display: none !important; }
}
@media (max-width: 575.98px) {
    .categories .cat-track { gap: 10px; }
    .categories .cat-card { flex-basis: calc((100% - 20px) / 3); max-width: calc((100% - 20px) / 3); }
    .categories .cat-card h3 { font-size: 12px; }
}

/* ---------- Product cards ---------- */
.gf-noimg { display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 160px; background: #fff; color: var(--gf-muted); font-size: 13px; }
.gf-noimg img { width: 62% !important; max-width: 220px; height: auto !important; object-fit: contain !important; opacity: .28; filter: grayscale(1); }
.gf-noimg-lg { min-height: 420px; border-radius: var(--gf-radius); }
.gf-card-brand { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--gf-muted); margin-bottom: 4px; }
.gf-product-card { position: relative; height: 100%; display: flex; flex-direction: column; }
.gf-product-card .gf-product-image { position: relative; }
.gf-product-card .shop-badge { position: absolute; top: 14px; left: 14px; z-index: 2; }
.gf-product-info { display: flex; flex-direction: column; flex: 1; }
.gf-product-info h2 a { color: inherit; text-decoration: none; }
.gf-product-info form, .shop-info form { margin-top: auto; }
.gf-product-info strong del, .shop-price del { color: var(--gf-muted); font-weight: 400; font-size: .85em; margin-left: 6px; }
a.gf-add-cart, a.shop-cart { display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-decoration: none; }
.gf-add-cart[disabled], .shop-cart[disabled] { opacity: .5; cursor: not-allowed; }
.gf-badge-sale { background: var(--gf-pink) !important; color: #fff !important; }
.gf-wish-form { position: absolute; top: 0; right: 0; z-index: 3; margin: 0; }
.gf-wish-form .gf-product-wishlist { border: 0; }
.shop-info h3 a { color: inherit; text-decoration: none; }
.shop-image .gf-noimg { height: 100%; }
@media (max-width: 575.98px) {
    .gf-product-info h2 { font-size: 14px; }
    .gf-add-cart { font-size: 13px; padding-inline: 10px; }
}

/* ---------- Listing ---------- */
.gf-filter-list a.active { color: var(--gf-pink); font-weight: 700; }
.gf-check { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; cursor: pointer; font-size: 15px; }
.gf-check input { margin-top: 4px; accent-color: var(--gf-purple); }
.gf-brand-list { max-height: 260px; overflow: auto; padding-right: 6px; }
.gf-filter-apply { border: 0; background: var(--gf-ink); color: #fff; border-radius: 999px; padding: 10px 22px; font-weight: 600; }
.gf-filter-clear { align-self: center; color: var(--gf-pink); }
.gf-category-intro { max-width: 900px; margin-bottom: 20px; color: #444; }
.gf-empty-state { text-align: center; padding: 64px 16px; background: #fff; border-radius: var(--gf-radius); }
.gf-empty-state .bi { font-size: 46px; color: var(--gf-purple); }
.gf-empty-state h2 { font-size: 26px; margin: 12px 0; }
.gf-pagination .pagination { justify-content: center; flex-wrap: wrap; }
.gf-pagination .page-link { color: var(--gf-ink); border-radius: 999px !important; margin: 0 3px; border: 0; }
.gf-pagination .page-item.active .page-link { background: var(--gf-purple); color: #fff; }

/* ---------- Product page ---------- */
.gf-product-gallery .gf-product-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gf-product-short { color: #444; }
.gf-variant-grid { max-height: 320px; overflow: auto; padding: 4px; }
.gf-variant-grid .gf-variant { min-width: 0; height: auto; padding: 6px 12px; border-radius: 14px; font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.gf-variant-grid .gf-variant img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.gf-variant.is-unavailable { opacity: .45; text-decoration: line-through; }
.gf-variant[hidden] { display: none !important; }
.gf-product-price del { font-size: .6em; color: var(--gf-muted); margin-left: 10px; font-weight: 400; }
.gf-stock { font-weight: 600; color: #198754; margin-bottom: 8px; }
.gf-quantity input.gf-quantity-value { width: 56px; border: 0; background: transparent; text-align: center; font-size: 20px; font-weight: 700; -moz-appearance: textfield; }
.gf-quantity input::-webkit-outer-spin-button, .gf-quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gf-text-button { background: none; border: 0; padding: 0; color: var(--gf-ink); font-weight: 600; }
.gf-text-button .bi-heart-fill { color: var(--gf-pink); }
.gf-delivery-box { margin-top: 22px; background: #fff; border-radius: 20px; padding: 18px 20px; }
.gf-delivery-title { font-weight: 700; margin-bottom: 6px; }
.gf-countdown { color: var(--gf-purple); font-weight: 600; font-size: 14px; margin-bottom: 8px; }
.gf-delivery-box ul { list-style: none; padding: 0; margin: 0 0 8px; }
.gf-delivery-box li { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 8px; padding: 6px 0; border-top: 1px solid #f0f0f0; font-size: 14px; }
.gf-facts th { width: 40%; font-weight: 600; }
.gf-review-form { background: #fff; padding: 24px; border-radius: var(--gf-radius); }

/* ---------- Generic boxes, buttons, forms ---------- */
.gf-box { background: #fff; border-radius: var(--gf-radius); padding: 24px; box-shadow: 0 8px 30px rgba(17,17,17,.04); }
.gf-btn-primary, .gf-btn-outline { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; padding: 12px 26px; font-weight: 700; text-decoration: none; border: 2px solid var(--gf-purple); }
.gf-btn-primary { background: var(--gf-purple); color: #fff; }
.gf-btn-primary:hover { background: #5b2aa6; color: #fff; }
.gf-btn-outline { background: transparent; color: var(--gf-purple); }
.gf-stack { display: flex; flex-direction: column; gap: 10px; }
.gf-stack > label { font-weight: 600; margin-bottom: -4px; }
.gf-field-error { color: #b42318; font-size: 13px; margin-top: 4px; }
[aria-invalid="true"] { border-color: #b42318 !important; }
.gf-flash-wrap { padding-top: 16px; }
.gf-flash { border-radius: 16px; }
.gf-auth-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px; padding: 40px 0 64px; }
.gf-auth-card { background: #fff; border-radius: var(--gf-radius); padding: 32px; margin: 32px 0 64px; }
.gf-auth-grid .gf-auth-card { margin: 0; }
.gf-auth-card .gf-page-title { font-size: 40px; margin: 0 0 20px; }
.gf-auth-side { background: linear-gradient(135deg, #f6eefc, #fff); }
@media (max-width: 767.98px) { .gf-auth-grid { grid-template-columns: 1fr; } .gf-auth-card { padding: 22px; } }

/* ---------- Basket / checkout ---------- */
.gfc-product-quantity { margin: 0; }
.gfc-product-image .gf-noimg { min-height: 80px; }
.gfc-product-details h3 a { color: inherit; text-decoration: none; }
.gfc-shipping-bar span { display: block; height: 100%; background: var(--gf-pink); border-radius: inherit; }
.gfo-delivery-option input:checked + label { border-color: var(--gf-purple); }
.gfo-payment-left small { font-size: 13px; }
.gfo-order-image .gf-noimg { min-height: 60px; font-size: 12px; }
.gfo-place-order[disabled] { opacity: .5; cursor: not-allowed; }
.gfo-place-order.is-busy { opacity: .7; pointer-events: none; }
#shippingOptions.is-loading, #checkoutTotals.is-loading { opacity: .5; }
.gfo-security { font-size: 13px; color: var(--gf-muted); margin-top: 12px; text-align: center; }

/* ---------- Bank transfer box ---------- */
.gf-bank-box { background: #fff8e6; border: 2px solid #f3c969; border-radius: var(--gf-radius); padding: 24px; margin: 24px 0; text-align: left; }
.gf-bank-box h2 { font-size: 22px; font-weight: 800; margin-bottom: 10px; }
.gf-bank-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 16px 0; }
.gf-bank-list > div { background: #fff; border-radius: 14px; padding: 10px 14px; }
.gf-bank-list dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--gf-muted); font-weight: 600; }
.gf-bank-list dd { margin: 2px 0 0; font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; word-break: break-word; }
.gf-copy { border: 0; background: transparent; color: var(--gf-purple); padding: 0 4px; }

/* ---------- Orders ---------- */
.gf-status { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #eef0f3; color: #333; }
.gf-status-on_hold, .gf-status-pending, .gf-pay-pending { background: #fff3cd; color: #7a5b00; }
.gf-status-processing { background: #e7f0ff; color: #1d4ed8; }
.gf-status-dispatched { background: #efe7fb; color: var(--gf-purple); }
.gf-status-completed, .gf-pay-paid { background: #dcfce7; color: #166534; }
.gf-status-cancelled, .gf-status-failed, .gf-pay-failed, .gf-pay-cancelled { background: #fde2e1; color: #9f1239; }
.gf-status-refunded, .gf-pay-refunded, .gf-pay-partially_refunded { background: #f1f5f9; color: #334155; }
.gf-order-totals > div { display: flex; justify-content: space-between; padding: 6px 0; }
.gf-order-totals .gfo-confirm-total { border-top: 1px solid #eee; margin-top: 6px; padding-top: 10px; font-size: 18px; }
.gf-timeline { list-style: none; padding: 0; margin: 0; border-left: 2px solid #eee; }
.gf-timeline li { padding: 0 0 14px 16px; position: relative; }
.gf-timeline li::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--gf-purple); }
.gf-timeline time { display: block; font-size: 12px; color: var(--gf-muted); }
.gfo-confirm-product-left small { display: block; color: var(--gf-muted); }

/* ---------- My account ---------- */
.gfa-layout { display: grid; grid-template-columns: 260px 1fr; gap: 28px; align-items: start; }
.gfa-tabs { display: flex; flex-direction: column; gap: 4px; background: #fff; border-radius: var(--gf-radius); padding: 14px; }
.gfa-tabs .gfa-tab { text-decoration: none; color: var(--gf-ink); border: 0; background: transparent; }
.gfa-tabs form { margin: 0; }
.gfa-tab-btn { width: 100%; text-align: left; }
.gfa-content { background: #fff; border-radius: var(--gf-radius); padding: 28px; min-width: 0; }
.gfa-address-card { border: 1px solid #eee; border-radius: 18px; padding: 16px; height: 100%; }
.gfa-address-head { display: flex; justify-content: space-between; margin-bottom: 8px; }
.gfa-view-order { color: var(--gf-purple); font-weight: 700; text-decoration: none; }
@media (max-width: 991.98px) {
    .gfa-layout { grid-template-columns: 1fr; }
    .gfa-tabs { flex-direction: row; overflow-x: auto; white-space: nowrap; }
    .gfa-tabs .gfa-tab { width: auto; min-height: 40px; }
    .gfa-content { padding: 18px; }
}

/* ---------- CMS / FAQ / contact ---------- */
.gf-cms-content table { width: 100%; margin: 16px 0; border-collapse: collapse; }
.gf-cms-content th, .gf-cms-content td { border: 1px solid #e5e5e5; padding: 8px 10px; vertical-align: top; }
.gf-cms-content th { background: #faf7ff; }
.gf-faq-section { font-size: 24px; font-weight: 800; margin: 32px 0 14px; }
.gf-faq-accordion .accordion-item { border: 0; margin-bottom: 10px; border-radius: 16px !important; overflow: hidden; }
.gf-faq-accordion .accordion-button { font-weight: 700; font-size: 17px; }
.gf-faq-accordion .accordion-button:not(.collapsed) { background: #f6eefc; color: var(--gf-purple); box-shadow: none; }
.gf-contact-list li { display: flex; gap: 10px; padding: 6px 0; }
.gf-contact-list .bi { color: var(--gf-pink); }

/* ---------- Footer ---------- */
.gf-newsletter { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12); }
.gf-newsletter-form { display: flex; flex-wrap: wrap; gap: 8px; max-width: 520px; flex: 1; }
.gf-newsletter-form input[type=email] { flex: 1; min-width: 200px; border-radius: 999px; border: 0; padding: 12px 18px; }
.gf-newsletter-form button { border: 0; border-radius: 999px; padding: 12px 22px; background: var(--gf-pink); color: #fff; font-weight: 700; }
.gf-newsletter-consent { width: 100%; font-size: 12px; color: rgba(255,255,255,.7); display: flex; gap: 6px; align-items: flex-start; }
.gf-newsletter-consent a { color: #fff; }
.gf-pay-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.gf-pay-badges span { font-size: 12px; background: rgba(255,255,255,.12); color: #fff; border-radius: 8px; padding: 4px 10px; }
a.stat-badge { text-decoration: none; color: #fff; }
.legal-micro-text p { margin-bottom: 6px; }

/* ---------- Cookie notice & toast ---------- */
.gf-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 2000; max-width: 720px; margin: 0 auto; background: #111; color: #fff; border-radius: 18px; padding: 14px 18px; display: flex; gap: 16px; align-items: center; box-shadow: 0 12px 30px rgba(0,0,0,.25); font-size: 14px; }
.gf-cookie a { color: #fff; }
.gf-cookie-ok { border: 0; border-radius: 999px; background: var(--gf-pink); color: #fff; font-weight: 700; padding: 8px 22px; }
@media (max-width: 991.98px) { .gf-cookie { bottom: 80px; } }
.gf-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 2100; background: #111; color: #fff; padding: 12px 20px; border-radius: 999px; box-shadow: 0 10px 30px rgba(0,0,0,.25); font-weight: 600; max-width: calc(100% - 32px); }
.gf-toast.is-error { background: #b42318; }
@media (max-width: 991.98px) { .gf-toast { bottom: 84px; } }

.gf-coming-soon h2 span { color: var(--gf-pink); }

@media print {
    .gf-header, .site-footer, .mobile-bottom-nav, .gf-cookie, .gf-announcement { display: none !important; }
}

/* ---------- Header at laptop widths (1200–1499 px): keep the centred logo clear of the buttons ---------- */
.gf-catalog-btn, .gf-actions-left .gf-pill { white-space: nowrap; }
@media (min-width: 1200px) and (max-width: 1499.98px) {
    .gf-logo img { width: clamp(230px, 21vw, 300px) !important; }
    .gf-actions-left .gf-pill { min-height: 50px; padding-inline: 20px; font-size: 15px; }
    .gf-actions-left .gf-catalog-btn { font-size: 17px !important; }
    .gf-header.is-scrolled .gf-actions-left .gf-pill { min-height: 50px; padding-inline: 20px; }
}
/* Tablet landscape / small laptop (992–1199 px): the design shows only the peacock mark; keep side padding. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .gf-navbar.gf-padd-8 { padding-left: 16px !important; padding-right: 16px !important; }
    .gf-actions-left .gf-pill { min-height: 48px; font-size: 14px; }
    .gf-actions-left .gf-catalog-btn { font-size: 16px !important; }
}

/* ---------- Sign in / create account (design: login.html) ---------- */
.gf-auth { min-height: 780px; }
.gf-form { padding: 40px 60px; overflow-y: auto; }
.gf-btn:hover { background: #5b2aa6; color: #fff; }
.gf-btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.gf-input-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gf-auth-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 4px 0 22px; }
.gf-auth-row .gf-forgot { margin: 0; }
.gf-auth-check { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #666; margin: 6px 0 12px; line-height: 1.4; }
.gf-auth-check input { margin-top: 2px; accent-color: var(--gf-purple); }
.gf-auth-check a, .gf-auth-note a { color: var(--gf-purple); }
.gf-auth-note { text-align: center; font-size: 14px; margin: 0; }
.gf-auth-note a { text-decoration: none; font-weight: 600; }
.gf-auth-error { background: #fdecec; color: #9f1239; border-radius: 12px; padding: 10px 14px; font-size: 13.5px; margin-bottom: 16px; }
.gf-auth-success { background: #e8f8ee; color: #166534; border-radius: 12px; padding: 10px 14px; font-size: 13.5px; margin-bottom: 16px; }
.gf-divider { text-align: center; color: #aaa; font-size: 12px; margin: 18px 0 12px; }
.gf-auth-single { max-width: 520px; margin: 30px auto; background: #fff; border-radius: 34px; padding: 48px 44px; box-shadow: 0 20px 60px rgba(35,35,35,.10); }
.gf-auth-single .gf-btn { margin: 6px 0 18px; }
@media (max-width: 767px) {
    .gf-auth { min-height: auto; }
    .gf-form { min-height: 0; padding: 36px 22px; overflow: visible; }
    .gf-input-row { grid-template-columns: 1fr; gap: 0; }
    .gf-auth-single { padding: 34px 22px; border-radius: 25px; margin: 10px auto; }
    .gf-login-register { padding: 30px 0; }
    .gf-page { min-height: 0; }
}

/* ---------- My account (design: my-account.html) – links instead of JS tabs ---------- */
a.gfa-tab, a.gfa-logout, a.gfa-view-order, a.gfa-text-button, a.gfa-order-back { text-decoration: none; }
a.gfa-tab.active, a.gfa-tab:hover { color: #fff; }
.gfa-account-nav form { margin: 0; }
button.gfa-logout { font: inherit; text-align: left; cursor: pointer; }
.gfa-quick-links a { display: flex; flex-direction: column; align-items: flex-start; padding: 20px; border-radius: 20px; background: #fff; text-align: left; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.gfa-quick-links a:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,0,0,.06); }
.gfa-quick-links strong { font-size: 14px; }
.gfa-quick-links span { font-size: 12px; }
.gfa-status.awaiting { background: #fff3cd; color: #7a5b00; }
.gfa-status.cancelled { background: #fde2e1; color: #9f1239; }
.gfa-notice { display: flex; gap: 10px; align-items: center; background: #fff8e6; border: 1px solid #f3c969; border-radius: 16px; padding: 12px 16px; margin-bottom: 16px; font-size: 14px; }
.gfa-notice-ok { background: #e8f8ee; border-color: #9fdcb5; }
.gfa-address-card [hidden] { display: none !important; }
.gfa-address-card .gfa-details-form .gfa-save { margin-top: 10px; }
.gfa-order-row:hover { box-shadow: 0 8px 24px rgba(0,0,0,.05); }
.gfa-order-actions form { margin: 0; }
.gfa-order-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.gfa-order-product-image .gf-noimg { min-height: 70px; }

/* ---- Information pages (contact / about / legal) ---- */
.gf-map.gf-map-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gf-contact-select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2392929b' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 22px center; padding-right: 48px !important; }
.gf-contact-consent { display: flex; align-items: flex-start; gap: 10px; margin: 4px 4px 18px; font-size: 14px; line-height: 1.5; color: #666; cursor: pointer; text-align: left; }
.gf-contact-consent input { width: 17px; height: 17px; margin-top: 2px; flex: 0 0 17px; accent-color: var(--gf-pink, #ec268f); }
.gf-contact-consent a, .gf-cms-content a, .gf-section-content a, .gf-about-content a, .gf-contact-subtitle a { color: #ec268f; text-decoration: underline; text-underline-offset: 2px; }
.gf-cms-content ul, .gf-cms-content ol { margin: 0 0 30px; padding-left: 20px; }
.gf-cms-content p + ul, .gf-cms-content p + ol { margin-top: -20px; }
.gf-cms-content li { color: #666; font-size: 15px; line-height: 1.8; margin-bottom: 4px; }
.gf-cms-content li strong, .gf-cms-content p strong { color: #333; }
.gf-cms-content h3 { font-size: 18px; font-weight: 600; color: #333; margin: 0 0 10px; }
.gf-contact-notes { max-width: none; padding: 40px 50px; }
.gf-contact-notes p { margin-bottom: 18px; }
.gf-contact-notes ul { margin: 0 0 18px; }
.gf-contact-notes p + ul { margin-top: -8px; }
.gf-about-card-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 600; color: #ec268f; text-decoration: none; }
.gf-about-card-link:hover { color: #7137c7; }
.gf-trade-form { height: auto; }
.gf-trade-form h2 { font-size: 30px; }
.gf-cms-content-wide { max-width: none; }
.gf-faq .accordion-item { border: 0; border-bottom: 1px solid #eee; background: transparent; }
@media (max-width: 767.98px) {
    .gf-contact-notes { padding: 28px 22px; }
    .gf-contact-consent { font-size: 13px; }
}
/* search panel: keep the form inside narrow phones */
.gf-search-form { min-width: 0; max-width: 100%; }
.gf-search-form input { min-width: 0; }
.gf-search-form button { flex: 0 0 auto; }
@media (max-width: 575.98px) {
    .gf-search-form { height: 54px; padding-left: 14px; }
    .gf-search-form input { padding: 0 10px; font-size: 15px; }
    .gf-search-form button { padding: 0 16px; }
}
button.gfa-logout { font-size: 14px; }
/* Bootstrap g-5 rows are wider than the phone container padding: use the g-4 gutter there */
@media (max-width: 767.98px) {
    .row.g-5, .row.gx-5 { --bs-gutter-x: 1.5rem; }
}
.gf-empty-card { max-width: 620px; margin: 10px auto 60px; background: #fff; border-radius: 30px; padding: 50px 30px; text-align: center; }
.gf-empty-card > i { font-size: 40px; color: #ec268f; }
.gf-empty-card h2 { font-size: 24px; font-weight: 700; margin: 14px 0 8px; }
.gf-empty-card p { color: #666; margin-bottom: 22px; }
.gf-empty-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 28px; border-radius: 999px; background: #ec268f; color: #fff; font-weight: 600; text-decoration: none; }
.gf-empty-btn:hover { background: #7137c7; color: #fff; }

/* =====================================================================
   1.2 DESIGN POLISH (production pass)
   ===================================================================== */

/* ---- Layering: the phone bottom bar sits under menus, drawers and dialogs ---- */
.mobile-bottom-nav { z-index: 1020 !important; }

/* ---- Header on small phones: keep the logo clear of the icons ---- */
@media (max-width: 420px) {
    .gf-logo, .gf-logo img { width: min(220px, calc(100vw - 140px)) !important; }
    .gf-mobile-actions { right: 8px !important; }
    .gf-mobile-actions-right { left: 8px !important; }
}

/* ---- Breadcrumbs wrap as a line of text instead of narrow columns ---- */
.gf-breadcrumb { flex-wrap: wrap; row-gap: 4px; column-gap: 10px; line-height: 1.4; }
.gf-breadcrumb a, .gf-breadcrumb .bi-chevron-right { white-space: nowrap; flex: 0 0 auto; }
.gf-breadcrumb > span { flex: 0 1 auto; min-width: 0; }
.gf-breadcrumb a:hover { color: var(--gf-purple, #7137c7); }

/* ---- Product cards (grids and sliders) ---- */
.gf-product-image, .shop-image {
    height: auto !important; aspect-ratio: 374 / 552; border-radius: 30px; background: #fff;
    isolation: isolate;
}
.gf-product-image img, .shop-image img { width: 100%; height: 100%; object-fit: contain; }
.gf-product-image .gf-noimg, .shop-image .gf-noimg { position: absolute; inset: 0; }
.gf-product-card .shop-badge { top: 16px; left: 16px; padding: 7px 16px; font-size: 13px; }
.gf-product-info { padding: 16px 6px 4px; }
.gf-product-info h2 { min-height: 42px; font-size: 16px; }
.gf-product-info strong { margin-bottom: 14px; font-size: 17px; }
.gf-add-cart.gf-card-btn {
    width: 100%; height: 48px; padding: 0 18px; gap: 8px; font-size: 15px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;
}
.gf-add-cart.gf-card-btn i { margin: 0; }
.shop-cart { width: 100%; height: 48px; padding: 0 18px; white-space: nowrap; }
.gf-product-wishlist { color: #ec268f; box-shadow: 0 4px 14px rgba(0,0,0,.08); }
@media (hover: none) {
    .gf-product-wishlist { opacity: 1 !important; transform: none !important; }
}
@media (max-width: 767.98px) {
    .gf-product-image, .shop-image { border-radius: 20px; }
    .gf-product-card .shop-badge, .shop-badge { top: 10px; left: 10px; padding: 5px 11px; font-size: 11px; }
    .gf-product-info { padding: 12px 2px 2px; }
    .gf-product-info h2 { font-size: 13.5px; min-height: 36px; line-height: 1.35; letter-spacing: .2px; }
    .gf-product-info strong { font-size: 15px; margin-bottom: 10px; }
    .gf-add-cart.gf-card-btn, .shop-cart { height: 40px; font-size: 12.5px; padding: 0 8px; gap: 6px; }
    .gf-product-wishlist { width: 34px; height: 34px; top: 8px; right: 8px; font-size: 14px; }
    .gf-card-brand { font-size: 10px; }
}

/* ---- Empty states ---- */
.gf-empty-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 8px; }
.gf-empty-btn i { font-size: 16px; color: inherit; }
.gf-empty-state .gf-empty-btn .bi { font-size: 16px; color: inherit; }
.gf-empty-btn-outline { background: #fff; color: #7137c7; border: 2px solid #7137c7; }
.gf-empty-btn-outline:hover { background: #7137c7; color: #fff; }
.gf-empty-state p { color: #666; max-width: 420px; margin: 0 auto 20px; }

/* ---- Basket drawer ---- */
.gf-cart-drawer { height: 100dvh; }
.gf-cart-head h3 span { font: 400 13px Raleway, sans-serif; color: #888; }
.gf-cart-item { grid-template-columns: 70px 1fr 28px; gap: 14px; }
.gf-cart-thumb { width: 70px; height: 84px; overflow: hidden; background: #f7f5fa !important; }
.gf-cart-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gf-cart-info strong { font-size: 14px; }
.gf-cart-info strong a { color: #111; text-decoration: none; }
.gf-cart-info > span { font-size: 12px; }
.gf-cart-line b { font-size: 15px; }
.gf-qty button { width: 32px; height: 32px; font-size: 16px; }
.gf-qty span { width: 28px; font-size: 13px; }
.gf-freeship { background: #f7f3fb; border-radius: 14px; padding: 12px 14px; margin-bottom: 14px; }
.gf-freeship-text { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; color: #333; }
.gf-freeship-text i { color: #7137c7; font-size: 16px; line-height: 1.2; }
.gf-freeship-bar { height: 6px; border-radius: 99px; background: #e6dcf3; margin-top: 10px; overflow: hidden; }
.gf-freeship-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #7137c7, #ec268f); transition: width .4s ease; }
.gf-freeship.is-done { background: #ecf8f0; }
.gf-freeship.is-done i { color: #1e8a4c; }
.gf-freeship.is-done .gf-freeship-bar { background: #cfeedd; }
.gf-freeship.is-done .gf-freeship-bar span { background: #1e8a4c; }
.gf-cart-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 14px; margin-bottom: 6px; }
.gf-cart-row-total { font-size: 16px; }
.gf-cart-row-total strong { font-size: 18px; }
.gf-cart-note { margin: 0 0 4px; font-size: 12px; color: #888; }
.gf-cart-foot a.gf-checkout, .gf-checkout { display: flex; align-items: center; justify-content: center; gap: 10px; height: 54px; font-size: 16px; line-height: 1; }
.gf-checkout:hover { background: #7137c7; color: #fff; }
.gf-view-cart { font-size: 13px; text-decoration: underline; text-underline-offset: 3px; padding: 4px; }
.gf-cart-foot { padding-bottom: max(22px, env(safe-area-inset-bottom)); }
.gf-cart-empty { padding: 40px 10px; text-align: center; }
.gf-cart-empty > i { font-size: 44px; color: #7137c7; }
.gf-cart-empty p { color: #666; margin: 10px 0 0; }

/* ---- Footer (phone accordion) ---- */
.mobile-footer-accordion .accordion-item { background: rgba(18, 12, 28, .55) !important; border-color: rgba(255,255,255,.12) !important; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.mobile-footer-accordion .accordion-button { color: #fff !important; }
.mobile-footer-accordion .accordion-button:not(.collapsed) { color: #fff !important; background: rgba(255,255,255,.08) !important; }
.mobile-footer-accordion .accordion-button:focus { box-shadow: 0 0 0 2px rgba(236,38,143,.5) inset; }
.mobile-footer-accordion .accordion-body { color: rgba(255,255,255,.85); }
.mobile-footer-accordion .footer-links a { color: rgba(255,255,255,.85); }
.gf-foot-row { margin-bottom: 16px; }
.gf-foot-row:last-child { margin-bottom: 4px; }
.gf-foot-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 4px; }
.gf-foot-value { display: block; color: #fff !important; font-size: 15px; text-decoration: none; word-break: break-word; }
a.gf-foot-value:hover { color: #ff7ac0 !important; }
.gf-foot-wa { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; padding: 8px 16px; border-radius: 999px; background: #25a244; color: #fff !important; font-size: 13px; font-weight: 700; text-decoration: none; }
.gf-foot-wa:hover { background: #1e8a39; }

/* ---- Catalogue filters ---- */
.gf-price-filter .form-control { height: 44px; border: 1px solid #ddd; border-radius: 12px; padding: 0 12px; font-size: 14px; background: #fff; }
.gf-price-filter .form-control:focus, .gf-filters input:focus-visible { border-color: #7137c7; box-shadow: 0 0 0 3px rgba(113,55,199,.15); outline: 0; }
.gf-price-filter span { color: #999; }
.gf-check { align-items: center; gap: 10px; padding: 4px 0; }
.gf-check input { width: 18px; height: 18px; margin: 0; flex: 0 0 18px; }
.gf-filter-apply { height: 46px; padding: 0 26px; transition: background .2s ease; }
.gf-filter-apply:hover { background: #7137c7; }
.gf-filter-clear { display: inline-flex; align-items: center; height: 46px; padding: 0 18px; border: 2px solid #ec268f; border-radius: 999px; font-weight: 600; text-decoration: none; }
.gf-filter-clear:hover { background: #ec268f; color: #fff; }
.gf-filter-list a.active { color: #7137c7; font-weight: 700; }

/* ---- Readable type floor (the design used 8–11px in account, checkout and wishlist) ---- */
.gfc-products-header div { font-size: 12px; }
.gfc-secure, .gfc-product-details p { font-size: 12.5px; }
.gfo-delivery-description { font-size: 13px; }
.gfo-payment-icons span { font-size: 10px; }
.gfo-order-quantity { width: 22px; height: 22px; font-size: 11px; }
.gfo-order-info p { font-size: 12.5px; }
.gfo-coupon-form button { font-size: 13px; }
.gfo-security { font-size: 12.5px; }
.gfo-terms { font-size: 13px; line-height: 1.5; }
.gfo-confirm-detail small { font-size: 11px; }
.gfo-confirm-detail strong { font-size: 14px; }
.gfo-confirm-summary-head { font-size: 12px; }
.gfo-confirm-product-image span { font-size: 11px; }
.gfo-confirm-product-left small { font-size: 12px; }
.gfo-confirm-product-left strong { font-size: 13.5px; }
.gfo-confirm-delivery p { font-size: 13px; }
.gfo-confirm-support { font-size: 13px; }
.gfo-confirm-number { font-size: 12px; }
.gfw-badge { font-size: 11px; }
.gfw-category { font-size: 11px; }
.gfw-price del { font-size: 12px; }
.gfw-cart { font-size: 13px; }
.gfw-cart i { font-size: 14px; }
.gfa-tab, .gfa-logout { font-size: 14px; }
.gfa-profile span { font-size: 12px; }
.gfa-panel-heading > span { font-size: 11px; }
.gfa-stat span { font-size: 12.5px; }
.gfa-card-heading span { font-size: 11px; }
.gfa-text-button { font-size: 13px; }
.gfa-order-row span:not(.gfa-status) { font-size: 12.5px; }
.gfa-status { font-size: 12px; padding: 6px 12px; }
.gfa-quick-links span { font-size: 12.5px; }
.gfa-order-info small { font-size: 11px; }
.gfa-order-info strong { font-size: 14px; }
.gfa-view-order { font-size: 13px; }
.gfa-edit { font-size: 13px; padding: 6px 10px; }
.gfa-address-body p { font-size: 14px; line-height: 1.6; }
.gfa-address-body span { font-size: 12.5px; }
.gfa-default { font-size: 11px; }
.gfa-secure-note { font-size: 12px; }
.gfa-field label { font-size: 13px; }
.gfa-field input, .gfa-field select { font-size: 15px; }
.gfa-password-heading p { font-size: 13px; }
.gfa-save { font-size: 15px; }
.gf-card-brand { font-size: 11px; letter-spacing: .08em; }
.gf-auth-check input, .gf-remember input, .gf-form input[type=checkbox] { width: 18px; height: 18px; flex: 0 0 18px; accent-color: #7137c7; }

/* Phones: 16px form text stops iOS from zooming in when a field is tapped */
@media (max-width: 767.98px) {
    input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea { font-size: 16px !important; }
}

/* ---- My account on phones and tablets: a labelled tab strip instead of unlabeled icons ---- */
@media (max-width: 991px) {
    .gfa-account-sidebar { padding: 8px; border-radius: 18px; }
    .gfa-account-nav { display: flex !important; gap: 6px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
    .gfa-account-nav::-webkit-scrollbar { display: none; }
    .gfa-account-nav > a, .gfa-account-nav > form { flex: 0 0 auto; scroll-snap-align: start; }
    .gfa-tab, .gfa-logout { min-height: 44px; padding: 0 14px !important; gap: 8px; justify-content: flex-start; white-space: nowrap; font-size: 14px; }
    .gfa-tab span, .gfa-logout span { display: inline !important; }
    .gfa-order-info { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
}

/* ---- Links: brand colour instead of Bootstrap blue ---- */
:root { --bs-link-color: #7137c7; --bs-link-color-rgb: 113, 55, 199; --bs-link-hover-color: #ec268f; --bs-link-hover-color-rgb: 236, 38, 143; }

/* ---- Login / register ---- */
.gf-btn { font-size: 15px; letter-spacing: .06em; }
.gf-auth-row { flex-wrap: wrap; gap: 8px 16px; }
.gf-auth-row label { white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.gf-input-hint { margin: -6px 4px 12px; font-size: 12.5px; color: #777; text-align: left; }
.gf-auth .gf-switch-link, .gf-auth button.gf-link { padding: 6px 4px; }
.gf-mobile-switch { font-size: 14px; }
.gf-mobile-switch button { padding: 10px 6px; font-size: 14px; font-weight: 700; }
.gfa-order-top small, .gfa-order-info small { font-size: 11px; letter-spacing: .08em; }
.gfa-order-top strong { font-size: 15px; }

/* ---- Bootstrap components in brand colours ---- */
.form-control:focus, .form-select:focus { border-color: #b493e6; box-shadow: 0 0 0 .2rem rgba(113, 55, 199, .15); }
.form-check-input:checked { background-color: #7137c7; border-color: #7137c7; }
.form-check-input:focus { border-color: #b493e6; box-shadow: 0 0 0 .2rem rgba(113, 55, 199, .15); }
.pagination { --bs-pagination-color: #333; --bs-pagination-hover-color: #ec268f; --bs-pagination-hover-bg: #fff; --bs-pagination-active-bg: #7137c7; --bs-pagination-active-border-color: #7137c7; --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(113, 55, 199, .2); --bs-pagination-border-color: transparent; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pagination .page-link { border-radius: 999px !important; min-width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-weight: 600; background: #fff; }
.pagination .page-item.disabled .page-link { background: transparent; }
nav[role=navigation] p.small.text-muted { text-align: center; }
.gf-flash { border-radius: 16px; border: 0; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.alert-success.gf-flash { background: #ecf8f0; color: #17603a; }
.alert-danger.gf-flash { background: #fdeef3; color: #9b1846; }
.alert-warning { border-radius: 14px; }
::selection { background: rgba(236, 38, 143, .18); }
a:focus-visible, button:focus-visible, .gf-btn:focus-visible { outline: 3px solid rgba(113, 55, 199, .45); outline-offset: 2px; }
@media (max-width: 991px) {
    .gfa-account-nav { flex-direction: row !important; flex-wrap: nowrap; padding-top: 0 !important; }
    .gfa-tab, .gfa-logout { width: auto !important; }
}
@media (min-width: 576px) and (max-width: 991px) {
    .gfa-order-info { grid-template-columns: repeat(3, minmax(0, 1fr)) auto !important; align-items: end; }
}
/* cookie notice sits under menus, drawers and the search panel */
.gf-cookie { z-index: 1030; }
.gf-cookie a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.gf-search-panel { background: #fff; }
/* invalid fields */
[aria-invalid=true], .gfo-field [aria-invalid=true] { border-color: #d63a5a !important; background-color: #fff8fa !important; }
.gf-field-error { color: #c52650; font-size: 13px; margin-top: 6px; }

/* ---- Product page delivery box ---- */
.gf-delivery-box { box-shadow: 0 10px 30px rgba(113, 55, 199, .06); }
.gf-delivery-title { display: flex; align-items: center; gap: 8px; font-size: 16px; }
.gf-delivery-title i { color: #7137c7; font-size: 18px; }
.gf-delivery-box li { grid-template-columns: 1fr auto; grid-template-areas: "name price" "when free"; gap: 2px 12px; padding: 10px 0; align-items: baseline; }
.gf-dl-name { grid-area: name; font-weight: 600; color: #222; }
.gf-dl-price { grid-area: price; text-align: right; }
.gf-dl-when { grid-area: when; color: #666; font-size: 13px; }
.gf-dl-when i { color: #7137c7; margin-right: 4px; font-size: 12px; }
.gf-dl-free { grid-area: free; text-align: right; color: #1e8a4c; font-size: 12.5px; font-weight: 600; white-space: nowrap; }

/* ---- Product page photo: show the whole product (no cropping) ---- */
.gf-product-zoom { height: auto !important; aspect-ratio: 374 / 552; max-height: min(900px, 82vh); width: 100%; background: #fff; }
.gf-product-zoom img { object-fit: contain !important; }
@media (max-width: 991.98px) { .gf-product-zoom { max-height: 70vh; margin-inline: auto; } }

/* ---- 992–1199 px (small laptops / landscape tablets) ---- */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .gf-logo { width: 220px !important; height: auto !important; overflow: visible !important; }
    .gf-logo img { position: static !important; width: 220px !important; max-width: 100% !important; transform: none !important; }
    .gf-filter-box { padding: 24px 26px; border-radius: 28px; }
    .gf-product-content .gf-add-cart { padding: 0 24px; }
}
.gf-add-cart { white-space: nowrap; }
@media (max-width: 1199.98px) {
    .gf-filter-box { padding: 24px 28px; }
}
.gfo-checkbox input[type=checkbox], #terms { width: 18px; height: 18px; min-width: 18px; accent-color: #7137c7; }
.gfo-checkbox label { font-size: 13.5px; }
.gf-404-btn { display: inline-flex; align-items: center; gap: 8px; }
.gf-404-btn-outline { background: #fff !important; color: #7137c7 !important; border: 2px solid #7137c7; }
.gf-404-btn-outline:hover { background: #7137c7 !important; color: #fff !important; }
