/* Squirrels & Acorns adaptation of the supplied Fultala storefront template. */
:root {
  --brand-blue: #168ebb;
  --brand-orange: #f5a800;
  --brand-magenta: #e40076;
  --ft-accent: var(--brand-blue);
  --ft-accent-dark: #0d6f95;
  --ft-ink: #333333;
  --ft-copy: #595959;
  --ft-soft: #f7f7f7;
  --ft-line: #e8e8e8;
  --ft-blue: #1689bd;
  --read-font: Calibri, "Segoe UI", Arial, sans-serif;
  --heading-font: "Montserrat", Arial, sans-serif;
  --subheading-font: "Alex Brush", "Segoe Script", cursive;
  --button-font: "Montserrat", Arial, sans-serif;
  --script-font: var(--subheading-font);
  --body-font: var(--read-font);
  --title-font: var(--heading-font);
  --theme-color: var(--ft-accent);
  --secondary-color: var(--brand-orange);
  --title-color: var(--ft-ink);
  --body-color: var(--ft-copy);
  --border-color: var(--ft-line);
  --smoke-color: var(--ft-soft);
  --white-color: #ffffff;
  --shadow-card: 0 4px 14px rgba(15, 23, 42, 0.08);
  --shadow-button: 0 2px 8px rgba(15, 23, 42, 0.10);
  --shadow-card-hover: 0 7px 20px rgba(15, 23, 42, 0.11);
  --shadow-button-hover: 0 4px 12px rgba(15, 23, 42, 0.14);
  --shadow-transition: 200ms ease;
  --radius-card: 12px;
  --radius-control: 12px;
  --radius-media: 12px;
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; color: var(--ft-copy); font-family: var(--body-font); font-size: 16px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--heading-font); font-style: italic; font-weight: 600; }
button, input, select, textarea { font-family: var(--body-font); }
body.modal-open { overflow: hidden; }
a { transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; }
a:hover { color: var(--brand-blue); }
.container-xl { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 15px; }
.space { padding-block: 90px; }
.bg-smoke { background: var(--ft-soft) !important; }
.sec-title, .title-area h2, .section-heading h2 { color: var(--ft-ink); font-family: var(--heading-font); font-size: clamp(30px, 3.5vw, 44px); line-height: 1.18; font-style: italic; font-weight: 600; }
.sec-subtitle, .eyebrow { display: inline-block; margin-bottom: 8px; color: var(--brand-blue); font-family: var(--subheading-font); font-size: clamp(28px, 3vw, 38px); line-height: 1.1; font-weight: 400; letter-spacing: 0; text-transform: none; }
.section-heading { align-items: end; }
.text-link { color: var(--ft-ink); font-weight: 600; }
.text-link:hover { color: var(--ft-accent); }

/* Fultala buttons */
.vs-btn, .slider-btn, button.vs-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 27px;
  border: 1px solid var(--ft-accent); border-radius: var(--radius-control); background: var(--ft-accent); color: #fff !important;
  font-family: var(--button-font); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.vs-btn:hover, .vs-btn:focus-visible { border-color: var(--brand-magenta); background: var(--brand-magenta); color: #fff !important; transform: translateY(-1px); }
.vs-btn.style2, .hero-secondary { border-color: var(--ft-ink) !important; background: transparent !important; color: var(--ft-ink) !important; }
.vs-btn.style2:hover, .hero-secondary:hover { border-color: var(--brand-magenta) !important; background: var(--brand-magenta) !important; color: #fff !important; }

/* Fultala header, adapted to the supplied brand artwork */
.skip-link { position: fixed; z-index: 10050; left: 16px; top: -80px; padding: 12px 18px; background: #fff; color: var(--ft-ink); box-shadow: 0 4px 16px rgba(0,0,0,.18); }
.skip-link:focus { top: 12px; }
.announcement { display: flex; align-items: center; justify-content: center; gap: 20px; min-height: 26px; padding: 3px 20px; background: #111; color: #fff; font-family: var(--read-font); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; transition: max-height .25s ease, min-height .25s ease, padding .25s ease, opacity .2s ease; }
.announcement-detail { color: #cfcfcf; }
.announcement.is-scrolled { min-height: 0; max-height: 0; padding-block: 0; opacity: 0; overflow: hidden; }
site-header { position: sticky; top: 0; z-index: 9990; display: block; width: 100%; }
.store-header { position: relative !important; top: auto; z-index: 1; width: 100%; }
.store-header .site-sticky { position: relative !important; inset: auto !important; padding: 0 !important; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--ft-line); transition: box-shadow .25s ease, background .25s ease; }
.store-header.is-scrolled .site-sticky { background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(0,0,0,.1); backdrop-filter: blur(12px); }
.header-inner { display: grid; grid-template-columns: 130px 1fr auto; align-items: center; min-height: 68px; transition: min-height .25s ease; }
.store-header.is-scrolled .header-inner { min-height: 56px; }
.logo-area { display: block; justify-self: start; line-height: 0; }
.site-logo { display: block; width: 118px; height: 52px; object-fit: contain; transition: width .25s ease, height .25s ease; }
.store-header.is-scrolled .site-logo { width: 100px; height: 42px; }
.main-menu-area { display: block; text-align: center; }
.main-navigation > ul { display: flex; justify-content: center; gap: clamp(22px, 3vw, 43px); margin: 0; padding: 0; list-style: none; }
.main-navigation > ul > li { position: relative; }
.main-navigation > ul > li > a { display: block; padding: 22px 0; color: var(--ft-ink); font-family: var(--button-font); font-size: 13px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.store-header.is-scrolled .main-navigation > ul > li > a { padding-block: 16px; }
.main-navigation > ul > li > a:hover, .main-navigation > ul > li > a[aria-current="page"] { color: var(--ft-accent); }
.main-navigation .sub-menu { position: absolute; left: -22px; top: 100%; z-index: 20; width: 220px; margin: 0; padding: 15px 0; background: #fff; border-top: 2px solid var(--ft-accent); box-shadow: 0 8px 26px rgba(0,0,0,.1); opacity: 0; visibility: hidden; transform: translateY(8px); text-align: left; list-style: none; transition: .2s ease; }
.main-navigation li:hover > .sub-menu, .main-navigation li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.main-navigation .sub-menu a { display: block; padding: 8px 24px 8px 42px; color: #555; font-size: 13px; }
.main-navigation .sub-menu a:hover, .main-navigation .sub-menu a:focus { color: var(--ft-accent); padding-left: 42px; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 3px; }
.header-icon { position: relative; display: grid; width: 40px; height: 40px; place-items: center; padding: 0; border: 0; background: transparent; color: var(--ft-ink); font-size: 24px; cursor: pointer; }
.header-icon:hover { color: var(--ft-accent); }
.cart-count { position: absolute; top: 0; right: 0; display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; background: #E40076; color: #fff; font-size: 10px; line-height: 1; }
.mobile-menu-toggle { display: none; }

/* Off-canvas menu follows Fultala's mobile interaction pattern. */
.mobile-nav-panel { position: fixed; z-index: 10020; inset: 0; pointer-events: none; }
.mobile-nav-backdrop { position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.58); opacity: 0; transition: opacity .25s ease; }
.mobile-nav-panel aside { position: absolute; top: 0; right: 0; display: flex; flex-direction: column; width: min(390px, 88vw); height: 100dvh; max-height: 100dvh; box-sizing: border-box; padding: 24px 28px calc(28px + env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; background: #fff; transform: translateX(105%); transition: transform .3s ease; }
.mobile-nav-panel.open { pointer-events: auto; }
.mobile-nav-panel.open .mobile-nav-backdrop { opacity: 1; }
.mobile-nav-panel.open aside { transform: translateX(0); }
.mobile-nav-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--ft-line); }
.mobile-nav-head img { width: 175px; height: 82px; object-fit: contain; }
.mobile-menu-close { border: 0; background: transparent; color: var(--ft-ink); font-size: 28px; }
.mobile-navigation { flex: 0 0 auto; min-height: 0; overflow: visible; }
.mobile-navigation ul { margin: 0; padding: 10px 0; list-style: none; }
.mobile-navigation > ul > li { border-bottom: 1px solid var(--ft-line); }
.mobile-navigation a { display: block; padding: 13px 3px; color: var(--ft-ink); font-family: var(--button-font); font-weight: 600; }
.mobile-navigation .sub-menu { padding: 0 0 8px 16px; }
.mobile-navigation .sub-menu li { border: 0; }
.mobile-navigation .sub-menu a { padding: 7px 3px; color: #777; font-size: 13px; }
.mobile-contact { display: grid; gap: 8px; margin-top: 24px; color: #777; font-size: 13px; }
.mobile-contact a { color: var(--ft-ink); }

/* Homepage hero mirrors Fultala's full-width slider while keeping centered copy. */
.store-hero { position: relative; width: 100%; min-height: 650px; overflow: hidden; background: linear-gradient(115deg, rgba(255,246,246,.96), rgba(255,255,255,.76)), radial-gradient(circle at 78% 50%, rgba(255,81,81,.25), transparent 27%), var(--ft-soft); }
.store-hero::before, .store-hero::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.store-hero::before { right: 6%; top: 9%; width: min(34vw, 470px); height: min(34vw, 470px); border: 70px solid rgba(255,81,81,.10); }
.store-hero::after { left: 8%; bottom: -100px; width: 260px; height: 260px; border: 42px solid rgba(22,137,189,.08); }
.store-hero .hero-grid { position: relative; z-index: 1; display: grid; width: 100%; max-width: none; min-height: 650px; place-items: center; padding: 90px clamp(18px, 7vw, 110px); }
.store-hero .hero-copy { align-items: center; width: min(1280px, 100%); margin: 0 auto; text-align: center; }
.store-hero .hero-copy h1 { width: 100%; max-width: 1200px; margin: 0 auto 20px; color: var(--ft-ink); font-family: var(--heading-font); font-size: clamp(38px, 4.7vw, 58px); line-height: 1.12; font-style: italic; font-weight: 600; }
.store-hero .hero-copy h1::after { content: ""; display: block; width: 78px; height: 2px; margin: 26px auto 0; background: var(--brand-orange); }
.store-hero .hero-lead { max-width: 760px; margin: 0 auto 30px; color: #555; font-size: 16px; line-height: 1.8; }
.store-hero .hero-actions { display: flex; justify-content: center; gap: 12px; margin-bottom: 22px; }
.store-hero .hero-actions .vs-btn { min-width: 220px; }
.store-hero .hero-stage { display: none; }

/* Product, collection, and content surfaces use Fultala's clean card system. */
.trust-strip { border-block: 1px solid var(--ft-line); background: #fff; }
.trust-grid > div { border-color: var(--ft-line) !important; }
.trust-grid i { color: var(--brand-orange) !important; }
.category-card, .category-card:visited { align-items: center; min-height: 190px; border: 1px solid var(--ft-line) !important; border-left: 4px solid var(--category-accent, var(--ft-accent)) !important; border-radius: var(--radius-card) !important; background: #fff !important; color: var(--ft-ink) !important; box-shadow: var(--shadow-card) !important; overflow: hidden; }
.category-card::after { border-color: color-mix(in srgb, var(--category-accent, var(--ft-accent)) 18%, transparent) !important; }
.category-card:hover, .category-card:focus-visible { border-color: var(--category-accent, var(--ft-accent)) !important; color: var(--ft-ink) !important; transform: translateY(-4px); box-shadow: var(--shadow-card-hover) !important; }
.category-copy { position: relative; z-index: 2; display: block; max-width: calc(100% - 76px); opacity: 1 !important; visibility: visible !important; transform: none !important; }
.category-card .category-copy strong { display: block; color: var(--ft-ink) !important; font-family: var(--heading-font); font-size: clamp(22px, 2.1vw, 29px); font-style: italic; font-weight: 600; line-height: 1.2; opacity: 1 !important; visibility: visible !important; }
.category-card .category-copy small { display: block; margin-top: 8px; color: var(--ft-copy) !important; font-family: var(--body-font); font-size: 15px; line-height: 1.45; opacity: 1 !important; visibility: visible !important; }
.category-icon { position: absolute; right: 25px; top: 50%; z-index: 2; display: grid; width: 64px; height: 64px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--category-accent, var(--ft-accent)) 11%, #fff); color: var(--category-accent, var(--ft-accent)) !important; font-size: 36px; line-height: 1; opacity: 1 !important; transform: translateY(-50%); }
.category-icon i { display: block; }
.cat-copper { --category-accent: var(--brand-magenta); }
.cat-gold { --category-accent: var(--brand-orange); }
.cat-rose { --category-accent: var(--brand-magenta); }
.cat-blue { --category-accent: var(--brand-blue); }
.cat-walnut { --category-accent: var(--brand-orange); }
.cat-green { --category-accent: var(--brand-blue); }

/* Full-width, centred gift campaign */
.campaign-section { width: 100%; padding: 100px 0; background: #fff0e3; }
.campaign-section .campaign-inner { display: flex; width: 100%; max-width: none; flex-direction: column; align-items: center; justify-content: center; gap: 34px; padding-inline: clamp(20px, 8vw, 130px); text-align: center; }
.campaign-section .campaign-inner > div:first-child { display: flex; width: 100%; flex-direction: column; align-items: center; }
.campaign-section .sec-subtitle { margin-bottom: 12px; color: var(--brand-blue); font-family: var(--subheading-font); font-size: clamp(30px, 3.5vw, 44px); font-style: normal; font-weight: 400; line-height: 1.1; }
.campaign-section h2 { width: 100%; max-width: none; margin: 0 auto 20px; font-family: var(--heading-font); font-size: clamp(34px, 4.5vw, 54px); font-style: italic; font-weight: 600; line-height: 1.12; text-align: center; }
.campaign-section p { max-width: 650px; margin: 0 auto 28px; font-family: var(--body-font); font-size: 18px; line-height: 1.7; }
.campaign-section .vs-btn { font-family: var(--button-font); }

/* Keep the gift-finder heading on a single line where screen width allows. */
.gift-finder .section-heading > div { flex: 1 1 auto; min-width: 0; }
.gift-finder .section-heading .sec-title { width: 100%; font-size: clamp(28px, 3vw, 40px); white-space: nowrap; }
.gift-finder .section-heading > p { flex: 0 1 390px; }
.gift-finder .finder-grid { border: 0; gap: 18px; }
.gift-finder .finder-grid a { position: relative; min-height: 150px; padding: 24px; border: 1px solid var(--ft-line); border-top: 4px solid var(--finder-accent, var(--brand-blue)); border-radius: 12px; background: #fff; box-shadow: var(--shadow-card); overflow: hidden; }
.gift-finder .finder-grid a::before { content: ""; position: absolute; right: -35px; bottom: -45px; width: 125px; height: 125px; border: 22px solid color-mix(in srgb, var(--finder-accent, var(--brand-blue)) 10%, transparent); border-radius: 50%; pointer-events: none; }
.gift-finder .finder-grid a:nth-child(3n+1) { --finder-accent: var(--brand-blue); }
.gift-finder .finder-grid a:nth-child(3n+2) { --finder-accent: var(--brand-orange); }
.gift-finder .finder-grid a:nth-child(3n+3) { --finder-accent: var(--brand-magenta); }
.gift-finder .finder-grid a:hover, .gift-finder .finder-grid a:focus-visible { border-color: var(--finder-accent); background: #fff; box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.gift-finder .finder-grid a > span:first-child { position: relative; z-index: 1; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--finder-accent) 12%, #fff); color: var(--finder-accent); font-family: var(--button-font); font-size: 12px; font-weight: 700; }
.gift-finder .finder-grid strong { position: relative; z-index: 1; font-family: var(--heading-font); font-size: clamp(20px, 2vw, 27px); font-style: italic; font-weight: 600; line-height: 1.2; }
.gift-finder .finder-grid .finder-arrow { position: relative; z-index: 1; display: inline-block; width: auto; height: auto; background: transparent; color: var(--finder-accent); font-family: Arial, sans-serif; font-size: 27px; font-weight: 400; line-height: 1; transition: transform .2s ease; }
.gift-finder .finder-grid a:hover .finder-arrow, .gift-finder .finder-grid a:focus-visible .finder-arrow { transform: translate(3px,-3px); }
.product-grid { gap: 30px; }
.product-card { border: 0 !important; border-radius: var(--radius-card) !important; background: #fff; box-shadow: var(--shadow-card) !important; }
.product-card .product-visual { position: relative; min-height: 300px; border-radius: var(--radius-media) !important; overflow: hidden; background: linear-gradient(145deg, color-mix(in srgb, var(--product-color) 18%, #fff), #f4f4f4) !important; }
.product-card .product-visual::before { content: attr(data-glyph); position: absolute; inset: 50% auto auto 50%; width: auto; height: auto; border-radius: 0; background: none; box-shadow: none; transform: translate(-50%,-50%); color: var(--product-color); font-size: 78px; opacity: .65; }
.product-card .product-visual::after { content: "View product"; position: absolute; inset: auto 18px 18px; padding: 12px; background: var(--ft-accent); color: #fff; font-family: var(--button-font); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-align: center; text-transform: uppercase; opacity: 0; transform: translateY(10px); transition: .2s ease; }
.product-card:hover .product-visual::after { opacity: 1; transform: translateY(0); }
.product-info { padding: 18px 0 10px !important; text-align: center; }
.product-info h3 { margin-bottom: 7px; font-size: 16px; line-height: 1.4; font-weight: 500; }
.product-section #home-products .product-meta { justify-content: center; gap: 12px; }
.product-category, .product-stock { font-size: 11px !important; letter-spacing: .08em; text-transform: uppercase; }
.product-price { color: var(--brand-magenta) !important; font-size: 16px !important; font-weight: 600; }
.stock-state { color: var(--brand-blue) !important; }
.quick-add { width: 38px !important; height: 38px !important; border: 1px solid var(--ft-line) !important; border-radius: var(--radius-control) !important; background: #fff !important; color: var(--ft-ink) !important; }
.quick-add:hover { border-color: var(--ft-accent) !important; background: var(--ft-accent) !important; color: #fff !important; }
.product-badge { border-radius: var(--radius-control) !important; background: var(--brand-magenta) !important; }
.shop-toolbar { border-radius: var(--radius-card) !important; border: 1px solid var(--ft-line); background: #fff !important; }
.shop-toolbar input, .shop-toolbar select, .filter-toggle, .filter-panel, .shop-note { border-radius: var(--radius-control) !important; }
.filter-panel { border: 1px solid var(--ft-line); background: #fff !important; }
.filter-panel h2, .filter-panel h3 { font-family: var(--heading-font) !important; font-style: italic; font-weight: 600; }
.filter-panel a.active, .filter-panel a:hover { color: var(--ft-accent) !important; }
.inner-hero, .breadcrumb-bar { background: linear-gradient(120deg, #f8f8f8, #fff1f1) !important; }
.inner-hero h1 { font-family: var(--heading-font) !important; font-size: clamp(36px, 5vw, 56px) !important; font-style: italic; font-weight: 600 !important; line-height: 1.12 !important; }
.story-word, .campaign-art em { font-family: var(--script-font) !important; font-weight: 400 !important; }
.story-lead { font-family: var(--body-font); font-size: 16px; font-style: normal; font-weight: 400; line-height: 1.8; }
.vs-btn, .slider-btn, .header-icon, .quick-add, .filter-toggle, .accordion-button, .cart-qty button, .remove-item, .drawer-close, .mobile-menu-close { font-family: var(--button-font); }
.faq-section .accordion-button, #fullFaq .accordion-button { font-style: normal; font-weight: 500; }
.faq-section .accordion-button::after, #fullFaq .accordion-button::after { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; margin-left: auto; background-image: none !important; color: var(--brand-magenta); content: "+"; font-family: var(--button-font); font-size: 25px; font-weight: 500; line-height: 1; transform: none !important; }
.faq-section .accordion-button:not(.collapsed)::after, #fullFaq .accordion-button:not(.collapsed)::after { content: "−"; transform: none !important; }
.closing-cta h2 { max-width: 820px; font-size: clamp(34px, 4.5vw, 52px); line-height: 1.12; }
.prose h2, .contact-form h2 { font-size: clamp(30px, 4vw, 44px); line-height: 1.18; }
.product-summary h1 { font-size: clamp(34px, 4.5vw, 52px); line-height: 1.12; }
.not-found h1 { font-size: clamp(34px, 5vw, 54px); line-height: 1.12; }
.content-page h2, .product-tabs h2, .account-card h2, .account-benefits h2, .cart-summary h2, .checkout-summary h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; }
.finder-grid strong, .story-card strong, .benefit-grid h3, .event-card h3, .event-date strong, .memory-grid strong, .product-info h3, .cart-item h3 { font-weight: 600; }
.product-detail-grid, .product-tabs, .cart-summary, .checkout-form, .order-summary, .contact-form, .account-card, .account-benefits, .content-page, .policy-note { border-radius: var(--radius-card) !important; }
.form-control, input, select, textarea { border-radius: var(--radius-control) !important; }

/* Footer structure from Fultala, populated with Squirrels content. */
.store-footer { background: #f7f7f7; color: #666; padding-top: 0; }
.footer-top { padding: 34px 0 48px; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .75fr 1.1fr 1fr; gap: 45px; }
.footer-logo { display: block; width: min(235px, 100%); height: auto; margin-bottom: 18px; }
.footer-info p { max-width: 330px; line-height: 1.8; }
.footer-widget { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer-widget h3 { position: relative; margin-bottom: 17px; padding-bottom: 11px; color: var(--ft-ink); font-size: 18px; font-weight: 600; }
.footer-widget h3::after { content: ""; position: absolute; bottom: 0; left: 0; width: 42px; height: 2px; background: var(--ft-accent); }
.footer-widget a, .footer-widget span { color: #666; font-size: 13px; }
.footer-widget a:hover { color: var(--ft-accent); padding-left: 3px; }
.footer-contact i { width: 18px; color: var(--brand-magenta); font-size: 17px; }
.footer-social { display: flex; gap: 8px; margin-top: 18px; }
.footer-social a { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #ddd; border-radius: var(--radius-control); color: #555; font-size: 17px; }
.footer-social a:hover { border-color: var(--ft-accent); background: var(--ft-accent); color: #fff; }
.footer-bottom { width: 100%; margin: 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.18); background: #168EBB; color: #fff; font-size: 12px; }
.footer-bottom .container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 15px; }
.footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0; }
.footer-bottom span, .footer-bottom a { margin: 0; }
.footer-bottom-inner > span { display: block; color: #fff !important; }
.footer-bottom .current-year { display: inline; color: #fff !important; }
.footer-bottom a { display: inline; color: #fff; }
.footer-bottom a:hover { color: #F5A800; }

/* Consistent rounded treatment for all visible buttons and imagery. */
button:not(.drawer-backdrop):not(.filter-drawer-backdrop):not(.mobile-nav-backdrop),
.vs-btn,
.slider-btn,
[role="button"] { border-radius: var(--radius-control) !important; }
img,
.product-visual,
.mini-product,
.cart-thumb { border-radius: var(--radius-media) !important; }

.product-card,
.product-card .product-info,
.product-detail-grid,
.product-gallery,
.product-summary,
.product-tabs article { border-radius: var(--radius-card) !important; }
.product-card .product-visual,
.product-card .product-visual::after { border-radius: var(--radius-media) !important; }
.product-card .product-badge,
.purchase-row input { border-radius: var(--radius-control) !important; }
.product-card { overflow: hidden; }

@media (max-width: 991px) {
  .header-inner { grid-template-columns: 1fr auto; min-height: 62px; }
  .main-menu-area { display: none; }
  .site-logo { width: 110px; height: 48px; }
  .store-header.is-scrolled .site-logo { width: 96px; height: 40px; }
  .mobile-menu-toggle { display: grid; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .store-hero, .store-hero .hero-grid { min-height: 570px; }
  .gift-finder .section-heading { display: block; text-align: center; }
  .gift-finder .section-heading > p { max-width: 520px; margin: 16px auto 0; }
}

@media (min-width: 768px) {
  .store-hero .hero-copy h1 { white-space: nowrap; }
}

@media (max-width: 575px) {
  .announcement { gap: 0; font-size: 10px; }
  .announcement-detail { display: none; }
  .header-inner { min-height: 58px; padding-inline: 12px; }
  .site-logo { width: 100px; height: 44px; }
  .account-link { display: none; }
  .header-icon { width: 35px; height: 35px; font-size: 21px; }
  .store-hero, .store-hero .hero-grid { min-height: 600px; }
  .store-hero .hero-grid { padding: 70px 16px; }
  .store-hero .hero-copy h1 { font-size: clamp(32px, 9vw, 42px); }
  .store-hero .hero-actions { width: 100%; flex-direction: column; }
  .store-hero .hero-actions .vs-btn { width: 100%; min-width: 0; }
  .gift-finder .section-heading .sec-title { font-size: 28px; white-space: normal; }
  .space { padding-block: 65px; }
  .footer-top { padding: 32px 20px 30px; }
  .footer-top > .container { width: 100%; max-width: 100%; padding-inline: 0; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-info,
  .footer-widget { width: 100%; min-width: 0; }
  .footer-logo { width: min(210px, 75vw); max-width: 100%; margin-bottom: 14px; }
  .footer-info p { max-width: 100%; margin-bottom: 0; }
  .footer-widget { gap: 10px; }
  .footer-widget h3 { margin-bottom: 10px; }
  .footer-widget a,
  .footer-widget span { max-width: 100%; overflow-wrap: anywhere; word-break: normal; }
  .footer-contact a,
  .footer-contact span { display: flex; align-items: flex-start; gap: 8px; }
  .footer-contact i { flex: 0 0 18px; margin-top: .25em; }
  .footer-social { flex-wrap: wrap; }
  .footer-bottom { padding: 16px 20px; }
  .footer-bottom .container { padding-inline: 0; }
  .footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; line-height: 1.55; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Readability update: larger body and supporting text across the storefront. */
body {
  font-size: 18px;
  line-height: 1.7;
}

p,
li,
dd,
dt,
blockquote,
.accordion-body {
  line-height: 1.75;
}

.store-hero .hero-lead,
.story-lead,
.prose p,
.content-page p,
.title-area p,
.section-heading > p,
.footer-info p {
  font-size: 18px;
}

.announcement {
  font-size: 12px;
}

.main-navigation > ul > li > a {
  font-size: 14px;
}

.main-navigation .sub-menu a,
.mobile-navigation .sub-menu a,
.mobile-contact {
  font-size: 15px;
}

.mobile-navigation a {
  font-size: 17px;
}

.trust-grid strong {
  font-size: 15px;
}

.trust-grid small,
.category-card small {
  font-size: 14px;
}

.product-info h3,
.product-price {
  font-size: 18px !important;
}

.product-category,
.product-stock,
.product-sku,
.visual-disclaimer {
  font-size: 13px !important;
}

.product-badge,
.finder-grid span,
.event-date span,
.event-type,
.breadcrumb-bar,
.form-step,
.memory-grid span,
.contact-cards > article > span {
  font-size: 14px;
}

.field-grid label > span,
.account-card label > span,
.choice-grid small,
.checkout-summary #checkout-order > div,
.terms-check,
.status-pill {
  font-size: 16px;
}

input,
select,
textarea {
  font-size: 17px;
}

.cart-summary > p,
.secure-note,
.drawer-foot p,
.shipping-progress > span {
  font-size: 15px;
}

.shipping-progress > small,
.drawer-foot .shipping-progress > span {
  font-size: 14px;
}

.footer-widget a,
.footer-widget span {
  font-size: 15px;
}

.footer-bottom {
  font-size: 14px;
}

@media (max-width: 575px) {
  body {
    font-size: 17px;
  }

  .announcement {
    font-size: 11px;
  }

  .store-hero .hero-lead,
  .story-lead,
  .prose p,
  .content-page p,
  .title-area p,
  .section-heading > p,
  .footer-info p {
    font-size: 17px;
  }
}

/* Homepage trust strip: full-width four-column panel. */
.trust-strip {
  border-block: 0;
  padding-inline: 0;
}

.trust-strip .trust-grid {
  width: 100%;
  max-width: none !important;
  margin-inline: 0;
  padding-inline: 0;
  border: 1px solid var(--ft-line);
  border-radius: var(--radius-card);
  overflow: hidden;
}

.trust-strip .trust-grid strong {
  font-size: 16px;
  line-height: 1.3;
}

.trust-strip .trust-grid small {
  margin-top: 4px;
  font-size: 15px;
  line-height: 1.45;
}

@media (max-width: 575px) {
  .trust-strip .trust-grid > div:last-child {
    border-bottom: 0 !important;
  }
}

/* Contact page layout and typography aligned with the homepage system. */
.contact-hero .container-xl {
  text-align: center;
}

.contact-hero p:last-child {
  margin-right: auto;
  margin-left: auto;
}

/* Homepage-style script subheadings. */
.contact-hero .eyebrow,
.contact-form .sec-subtitle {
  font-family: var(--subheading-font);
  font-style: normal;
  font-weight: 400;
}

/* Homepage-style primary headings. */
.contact-hero h1,
.contact-form h2 {
  font-family: var(--heading-font);
  font-style: italic;
  font-weight: 600;
}

/* Contact-card labels use the same decorative subheading treatment as the homepage. */
.contact-cards > article > span {
  font-family: var(--subheading-font);
  font-size: 24px;
  line-height: 1.1;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

/* Homepage-style reading text. */
.contact-hero p:last-child,
.contact-cards a,
.contact-cards strong,
.contact-cards small,
.contact-form label,
.contact-form input,
.contact-form select,
.contact-form textarea,
.contact-form .terms-check,
.contact-form .form-success {
  font-family: var(--body-font);
  font-style: normal;
}

.contact-cards a,
.contact-cards strong {
  font-weight: 700;
}

.contact-form .vs-btn {
  font-family: var(--button-font);
}

.contact-cards a:hover,
.contact-cards a:focus-visible {
  color: var(--brand-blue);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Contact form container: retain the bordered background with softened corners. */
.contact-form {
  border-radius: 12px !important;
}


/* About page typography follows the shared internal-hero layout. */

.about-page .about-hero p:last-child {
  margin-right: auto;
  margin-left: auto;
}

.about-page .about-hero .eyebrow,
.about-page .prose .sec-subtitle,
.about-page .title-area .sec-subtitle,
.about-page .closing-cta .sec-subtitle {
  font-family: var(--subheading-font);
  font-style: normal;
  font-weight: 400;
}

.about-page .about-hero h1,
.about-page .prose h2,
.about-page .title-area h2,
.about-page .benefit-grid h3,
.about-page .closing-cta h2,
.about-page .editorial-art strong {
  font-family: var(--heading-font);
  font-style: italic;
  font-weight: 600;
}

.about-page .about-hero p:last-child,
.about-page .prose p,
.about-page .benefit-grid p {
  font-family: var(--body-font);
  font-style: normal;
  font-weight: 400;
}

.about-page .benefit-grid h3 {
  min-height: 2.4em;
  margin-bottom: 0.65rem;
  line-height: 1.2;
}

.about-page .closing-cta .vs-btn {
  font-family: var(--button-font);
}

@media (max-width: 575px) {
  .about-page .benefit-grid h3 {
    min-height: 0;
  }
}

/* Events page: centred hero, clean non-interactive highlights and homepage typography. */
.events-page .events-hero .container-xl {
  text-align: center;
}

.events-page .events-hero p:last-child {
  margin-right: auto;
  margin-left: auto;
}

.events-page .events-hero .eyebrow,
.events-page .section-heading .sec-subtitle,
.events-page .past-highlights .sec-subtitle {
  font-family: var(--subheading-font);
  font-style: normal;
  font-weight: 400;
}

.events-page .events-hero h1,
.events-page .section-heading h2,
.events-page .event-card h3,
.events-page .past-highlights h2,
.events-page .memory-grid strong {
  font-family: var(--heading-font);
  font-style: italic;
  font-weight: 600;
}

.events-page .events-hero p:last-child,
.events-page .section-heading > p,
.events-page .event-card p,
.events-page .event-card a,
.events-page .event-date span,
.events-page .past-highlights .title-area p,
.events-page .memory-type {
  font-family: var(--body-font);
  font-style: normal;
}

.events-page .event-type {
  font-family: var(--subheading-font);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.events-page .past-highlights {
  background: #fff;
}

.events-page .past-highlights .title-area {
  width: 100%;
  max-width: none;
}

.events-page .past-highlights .title-area p {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.events-page .memory-grid {
  gap: 18px;
}

.events-page .memory-grid article {
  min-height: 230px;
  aspect-ratio: auto;
  justify-content: flex-start;
  padding: 28px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: #fff !important;
  color: var(--ft-copy);
  box-shadow: var(--shadow-card);
  cursor: default;
}

.events-page .memory-grid .memory-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 26px;
  place-items: center;
  border-radius: 12px;
  background: rgba(22, 142, 187, .08);
  color: var(--brand-blue);
  font-size: 28px;
  line-height: 1;
}

.events-page .memory-grid .memory-type {
  margin-bottom: 9px;
  color: var(--brand-blue);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.events-page .memory-grid strong {
  display: block;
  color: var(--ft-ink);
  font-size: 22px;
  line-height: 1.25;
}

@media (max-width: 575px) {
  .events-page .memory-grid {
    grid-template-columns: 1fr;
  }

  .events-page .memory-grid article {
    min-height: 200px;
  }
}

/* Shop page: Heritage Made-inspired merchandising structure, kept within the Squirrels theme. */
.shop-hero-centered .container-xl {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.shop-hero-centered p:last-child {
  margin-inline: auto;
}
.shop-page-reference {
  background: #fff;
}
.shop-find-products {
  max-width: 1080px;
  margin: 0 auto 44px;
  text-align: center;
}
.shop-find-heading {
  margin-bottom: 22px;
}
.shop-find-heading .eyebrow {
  margin-bottom: 3px;
  color: var(--brand-blue);
  font-family: var(--subheading-font);
  font-size: clamp(30px, 3.3vw, 42px);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}
.shop-find-heading h2 {
  margin: 0;
  font-family: var(--heading-font);
  font-size: clamp(28px, 3.5vw, 42px);
  font-style: italic;
  font-weight: 600;
  line-height: 1.15;
}
.shop-search-large {
  display: flex;
  width: min(760px, 100%);
  height: 56px;
  align-items: center;
  gap: 12px;
  margin: 0 auto 24px;
  padding: 0 18px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: #fff;
  text-align: left;
}
.shop-search-large i {
  color: var(--brand-blue);
  font-size: 18px;
}
.shop-search-large input {
  width: 100%;
  height: 54px;
  margin: 0;
  padding: 0;
  border: 0 !important;
  outline: 0;
  background: transparent;
  font-family: var(--body-font);
  font-size: 17px;
}
.shop-category-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.shop-category-chips a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 9px 15px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: #fff;
  color: var(--ft-ink);
  font-family: var(--button-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .035em;
  line-height: 1.2;
  transition: .2s ease;
}
.shop-category-chips a:hover,
.shop-category-chips a:focus-visible,
.shop-category-chips a.active {
  border-color: var(--brand-blue);
  background: color-mix(in srgb, var(--brand-blue) 8%, #fff);
  color: var(--brand-blue);
}
.shop-results-bar {
  display: grid;
  grid-template-columns: 1fr auto 210px;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
  padding: 16px 0;
  border-top: 1px solid var(--ft-line);
  border-bottom: 1px solid var(--ft-line);
}
.shop-results-bar p {
  margin: 0;
  color: var(--ft-ink);
  font-family: var(--body-font);
  font-size: 16px;
  font-weight: 600;
}
.shop-sort-label {
  margin: 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 15px;
}
.shop-results-bar select {
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 36px 0 12px;
  border: 1px solid var(--ft-line);
  border-radius: 12px !important;
  background-color: #fff;
  font-family: var(--body-font);
  font-size: 15px;
}
.heritage-inspired-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 30px;
  row-gap: 46px;
}
.shop-product-card {
  display: flex;
  flex-direction: column;
  overflow: visible !important;
  border: 0 !important;
  background: #fff;
}
.shop-product-card .product-visual {
  min-height: 330px;
  border: 1px solid #f0f0f0;
  border-radius: 12px !important;
}
.shop-product-card .product-info {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px 2px 0 !important;
  text-align: left;
}
.shop-product-card .product-category {
  margin: 0 0 7px;
  color: var(--brand-blue);
  font-family: var(--body-font);
  font-size: 12px !important;
  font-weight: 600;
  letter-spacing: .08em;
}
.shop-product-card .product-info h3 {
  margin: 0 0 10px;
  font-family: var(--heading-font);
  font-size: 21px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.3;
}
.shop-product-card .product-info h3 a {
  color: var(--ft-ink);
}
.shop-product-card .shop-product-description {
  display: -webkit-box;
  min-height: 78px;
  margin: 0 0 12px;
  overflow: hidden;
  color: #666;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.shop-product-card .product-stock {
  margin: 0 0 4px;
  color: #777;
  font-family: var(--body-font);
  font-size: 12px !important;
}
.shop-product-card .product-price {
  margin: 0 0 10px;
  color: var(--brand-magenta) !important;
  font-family: var(--body-font);
  font-size: 18px !important;
  font-weight: 600;
}
.shop-card-actions {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 14px;
  margin-top: auto;
}
.shop-view-link {
  color: var(--ft-ink);
  font-family: var(--button-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.shop-view-link:hover {
  color: var(--brand-blue);
}
.shop-add-btn.vs-btn {
  min-height: 42px;
  margin-left: auto;
  padding: 0 18px;
  border-radius: 12px !important;
  font-size: 12px;
}
.shop-add-btn:disabled {
  cursor: not-allowed;
  opacity: .45;
}
.shop-note-reference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: 60px;
  padding: 28px 30px;
  border: 1px solid var(--ft-line);
  border-radius: 12px !important;
  background: #fff !important;
}
.shop-note-reference strong,
.shop-note-reference span {
  display: block;
}
.shop-note-reference strong {
  margin-bottom: 3px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 22px;
  font-style: italic;
  font-weight: 600;
}
.shop-note-reference span {
  font-family: var(--body-font);
  font-size: 16px;
}
.shop-note-reference .vs-btn {
  flex: 0 0 auto;
}

@media (max-width: 991px) {
  .heritage-inspired-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-product-card .product-visual { min-height: 300px; }
}

@media (max-width: 700px) {
  .shop-find-products { margin-bottom: 32px; }
  .shop-category-chips { justify-content: flex-start; flex-wrap: nowrap; margin-inline: -12px; padding: 0 12px 8px; overflow-x: auto; scroll-snap-type: x proximity; }
  .shop-category-chips a { flex: 0 0 auto; scroll-snap-align: start; }
  .shop-results-bar { grid-template-columns: 1fr 155px; }
  .shop-results-bar p { grid-column: 1 / -1; }
  .shop-sort-label { display: none; }
  .shop-results-bar select { grid-column: 2; }
}

@media (max-width: 575px) {
  .shop-search-large { height: 52px; }
  .shop-search-large input { height: 50px; font-size: 16px; }
  .heritage-inspired-grid { grid-template-columns: 1fr; row-gap: 38px; }
  .shop-product-card .product-visual { min-height: 360px; }
  .shop-product-card .shop-product-description { min-height: 0; }
  .shop-results-bar { grid-template-columns: 1fr; }
  .shop-results-bar select { grid-column: 1; }
  .shop-note-reference { align-items: flex-start; flex-direction: column; padding: 24px 22px; }
  .shop-note-reference .vs-btn { width: 100%; }
}

/* Heritage Made shop layout refinement - preserves Squirrels theme. */
.shop-page-heritage {
  background: #fff;
}

.shop-page-heritage .heritage-find-products {
  max-width: 1120px;
  margin: 0 auto 46px;
  text-align: center;
}

.shop-page-heritage .heritage-find-products > h2 {
  margin: 0 0 24px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: clamp(30px, 3.4vw, 44px);
  font-style: italic;
  font-weight: 600;
  line-height: 1.15;
}

.shop-page-heritage .shop-search-large {
  width: min(820px, 100%);
  height: 58px;
  margin: 0 auto 26px;
  padding: 0 20px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: #fff;
}

.shop-page-heritage .shop-search-large:focus-within {
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 3px rgba(22, 142, 187, .08);
}

.shop-page-heritage .shop-search-large input {
  height: 56px;
  color: var(--ft-ink);
  font-family: var(--body-font);
  font-size: 17px;
}

.shop-page-heritage .shop-search-large input::placeholder {
  color: #777;
  opacity: 1;
}

.shop-page-heritage .shop-category-chips {
  gap: 10px;
}

.shop-page-heritage .shop-category-chips a {
  min-height: 42px;
  padding: 9px 16px;
  border-radius: 12px;
}

.shop-product-count {
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ft-line);
  color: #6d6d6d;
  font-family: var(--body-font);
  font-size: 15px;
  line-height: 1.4;
}

.shop-page-heritage .heritage-product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 48px;
}

.shop-page-heritage .shop-product-card {
  min-width: 0;
}

.shop-page-heritage .shop-product-card .product-visual {
  width: 100%;
  min-height: 0;
  aspect-ratio: 4 / 5;
  border: 1px solid #efefef;
  border-radius: 12px !important;
}

.shop-page-heritage .shop-product-card .product-info {
  padding: 18px 1px 0 !important;
}

.shop-page-heritage .shop-product-card .product-category {
  margin-bottom: 7px;
  font-size: 12px !important;
  letter-spacing: .075em;
  line-height: 1.35;
}

.shop-page-heritage .shop-product-card .product-info h3 {
  margin-bottom: 9px;
  font-size: 20px;
  line-height: 1.28;
}

.shop-page-heritage .shop-product-card .shop-product-description {
  min-height: 76px;
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 1.55;
}

.shop-page-heritage .shop-product-card .product-stock {
  display: none;
}

.shop-page-heritage .shop-product-card .product-price {
  margin-bottom: 10px;
  font-size: 18px !important;
  line-height: 1.3;
}

.shop-page-heritage .shop-card-actions {
  gap: 12px;
}

.shop-page-heritage .shop-add-btn.vs-btn {
  min-height: 42px;
  padding: 0 16px;
  white-space: nowrap;
}

.shop-enquiry-section {
  padding: 24px 15px 64px;
  background: #fff;
}

.shop-enquiry-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  padding: 34px 38px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--brand-orange) 6%, #fff);
}

.shop-enquiry-inner > div {
  max-width: 720px;
}

.shop-enquiry-inner .eyebrow {
  margin-bottom: 2px;
  color: var(--brand-blue);
  font-family: var(--subheading-font);
  font-size: clamp(28px, 3vw, 38px);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.05;
  text-transform: none;
}

.shop-enquiry-inner h2 {
  margin: 0 0 8px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: clamp(28px, 3vw, 40px);
  font-style: italic;
  font-weight: 600;
  line-height: 1.18;
}

.shop-enquiry-inner p:last-child {
  margin: 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 17px;
  line-height: 1.55;
}

.shop-enquiry-inner .vs-btn {
  flex: 0 0 auto;
}

.shop-trust-section {
  padding: 0 15px 64px;
  background: #fff;
}

.shop-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-inline: 0;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  overflow: hidden;
}

.shop-trust-grid article {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
  padding: 24px 20px;
  border-right: 1px solid var(--ft-line);
  background: #fff;
}

.shop-trust-grid article:last-child {
  border-right: 0;
}

.shop-trust-grid i {
  flex: 0 0 auto;
  color: var(--brand-orange);
  font-size: 27px;
}

.shop-trust-grid h3 {
  margin: 0 0 3px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 17px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.25;
}

.shop-trust-grid p {
  margin: 0;
  color: #777;
  font-family: var(--body-font);
  font-size: 15px;
  line-height: 1.4;
}

@media (max-width: 1199px) {
  .shop-page-heritage .heritage-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  .shop-page-heritage .heritage-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .shop-enquiry-inner {
    align-items: flex-start;
    flex-direction: column;
  }
  .shop-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .shop-trust-grid article:nth-child(2) {
    border-right: 0;
  }
  .shop-trust-grid article:nth-child(-n+2) {
    border-bottom: 1px solid var(--ft-line);
  }
}

@media (max-width: 700px) {
  .shop-page-heritage .heritage-find-products {
    margin-bottom: 36px;
  }
  .shop-page-heritage .shop-category-chips {
    justify-content: flex-start;
    flex-wrap: nowrap;
    margin-inline: -12px;
    padding: 0 12px 8px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }
  .shop-page-heritage .shop-category-chips a {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
}

@media (max-width: 575px) {
  .shop-page-heritage .shop-search-large {
    height: 52px;
  }
  .shop-page-heritage .shop-search-large input {
    height: 50px;
    font-size: 16px;
  }
  .shop-page-heritage .heritage-product-grid {
    grid-template-columns: 1fr;
    row-gap: 38px;
  }
  .shop-page-heritage .shop-product-card .product-visual {
    aspect-ratio: 1 / 1.12;
  }
  .shop-page-heritage .shop-product-card .shop-product-description {
    min-height: 0;
  }
  .shop-enquiry-section {
    padding-bottom: 48px;
  }
  .shop-enquiry-inner {
    gap: 24px;
    padding: 28px 24px;
  }
  .shop-enquiry-inner .vs-btn {
    width: 100%;
  }
  .shop-trust-section {
    padding-bottom: 48px;
  }
  .shop-trust-grid {
    grid-template-columns: 1fr;
  }
  .shop-trust-grid article,
  .shop-trust-grid article:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--ft-line);
  }
  .shop-trust-grid article:last-child {
    border-bottom: 0;
  }
}


/* Shop product-card correction: follow Heritage Made product flow while retaining Squirrels styling. */
.shop-page-heritage .shop-product-card .product-visual::after,
.shop-page-heritage .shop-product-card:hover .product-visual::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  transform: none !important;
}

.shop-page-heritage .shop-product-card .product-visual {
  display: block;
  cursor: pointer;
}

.shop-page-heritage .shop-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  gap: 10px;
  margin-top: auto;
}

.shop-page-heritage .shop-view-btn.vs-btn,
.shop-page-heritage .shop-add-btn.vs-btn {
  display: inline-flex;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 10px;
  border-radius: 12px !important;
  font-size: 12px;
  letter-spacing: .05em;
  text-align: center;
  white-space: nowrap;
}

.shop-page-heritage .shop-view-btn.vs-btn {
  text-decoration: none;
}

.shop-page-heritage .shop-view-btn.vs-btn:hover,
.shop-page-heritage .shop-view-btn.vs-btn:focus-visible {
  text-decoration: none;
}

@media (max-width: 420px) {
  .shop-page-heritage .shop-card-actions {
    grid-template-columns: 1fr;
  }
}

/* Heritage Made structural layout: sidebar filters + product catalogue. */
.shop-page-heritage .container-xl {
  max-width: 1320px;
}

.shop-page-heritage .heritage-shop-layout {
  display: grid;
  grid-template-columns: minmax(230px, 270px) minmax(0, 1fr);
  gap: clamp(36px, 4vw, 64px);
  align-items: start;
}

.shop-page-heritage .shop-filter-sidebar {
  min-width: 0;
}


.shop-page-heritage .shop-filter-sidebar h2 {
  margin: 0 0 22px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 25px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.15;
}

.shop-page-heritage .shop-filter-sidebar .shop-search-large {
  width: 100%;
  height: 52px;
  margin: 0 0 34px;
  padding: 0 15px;
  border: 1px solid var(--ft-line);
  border-radius: 12px;
  background: #fff;
}

.shop-page-heritage .shop-filter-sidebar .shop-search-large input {
  width: 100%;
  height: 50px;
  padding-left: 8px;
  font-family: var(--body-font);
  font-size: 16px;
}

.shop-page-heritage .shop-filter-sidebar .shop-search-large i {
  color: var(--brand-blue);
  font-size: 16px;
}

.shop-page-heritage .shop-filter-group {
  padding-top: 22px;
  border-top: 1px solid var(--ft-line);
}

.shop-page-heritage .shop-filter-group + .shop-filter-group {
  margin-top: 30px;
}

.shop-page-heritage .shop-filter-group h3 {
  margin: 0 0 12px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 18px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.3;
}

.shop-page-heritage .shop-category-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.shop-page-heritage .shop-category-list a {
  position: relative;
  display: block;
  padding: 9px 26px 9px 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.4;
  text-decoration: none;
  transition: color .18s ease, padding-left .18s ease;
}

.shop-page-heritage .shop-category-list a::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 2px;
  color: #aaa;
  font-size: 18px;
  line-height: 1;
  transform: translateY(-52%);
  transition: color .18s ease, transform .18s ease;
}

.shop-page-heritage .shop-category-list a:hover,
.shop-page-heritage .shop-category-list a:focus-visible,
.shop-page-heritage .shop-category-list a.active {
  color: var(--brand-blue);
}

.shop-page-heritage .shop-category-list a:hover::after,
.shop-page-heritage .shop-category-list a:focus-visible::after,
.shop-page-heritage .shop-category-list a.active::after {
  color: var(--brand-orange);
  transform: translate(3px, -52%);
}

.shop-page-heritage .shop-category-list a.active {
  font-weight: 600;
}

.shop-page-heritage .shop-catalogue-column {
  min-width: 0;
}

.shop-page-heritage .heritage-product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 28px;
  row-gap: 52px;
}

@media (min-width: 1200px) {
  .shop-page-heritage .shop-card-actions {
    gap: 8px;
  }

  .shop-page-heritage .shop-view-btn.vs-btn,
  .shop-page-heritage .shop-add-btn.vs-btn {
    min-height: 44px;
    padding-inline: 7px;
    font-size: 11px;
    letter-spacing: .035em;
  }
}

.shop-page-heritage .shop-product-card .product-visual {
  aspect-ratio: 1 / 1.08;
}

.shop-page-heritage .shop-product-card .product-info {
  padding-top: 16px !important;
}

.shop-page-heritage .shop-product-card .shop-product-description {
  min-height: 74px;
}

@media (max-width: 1199px) {
  .shop-page-heritage .heritage-shop-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 36px;
  }
  .shop-page-heritage .heritage-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .shop-page-heritage .heritage-shop-layout {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .shop-page-heritage .shop-filter-sidebar {
    padding: 24px;
    border: 1px solid var(--ft-line);
    border-radius: 12px;
    background: #fff;
  }
  .shop-page-heritage .shop-filter-sidebar .shop-search-large {
    max-width: none;
  }
  .shop-page-heritage .shop-filter-groups-mobile,
  .shop-page-heritage .shop-filter-group {
    width: 100%;
  }
  .shop-page-heritage .shop-category-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
  }
}

@media (max-width: 575px) {
  .shop-page-heritage .shop-filter-sidebar {
    padding: 21px 18px;
  }
  .shop-page-heritage .shop-filter-sidebar h2 {
    font-size: 26px;
  }
  .shop-page-heritage .shop-category-list {
    grid-template-columns: 1fr;
  }
  .shop-page-heritage .heritage-product-grid {
    grid-template-columns: 1fr;
  }
  .shop-page-heritage .shop-product-card .shop-product-description {
    min-height: 0;
  }
}

/* Desktop Shop dropdown: keep submenu text comfortably inset from the panel edge. */
@media (min-width: 992px) {
  .main-navigation .has-submenu > .sub-menu > li {
    margin: 0 !important;
    padding: 0 0 0 30px !important;
  }

  .main-navigation .has-submenu > .sub-menu > li > a {
    display: block !important;
    margin: 0 !important;
    padding: 8px 18px !important;
    transform: none !important;
  }

  .main-navigation .has-submenu > .sub-menu > li > a:hover,
  .main-navigation .has-submenu > .sub-menu > li > a:focus {
    padding: 8px 18px !important;
    transform: none !important;
  }
}

/* Shop desktop filters: stay in normal document flow with the catalogue. */
@media (min-width: 861px) {
  .shop-page-heritage .shop-filter-sidebar {
    position: static;
    top: auto;
    align-self: start;
    height: auto;
    max-height: none;
    overflow: visible;
    z-index: auto;
    background: #fff;
  }

}

@media (max-width: 860px) {
  .shop-page-heritage .shop-filter-sidebar {
    position: static;
    top: auto;
    height: auto;
    max-height: none;
    overflow: visible;
  }
}


/* HERO REAL-PHOTO SYSTEM */
.hero-photo-shell {
  position: relative;
  width: min(980px, 100%);
  height: clamp(230px, 25vw, 330px);
  margin: 34px auto 0;
  overflow: hidden;
  border: 1px solid rgba(51, 51, 51, .08);
  border-radius: 20px;
  background: #f4f4f4;
  box-shadow: 0 16px 42px rgba(51, 51, 51, .10);
}
.hero-photo-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .32);
}
.hero-photo-shell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.store-hero .hero-photo-home {
  width: min(1040px, 100%);
  height: clamp(250px, 27vw, 350px);
  margin-top: 28px;
}
.inner-hero {
  overflow: hidden;
}
.inner-hero .hero-photo-compact {
  width: min(780px, 100%);
  height: clamp(180px, 20vw, 230px);
  margin-top: 28px;
}
.product-page-hero .container-xl,
.product-page-hero .eyebrow,
.product-page-hero h1 {
  text-align: center;
}
.product-page-hero .eyebrow {
  margin-left: auto;
  margin-right: auto;
}
.not-found > div {
  width: min(980px, 100%);
}
.not-found .hero-photo-404 {
  width: min(760px, 100%);
  height: clamp(190px, 24vw, 270px);
  margin: 30px auto;
}
@media (max-width: 767px) {
  .hero-photo-shell,
  .store-hero .hero-photo-home,
  .inner-hero .hero-photo-compact,
  .not-found .hero-photo-404 {
    width: 100%;
    height: 210px;
    margin-top: 24px;
    border-radius: 14px;
  }
  .inner-hero.compact .hero-photo-shell {
    height: 175px;
  }
  .not-found .hero-photo-404 {
    height: 185px;
    margin-bottom: 26px;
  }
}


/* HERO IMAGE PLACEMENT - INTEGRATED SPLIT HERO */
/* The real photographs are part of the hero composition, not detached blocks beneath the copy. */
.inner-hero {
  position: relative;
  padding: 68px 0 !important;
}

.inner-hero .container-xl.hero-image-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr);
  align-items: center !important;
  gap: clamp(42px, 6vw, 88px);
  text-align: initial;
}

.inner-hero .inner-hero-copy {
  min-width: 0;
  text-align: center;
}

.inner-hero .inner-hero-copy .eyebrow,
.inner-hero .inner-hero-copy > p:last-child {
  margin-right: auto;
  margin-left: auto;
}

.inner-hero .inner-hero-copy > p:last-child {
  max-width: 650px;
}

.inner-hero .hero-photo-shell,
.inner-hero .hero-photo-compact {
  width: 100% !important;
  height: clamp(300px, 29vw, 410px) !important;
  margin: 0 !important;
  border-radius: 20px;
  box-shadow: 0 16px 42px rgba(51, 51, 51, .10);
}

.inner-hero.compact {
  padding: 52px 0 !important;
}

.inner-hero.compact .container-xl.hero-image-layout {
  grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr);
  gap: clamp(36px, 5vw, 72px);
}

.inner-hero.compact .hero-photo-shell,
.inner-hero.compact .hero-photo-compact {
  height: clamp(220px, 22vw, 285px) !important;
}

/* Earlier centring rules remain valid, but the grid itself should not collapse into a vertical flex layout. */
.shop-hero-centered .container-xl.hero-image-layout {
  display: grid !important;
  flex-direction: initial;
  align-items: center;
  text-align: initial;
}

/* Homepage: use the photograph as the main right-hand hero visual. */
.store-hero .hero-grid {
  width: min(1320px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
  grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr);
  gap: clamp(46px, 6vw, 88px);
}

.store-hero .hero-stage {
  min-height: 535px;
  overflow: hidden;
  border: 1px solid rgba(51, 51, 51, .08);
  border-radius: 24px;
  background: #eee;
  box-shadow: 0 24px 70px rgba(51, 51, 51, .16);
}

.store-hero .hero-stage::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(28,24,21,.34) 100%);
  pointer-events: none;
}

.store-hero .hero-stage::after {
  z-index: 2;
  inset: 14px;
  border-color: rgba(255,255,255,.26);
  border-radius: 16px;
  pointer-events: none;
}

.store-hero .hero-photo-stage {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0;
  border-radius: inherit;
  background: #eee;
  box-shadow: none;
}

.store-hero .hero-photo-stage::after {
  display: none;
}

.store-hero .hero-photo-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.store-hero .hero-orbit,
.store-hero .hero-note {
  z-index: 3;
}

.store-hero .hero-note {
  right: 30px;
  bottom: 28px;
  max-width: 260px;
  margin: 0;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.32);
}

.store-hero .hero-note strong {
  color: #fff;
}

/* 404 page follows the same integrated two-column hero idea. */
.not-found > div.not-found-grid {
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .88fr);
  align-items: center;
  gap: clamp(42px, 6vw, 80px);
  text-align: center;
}

.not-found .not-found-copy {
  min-width: 0;
}

.not-found .hero-photo-404 {
  width: 100% !important;
  height: clamp(300px, 30vw, 400px) !important;
  margin: 0 !important;
  border-radius: 20px;
}

@media (max-width: 991px) {
  .store-hero .hero-grid,
  .inner-hero .container-xl.hero-image-layout,
  .inner-hero.compact .container-xl.hero-image-layout,
  .not-found > div.not-found-grid {
    grid-template-columns: 1fr !important;
  }

  .store-hero .hero-grid {
    width: min(820px, calc(100% - 36px));
    gap: 34px;
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .store-hero .hero-copy {
    text-align: center;
  }

  .store-hero .hero-lead,
  .store-hero .hero-actions {
    margin-right: auto;
    margin-left: auto;
  }

  .store-hero .text-link {
    justify-content: center;
  }

  .store-hero .hero-stage {
    width: 100%;
    min-height: 430px;
  }

  .inner-hero,
  .inner-hero.compact {
    padding: 50px 0 !important;
  }

  .inner-hero .container-xl.hero-image-layout,
  .inner-hero.compact .container-xl.hero-image-layout {
    gap: 30px;
  }

  .inner-hero .hero-photo-shell,
  .inner-hero .hero-photo-compact,
  .inner-hero.compact .hero-photo-shell,
  .inner-hero.compact .hero-photo-compact {
    width: min(760px, 100%) !important;
    height: 300px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .not-found > div.not-found-grid {
    width: min(760px, calc(100% - 36px));
    gap: 30px;
  }

  .not-found .hero-photo-404 {
    height: 300px !important;
  }
}

@media (max-width: 575px) {
  .store-hero .hero-grid {
    width: calc(100% - 28px);
    padding-top: 42px;
    padding-bottom: 42px;
  }

  .store-hero .hero-stage {
    min-height: 330px;
    border-radius: 18px;
  }

  .store-hero .hero-orbit {
    width: 102px;
    height: 102px;
    font-size: .64rem;
  }

  .store-hero .hero-orbit strong {
    font-size: 1.15rem;
  }

  .store-hero .orbit-one { left: 12px; top: 12px; }
  .store-hero .orbit-two { right: 12px; top: 90px; }
  .store-hero .orbit-three { left: 20px; bottom: 12px; }
  .store-hero .hero-note { right: 18px; bottom: 18px; font-size: .9rem; }
  .store-hero .hero-note strong { font-size: 1.25rem; }

  .inner-hero,
  .inner-hero.compact {
    padding: 40px 0 !important;
  }

  .inner-hero .hero-photo-shell,
  .inner-hero .hero-photo-compact,
  .inner-hero.compact .hero-photo-shell,
  .inner-hero.compact .hero-photo-compact,
  .not-found .hero-photo-404 {
    height: 220px !important;
    border-radius: 14px;
  }

  .not-found > div.not-found-grid {
    width: calc(100% - 28px);
  }
}


/* HERO BACKGROUND IMAGE CORRECTION
   Real photos remain unchanged; only their placement is corrected.
   Each hero uses its existing photo as a centred cover background with a 70% black overlay. */
.store-hero,
.inner-hero,
.not-found {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #222 !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

.store-hero::before,
.inner-hero::before,
.not-found::before {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(0, 0, 0, .70) !important;
  opacity: 1 !important;
  pointer-events: none !important;
}

.store-hero::after,
.inner-hero::after,
.not-found::after {
  display: none !important;
  content: none !important;
}

/* Remove the separate photo-card treatment: the same photo now lives in the hero background. */
.store-hero .hero-stage,
.inner-hero .hero-photo-shell,
.not-found .hero-photo-shell {
  display: none !important;
}

/* Centre hero content over the background image. */
.store-hero .hero-grid,
.inner-hero .container-xl.hero-image-layout,
.not-found > div.not-found-grid {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: min(1180px, calc(100% - 40px)) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

.store-hero .hero-grid {
  min-height: 650px !important;
  padding: 90px 20px !important;
}

.store-hero .hero-copy,
.inner-hero .inner-hero-copy,
.not-found .not-found-copy {
  position: relative !important;
  z-index: 1 !important;
  width: min(920px, 100%) !important;
  max-width: 920px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
  align-items: center !important;
}

.inner-hero,
.inner-hero.compact {
  padding: 0 !important;
}

.inner-hero .container-xl.hero-image-layout {
  min-height: 390px !important;
  padding: 68px 20px !important;
}

.inner-hero.compact .container-xl.hero-image-layout {
  min-height: 310px !important;
  padding: 54px 20px !important;
}

.not-found > div.not-found-grid {
  min-height: 520px !important;
  padding: 72px 20px !important;
}

/* Contrast for text placed over the 70% overlay. */
.store-hero .hero-copy h1,
.store-hero .hero-lead,
.store-hero .eyebrow,
.store-hero .text-link,
.inner-hero .inner-hero-copy h1,
.inner-hero .inner-hero-copy p,
.inner-hero .inner-hero-copy .eyebrow,
.not-found .not-found-copy,
.not-found .not-found-copy h1,
.not-found .not-found-copy p,
.not-found .not-found-copy > span {
  color: #fff !important;
}

.store-hero .hero-lead,
.inner-hero .inner-hero-copy > p:last-child,
.not-found .not-found-copy p {
  color: rgba(255, 255, 255, .92) !important;
}

.store-hero .hero-copy h1::after {
  background: var(--brand-orange) !important;
}

.store-hero .text-link:hover,
.store-hero .text-link:focus-visible {
  color: var(--brand-orange) !important;
}

/* Keep the existing button style, only ensure the transparent secondary action is legible on the image. */
.store-hero .hero-secondary,
.not-found .vs-btn.style2 {
  border-color: #fff !important;
  color: #fff !important;
}

.store-hero .hero-secondary:hover,
.store-hero .hero-secondary:focus-visible,
.not-found .vs-btn.style2:hover,
.not-found .vs-btn.style2:focus-visible {
  border-color: var(--brand-magenta) !important;
  background: var(--brand-magenta) !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  .store-hero .hero-grid {
    min-height: 560px !important;
    padding: 64px 16px !important;
  }

  .inner-hero .container-xl.hero-image-layout,
  .inner-hero.compact .container-xl.hero-image-layout {
    min-height: 330px !important;
    padding: 54px 16px !important;
  }

  .not-found > div.not-found-grid {
    min-height: 460px !important;
    padding: 58px 16px !important;
  }
}

/* INTERNAL PAGE HERO HEIGHT ONLY
   Home hero is intentionally untouched and remains exactly at its pre-padding spacing. */
.inner-hero .container-xl.hero-image-layout {
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}

.inner-hero.compact .container-xl.hero-image-layout {
  padding-top: 104px !important;
  padding-bottom: 104px !important;
}

.not-found > div.not-found-grid {
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}

@media (max-width: 767px) {
  .inner-hero .container-xl.hero-image-layout,
  .inner-hero.compact .container-xl.hero-image-layout {
    padding-top: 90px !important;
    padding-bottom: 90px !important;
  }

  .not-found > div.not-found-grid {
    padding-top: 92px !important;
    padding-bottom: 92px !important;
  }
}


/* Homepage Shop What You Love: approved category-photo treatment */
.category-card.category-photo,
.category-card.category-photo:visited {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  color: #fff !important;
}
.category-card.category-photo::after {
  z-index: 1;
  border-color: rgba(255,255,255,.28) !important;
}
.category-card.category-photo .category-copy,
.category-card.category-photo .category-icon {
  z-index: 2;
}
.category-card.category-photo .category-copy strong {
  min-height: 2.4em;
  color: #fff !important;
}
.category-card.category-photo .category-copy small {
  color: rgba(255,255,255,.90) !important;
}
.category-card.category-photo .category-icon {
  background: rgba(255,255,255,.94) !important;
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}
.category-card.category-photo:hover,
.category-card.category-photo:focus-visible {
  color: #fff !important;
}
.card-gifts {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-gifts-gadgets.webp') !important;
}
.card-home {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-home-decor.webp') !important;
}
.card-mugs {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-mugs-glassware.webp') !important;
}
.card-books {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-books-stationery.webp') !important;
}
.card-leather {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-leather-accessories.webp') !important;
}
.card-toys {
  background-image: linear-gradient(rgba(0,0,0,.64), rgba(0,0,0,.64)), url('../images/category-toys-games-puzzles.webp') !important;
}


/* Homepage Just Arrived: approved real product photography */
#home-products .home-product-photo {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: #f3f0ed !important;
}
#home-products .home-product-photo::before,
#home-products .home-product-photo::after {
  display: none !important;
  content: none !important;
}
#home-products .home-product-photo .product-badge {
  z-index: 2;
}

/* FIX: Need a Gift cards - clean full-background imagery, no legacy circles */
.gift-finder .finder-grid {
  gap: 18px !important;
  border: 0 !important;
}
.gift-finder .finder-grid a.finder-card,
.gift-finder .finder-grid a.finder-card:visited {
  position: relative !important;
  isolation: isolate !important;
  min-height: 190px !important;
  padding: 26px !important;
  border: 1px solid var(--ft-line) !important;
  border-top: 4px solid var(--finder-accent, var(--brand-blue)) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background-color: #2a2a2a !important;
  background-image: var(--finder-bg) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
  color: #fff !important;
  box-shadow: var(--shadow-card) !important;
}
.gift-finder .finder-grid a.finder-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, rgba(0,0,0,.66) 0%, rgba(0,0,0,.48) 45%, rgba(0,0,0,.18) 100%) !important;
  pointer-events: none !important;
}
.gift-finder .finder-grid a.finder-card::after {
  display: none !important;
  content: none !important;
}
.gift-finder .finder-grid a.finder-card > * {
  position: relative !important;
  z-index: 2 !important;
}
.gift-finder .finder-grid a.finder-card > span:first-child {
  display: grid !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  place-items: center end !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--finder-accent) !important;
  font-family: var(--button-font) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
.gift-finder .finder-grid a.finder-card strong {
  max-width: 235px !important;
  color: #fff !important;
  font-family: var(--heading-font) !important;
  font-size: clamp(22px,2vw,30px) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}
.gift-finder .finder-grid a.finder-card .finder-arrow {
  display: grid !important;
  width: 42px !important;
  height: 42px !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--finder-accent) !important;
  font-family: Arial,sans-serif !important;
  font-size: 24px !important;
  line-height: 1 !important;
}
.gift-finder .finder-grid a.finder-card:hover,
.gift-finder .finder-grid a.finder-card:focus-visible {
  border-color: var(--finder-accent) !important;
  background-color: #2a2a2a !important;
  color: #fff !important;
  box-shadow: var(--shadow-card-hover) !important;
  transform: translateY(-4px) !important;
}
.finder-her { --finder-bg: url('../images/finder-her.webp'); }
.finder-him { --finder-bg: url('../images/finder-him.webp'); }
.finder-kids { --finder-bg: url('../images/finder-kids.webp'); }
.finder-home { --finder-bg: url('../images/finder-home.webp'); }
.finder-under-200 { --finder-bg: url('../images/finder-under-200.webp'); }
.finder-under-500 { --finder-bg: url('../images/finder-under-500.webp'); }

@media (max-width: 575px) {
  .gift-finder .finder-grid a.finder-card {
    min-height: 185px !important;
    padding: 22px !important;
  }
  .gift-finder .finder-grid a.finder-card strong {
    max-width: 190px !important;
    font-size: 22px !important;
  }
}


/* FINAL FIX: Need a Gift cards — clear full-width imagery with no inset/photo split */
.gift-finder .finder-grid a.finder-card,
.gift-finder .finder-grid a.finder-card:visited {
  background-position: var(--finder-position, center center) !important;
}
.gift-finder .finder-grid a.finder-card::before {
  background: linear-gradient(90deg, rgba(0,0,0,.54) 0%, rgba(0,0,0,.32) 42%, rgba(0,0,0,.08) 100%) !important;
}
.finder-her { --finder-bg: url('../images/finder-her.webp'); --finder-position: center center; }
.finder-him { --finder-bg: url('../images/finder-him.webp'); --finder-position: center 42%; }
.finder-kids { --finder-bg: url('../images/finder-kids.webp'); --finder-position: center 58%; }
.finder-home { --finder-bg: url('../images/finder-home.webp'); --finder-position: center 58%; }
.finder-under-200 { --finder-bg: url('../images/finder-under-200.webp'); --finder-position: center 40%; }
.finder-under-500 { --finder-bg: url('../images/finder-under-500.webp'); --finder-position: center center; }

/* FINAL OVERLAY CORRECTION: consistent black overlay across every Need a Gift card */
.gift-finder .finder-grid a.finder-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.50) !important;
  border: 0 !important;
  border-radius: inherit !important;
  pointer-events: none !important;
}
.gift-finder .finder-grid a.finder-card > * {
  position: relative !important;
  z-index: 2 !important;
}


/* RESTORE: Homepage Just Arrived product photos override generic placeholder background */
#home-products .product-card .home-product-photo {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
#home-products .product-card .home-product-photo::before,
#home-products .product-card .home-product-photo::after {
  display: none !important;
  content: none !important;
}

/* Homepage Our Story: approved warm gift-and-decor photography */
.story-section .story-visual {
  background-color: #241e1a !important;
  background-image: url('../images/story-gift-decor.webp') !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}
.story-section .story-visual .story-sun,
.story-section .story-visual .story-word {
  display: none !important;
}
.story-section .story-visual .story-card {
  right: 14px !important;
  bottom: 14px !important;
  min-width: 235px;
  padding: 22px 28px !important;
  background: #fff !important;
  color: var(--title-color) !important;
  border-radius: 10px !important;
  box-shadow: var(--shadow-card);
}
.story-section .story-visual .story-card small {
  font-size: 15px;
  line-height: 1.3;
}
.story-section .story-visual .story-card strong {
  margin-top: 6px;
  font-size: 31px;
  line-height: 1.05;
}
@media (max-width: 575px) {
  .story-section .story-visual {
    background-position: center center !important;
  }
  .story-section .story-visual .story-card {
    right: 12px !important;
    bottom: 12px !important;
    min-width: 205px;
    padding: 18px 22px !important;
  }
  .story-section .story-visual .story-card strong {
    font-size: 26px;
  }
}


/* CTA background image update */
.campaign-section {
  position: relative;
  overflow: hidden;
  background: #fff;
  isolation: isolate;
}
.campaign-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(250, 242, 234, 0.78);
  z-index: 0;
}
.campaign-section .campaign-inner {
  position: relative;
  z-index: 1;
}
@media (max-width: 767px) {
  .campaign-section {
    background-position: center center;
  }
  .campaign-section::before {
    background: rgba(250, 242, 234, 0.84);
  }
}

/* Permanent fixed header across every page */
site-header {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 10000 !important;
  display: block !important;
  width: 100% !important;
}

/* Preserve the page position that the header occupied before becoming fixed. */
#main {
  padding-top: 94px;
}

html {
  scroll-padding-top: 80px;
}

@media (max-width: 991px) {
  #main {
    padding-top: 88px;
  }
}

@media (max-width: 575px) {
  #main {
    padding-top: 0;
  }

  html {
    scroll-padding-top: 58px;
  }
}

/* Full-site real photography audit: product images and supporting content photography */
.product-card .product-visual.product-photo,
.product-visual.product-photo,
.cart-thumb.product-photo,
.mini-product.product-photo {
  background-image: var(--product-image) !important;
  background-color: #f7f4f0 !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: contain !important;
}
.product-card .product-visual.product-photo::before,
.product-card .product-visual.product-photo::after,
.product-visual.product-photo::before,
.product-visual.product-photo::after,
.cart-thumb.product-photo::before,
.cart-thumb.product-photo::after,
.mini-product.product-photo::before,
.mini-product.product-photo::after {
  display: none !important;
  content: none !important;
}
.product-card .product-visual.product-photo {
  min-height: 320px;
  padding: 14px;
  background-origin: content-box !important;
}
.shop-page-heritage .shop-product-card .product-visual.product-photo {
  min-height: 390px !important;
  padding: 16px !important;
  background-origin: content-box !important;
}
.product-card .product-badge,
.product-detail-photo-frame .product-badge {
  z-index: 3;
}
.cart-thumb.product-photo {
  width: 105px;
  height: 105px;
  min-height: 105px;
  aspect-ratio: 1 / 1;
  padding: 0;
  background-origin: border-box !important;
  background-size: cover !important;
  background-position: center center !important;
  border: 1px solid var(--border-color);
  overflow: hidden;
}
.mini-product.product-photo {
  width: 55px;
  height: 55px;
  padding: 4px;
  background-origin: content-box !important;
  border: 1px solid rgba(255,255,255,.14);
}
.store-cart-drawer .mini-product.product-photo {
  border-color: var(--border-color);
}
.product-detail-photo-frame {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 680px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--border-color);
  border-radius: 16px;
  background: #f7f4f0;
  padding: clamp(18px, 3vw, 42px);
}
.product-detail-photo {
  display: block;
  width: 100%;
  height: 620px;
  object-fit: contain;
  object-position: center center;
}
.product-detail-photo-frame .product-badge {
  position: absolute;
  top: 20px;
  left: 20px;
}

/* About page: replace the abstract placeholder with a real shop photograph. */
.about-page .editorial-photo {
  min-height: 560px;
  margin: 0;
  overflow: hidden;
  border-radius: 50% 50% 8px 8px;
  background: #f3eee8;
}
.about-page .editorial-photo img {
  display: block;
  width: 100%;
  height: 560px;
  object-fit: cover;
  object-position: center center;
}

/* About page: align the How It Began image with the full text-column height. */
.about-page .how-it-began-contact {
  margin-top: 28px;
}

@media (min-width: 992px) {
  .about-page .content-split {
    align-items: stretch;
  }
  .about-page .editorial-photo {
    min-height: 0;
    height: 100%;
  }
  .about-page .editorial-photo img {
    min-height: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Events: clearly visible real photography while preserving the existing card layout. */
.event-card .event-photo {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f2eee9;
}
.event-card .event-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.events-page .memory-grid article {
  aspect-ratio: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--border-color);
  border-radius: 14px;
  background: #fff !important;
  color: var(--title-color) !important;
}
.events-page .memory-photo {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f2eee9;
}
.events-page .memory-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.events-page .memory-copy {
  display: flex;
  min-height: 118px;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
}
.events-page .memory-grid .memory-type {
  color: var(--theme-color) !important;
}
.events-page .memory-grid strong {
  color: var(--title-color) !important;
}

/* Replace the earlier generated CTA artwork with real stock photography. */
.campaign-section {
  background-image: none !important;
  background-size: cover !important;
  background-position: center center !important;
}

@media (max-width: 991px) {
  .shop-page-heritage .shop-product-card .product-visual.product-photo,
  .product-card .product-visual.product-photo {
    min-height: 330px !important;
  }
  .product-detail-photo-frame {
    min-height: 560px;
  }
  .product-detail-photo {
    height: 510px;
  }
}
@media (max-width: 575px) {
  .product-card .product-visual.product-photo,
  .shop-page-heritage .shop-product-card .product-visual.product-photo {
    min-height: 260px !important;
    padding: 10px !important;
  }
  .cart-thumb.product-photo {
    width: 80px;
    height: 80px;
    min-height: 80px;
  }
  .product-detail-photo-frame {
    min-height: 420px;
    padding: 16px;
  }
  .product-detail-photo {
    height: 380px;
  }
  .about-page .editorial-photo,
  .about-page .editorial-photo img {
    min-height: 410px;
    height: 410px;
  }
}


/* FINAL RESTORE: Home Just Arrived images must remain visible after full-site product-photo audit */
#home-products .product-card .product-visual.home-product-photo {
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: contain !important;
  background-color: #f7f4f0 !important;
  background-origin: padding-box !important;
  padding: 0 !important;
}
#home-products .product-card .product-visual.home-product-photo::before,
#home-products .product-card .product-visual.home-product-photo::after {
  display: none !important;
  content: none !important;
}

/* Contact hero image framing: keep the top of the support photo visible. */
.contact-hero {
  background-position: center top !important;
}

/* Questionnaire-aligned mission, vision and customer promise. */
.brand-foundations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}.brand-foundations-grid article{padding:30px;border:1px solid var(--ft-line,#e5e5e5);background:#fff;border-radius:12px}.brand-foundations-grid article>span{display:inline-block;margin-bottom:16px;color:var(--brand-blue,#168EBB);font-family:var(--button-font);font-size:12px;font-weight:700;letter-spacing:.12em}.brand-foundations-grid h3{margin-bottom:12px;font-family:var(--heading-font);font-size:clamp(24px,2.5vw,32px);font-style:italic;font-weight:600}.brand-foundations-grid p{margin:0;line-height:1.75}@media(max-width:991px){.brand-foundations-grid{grid-template-columns:1fr}}


/* PERMANENT HOME PRODUCT IMAGE FIX: use img elements so later background rules cannot hide them */
#home-products .product-card .product-visual.home-product-photo {
  position: relative !important;
  display: block !important;
  min-height: 320px !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #f7f4f0 !important;
}
#home-products .product-card .home-product-img {
  display: block !important;
  width: 100% !important;
  height: 320px !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f7f4f0 !important;
}
#home-products .product-card .product-visual.home-product-photo::before,
#home-products .product-card .product-visual.home-product-photo::after {
  display: none !important;
  content: none !important;
}
#home-products .product-card .product-visual.home-product-photo .product-badge {
  position: absolute !important;
  z-index: 3 !important;
}
@media (max-width: 767px) {
  #home-products .product-card .product-visual.home-product-photo,
  #home-products .product-card .home-product-img {
    min-height: 280px !important;
    height: 280px !important;
  }
}


/* HOME JUST ARRIVED — restore the previously approved equal-size 4:5 product imagery. */
#home-products .product-card .product-visual.home-product-photo {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #f3f0ed !important;
  border-radius: var(--radius-media) !important;
}
#home-products .product-card .home-product-img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  background: #f3f0ed !important;
}
#home-products .product-card .product-visual.home-product-photo::before,
#home-products .product-card .product-visual.home-product-photo::after {
  display: none !important;
  content: none !important;
}
#home-products .product-card .product-visual.home-product-photo .product-badge {
  position: absolute !important;
  z-index: 3 !important;
}

/* Home Events & Workshops: use the approved Squirrels & Splatter brand palette. */
.events-preview .event-grid .event-card:nth-child(1) .event-date {
  background: #168EBB !important;
  color: #fff !important;
}
.events-preview .event-grid .event-card:nth-child(2) .event-date {
  background: #F5A800 !important;
  color: #fff !important;
}
.events-preview .event-grid .event-card:nth-child(3) .event-date {
  background: #E40076 !important;
  color: #fff !important;
}
.events-preview .event-grid .event-card:nth-child(1) .event-date strong,
.events-preview .event-grid .event-card:nth-child(1) .event-date span,
.events-preview .event-grid .event-card:nth-child(3) .event-date strong,
.events-preview .event-grid .event-card:nth-child(3) .event-date span {
  color: #fff !important;
}
.events-preview .event-grid .event-card:nth-child(2) .event-date strong,
.events-preview .event-grid .event-card:nth-child(2) .event-date span {
  color: #fff !important;
}

/* SHOP PRODUCT IMAGES — final uniform treatment using the existing approved photos. */
.shop-page-heritage .shop-product-card .product-visual.shop-product-image-frame,
.shop-product-card .product-visual.shop-product-image-frame {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #f7f4f0 !important;
  border: 1px solid #efefef !important;
  border-radius: 12px !important;
}
.shop-page-heritage .shop-product-card .product-visual.shop-product-image-frame::before,
.shop-page-heritage .shop-product-card .product-visual.shop-product-image-frame::after,
.shop-product-card .product-visual.shop-product-image-frame::before,
.shop-product-card .product-visual.shop-product-image-frame::after {
  display: none !important;
  content: none !important;
}
.shop-page-heritage .shop-product-card .shop-product-img,
.shop-product-card .shop-product-img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 12px !important;
}
.shop-page-heritage .shop-product-card .product-visual.shop-product-image-frame .product-badge,
.shop-product-card .product-visual.shop-product-image-frame .product-badge {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  z-index: 4 !important;
}
@media (max-width: 767px) {
  .shop-page-heritage .shop-product-card .product-visual.shop-product-image-frame,
  .shop-product-card .product-visual.shop-product-image-frame {
    aspect-ratio: 4 / 5 !important;
  }
}

/* FINAL SINGLE PRODUCT IMAGE SIZE FIX
   Keep the existing product photos unchanged, but let them use the full media panel. */
#product-detail .product-detail-grid .product-detail-photo-frame {
  width: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 5 !important;
  padding: 0 !important;
  place-items: stretch !important;
  overflow: hidden !important;
  background: #f7f4f0 !important;
}

#product-detail .product-detail-grid .product-detail-photo {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
}

#product-detail .product-detail-photo-frame .product-badge {
  top: 14px !important;
  left: 14px !important;
}

@media (max-width: 991px) {
  #product-detail .product-detail-grid .product-detail-photo-frame {
    aspect-ratio: 4 / 5 !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  #product-detail .product-detail-grid .product-detail-photo {
    height: 100% !important;
  }
}

@media (max-width: 575px) {
  #product-detail .product-detail-grid .product-detail-photo-frame {
    aspect-ratio: 4 / 5 !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  #product-detail .product-detail-grid .product-detail-photo {
    height: 100% !important;
  }
}

/* SINGLE PRODUCT TEMPLATE — image cover + brand-aligned typography and colour system */
#product-detail .product-detail-grid {
  gap: clamp(42px, 6vw, 78px) !important;
  align-items: start !important;
}

/* Main product media: keep the exact source image, but make it fill the frame edge-to-edge. */
#product-detail .product-detail-grid .product-gallery {
  width: 100% !important;
}
#product-detail .product-detail-grid .product-detail-photo-frame {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--ft-line) !important;
  border-radius: 12px !important;
  background: #f7f7f7 !important;
}
#product-detail .product-detail-grid .product-detail-photo {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 0 !important;
}
#product-detail .product-detail-photo-frame .product-badge {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  z-index: 4 !important;
  padding: 8px 12px !important;
  border-radius: 10px !important;
  background: var(--brand-magenta) !important;
  color: #fff !important;
  font-family: var(--button-font) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}

/* Product copy follows the same brand hierarchy as the rest of the site. */
#product-detail .product-summary {
  padding-top: 8px !important;
  color: var(--ft-copy) !important;
}
#product-detail .product-summary .product-category {
  margin: 0 0 8px !important;
  color: var(--brand-blue) !important;
  font-family: var(--subheading-font) !important;
  font-size: clamp(29px, 3vw, 38px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: capitalize !important;
}
#product-detail .product-summary h1 {
  margin: 0 0 14px !important;
  color: var(--ft-ink) !important;
  font-family: var(--heading-font) !important;
  font-size: clamp(36px, 4.2vw, 52px) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}
#product-detail .detail-price {
  margin: 0 0 14px !important;
  color: var(--brand-magenta) !important;
  font-family: var(--heading-font) !important;
  font-size: 24px !important;
  font-style: normal !important;
  font-weight: 700 !important;
}
#product-detail .stock-state {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 20px !important;
  color: var(--brand-blue) !important;
  font-family: var(--read-font) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}
#product-detail .product-description {
  margin: 0 0 16px !important;
  color: var(--ft-copy) !important;
  font-family: var(--read-font) !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
}
#product-detail .product-sku {
  margin: 0 !important;
  color: #777 !important;
  font-family: var(--read-font) !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

#product-detail .purchase-row {
  grid-template-columns: auto 84px minmax(180px, 1fr) !important;
  gap: 12px !important;
  margin: 28px 0 24px !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid var(--ft-line) !important;
}
#product-detail .purchase-row label {
  color: var(--ft-ink) !important;
  font-family: var(--button-font) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
#product-detail .purchase-row input {
  height: 52px !important;
  border: 1px solid var(--ft-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--ft-ink) !important;
}
#product-detail .purchase-row .vs-btn {
  min-height: 52px !important;
  border-radius: 10px !important;
}

#product-detail .delivery-points {
  margin: 0 !important;
}
#product-detail .delivery-points li {
  grid-template-columns: 32px 1fr !important;
  gap: 10px !important;
  padding: 17px 0 !important;
  border-top: 1px solid var(--ft-line) !important;
  color: var(--ft-copy) !important;
  font-family: var(--read-font) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}
#product-detail .delivery-points i {
  color: var(--brand-blue) !important;
}
#product-detail .delivery-points strong {
  margin-bottom: 3px !important;
  color: var(--ft-ink) !important;
  font-family: var(--heading-font) !important;
  font-size: 15px !important;
  font-style: normal !important;
  font-weight: 600 !important;
}
#product-detail .delivery-points a {
  color: var(--brand-blue) !important;
  font-weight: 600 !important;
}

/* Supporting information cards use the same clean white/brand-accent treatment as the site. */
#product-detail + .product-tabs,
.product-tabs {
  gap: 18px !important;
  margin-top: 64px !important;
}
.product-tabs article {
  position: relative !important;
  padding: 28px !important;
  border: 1px solid var(--ft-line) !important;
  border-radius: 12px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.product-tabs article::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: var(--brand-blue) !important;
}
.product-tabs article:nth-child(2)::before { background: var(--brand-orange) !important; }
.product-tabs article:nth-child(3)::before { background: var(--brand-magenta) !important; }
.product-tabs h2 {
  margin: 0 0 12px !important;
  color: var(--ft-ink) !important;
  font-family: var(--heading-font) !important;
  font-size: clamp(24px, 2.6vw, 32px) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
}
.product-tabs p {
  margin: 0 !important;
  color: var(--ft-copy) !important;
  font-family: var(--read-font) !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
}

/* Keep the product page hero and breadcrumb aligned with the rest of the internal pages. */
.product-page-hero h1 {
  color: #fff !important;
  font-family: var(--heading-font) !important;
  font-style: italic !important;
  font-weight: 600 !important;
}
.breadcrumb-bar,
.breadcrumb-bar a,
.breadcrumb-bar span {
  font-family: var(--read-font) !important;
}
.breadcrumb-bar a:hover { color: var(--brand-blue) !important; }

@media (max-width: 991px) {
  #product-detail .product-detail-grid {
    gap: 38px !important;
  }
  #product-detail .product-detail-grid .product-detail-photo-frame {
    aspect-ratio: 4 / 5 !important;
  }
  #product-detail .purchase-row {
    grid-template-columns: auto 84px 1fr !important;
  }
}

@media (max-width: 575px) {
  #product-detail .product-detail-grid .product-detail-photo-frame {
    aspect-ratio: 4 / 5 !important;
  }
  #product-detail .product-summary .product-category {
    font-size: 30px !important;
  }
  #product-detail .product-summary h1 {
    font-size: clamp(32px, 10vw, 40px) !important;
  }
  #product-detail .purchase-row {
    grid-template-columns: 1fr 80px !important;
  }
  #product-detail .purchase-row .vs-btn {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
  .product-tabs {
    margin-top: 42px !important;
  }
}


/* Single-product related cards: keep price and cart button centred together. */
.product-page #home-products .product-meta {
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
}
.product-page #home-products .product-price {
  margin: 0 !important;
}
.product-page #home-products .quick-add {
  flex: 0 0 38px !important;
  margin: 0 !important;
}

/* Pink icon update - requested sections only */
.benefits-section .benefit-grid article > span,
.about-page .benefit-grid article > span,
.shop-trust-section .shop-trust-grid i,
.contact-cards article > i {
  color: #E40076 !important;
}

/* Contact Us left-side block subheadings */
.contact-cards article > span {
  color: #168EBB !important;
}


/* About Us — meaningful Mission, Vision and Promise icons. */
.brand-foundations-grid article > span.foundation-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border: 1px solid rgba(228,0,118,.22);
  border-radius: 50%;
  background: rgba(228,0,118,.08);
  color: var(--brand-magenta,#E40076);
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0;
}
.brand-foundations-grid article > span.foundation-icon i {
  color: inherit;
  font-size: inherit;
}

/* About page: let the What Matters to Us heading use the full section width. */
.about-page .what-matters-section .title-area {
  max-width: none;
}

.about-page .what-matters-section .title-area p {
  max-width: 700px;
  margin-right: auto;
  margin-left: auto;
}

/* About page closing CTA: image-backed call to action with 70% dark overlay. */
.about-page .closing-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 120px 0;
  background: #fff;
}

.about-page .closing-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0.70);
}

.about-page .closing-cta .container-xl {
  position: relative;
  z-index: 1;
}

.about-page .closing-cta .sec-subtitle {
  color: var(--brand-magenta);
}

.about-page .closing-cta h2 {
  color: #fff;
}

.about-page .closing-cta .vs-btn.style2 {
  border-color: var(--brand-blue) !important;
  background: rgba(255, 255, 255, .94) !important;
  color: var(--brand-blue) !important;
}

.about-page .closing-cta .vs-btn.style2:hover,
.about-page .closing-cta .vs-btn.style2:focus-visible {
  border-color: var(--brand-magenta) !important;
  background: var(--brand-magenta) !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  .about-page .closing-cta {
    padding: 90px 0;
    background-position: 28% center;
  }
}

/* About page CTA video framing only. The About hero intentionally uses the
   same shared internal-page hero layout and video framing as the other pages. */
.about-page .closing-cta .sitewide-cta-video {
  object-fit: cover !important;
  object-position: center 38% !important;
}

@media (max-width: 575px) {
  .about-page .closing-cta .sitewide-cta-video {
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* About page: tighten the transition between What Matters to Us and Our Direction. */
.about-page .what-matters-section {
  padding-bottom: 55px;
}

.about-page .brand-foundations {
  padding-top: 55px;
}

@media (max-width: 767px) {
  .about-page .what-matters-section {
    padding-bottom: 40px;
  }

  .about-page .brand-foundations {
    padding-top: 40px;
  }
}

/* About page closing CTA: full-width heading with supporting copy. */
.about-page .closing-cta h2 {
  width: 100%;
  max-width: none;
  margin-right: auto;
  margin-bottom: 1.25rem;
  margin-left: auto;
}

.about-page .closing-cta .cta-description {
  max-width: 760px;
  margin: 0 auto 2.2rem;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--body-font);
  font-size: 1.05rem;
  line-height: 1.75;
}

@media (max-width: 767px) {
  .about-page .closing-cta .cta-description {
    max-width: 620px;
    margin-bottom: 1.8rem;
    font-size: 1rem;
    line-height: 1.65;
  }
}


/* Site-wide standalone CTA styling: match the About page image CTA. */
.campaign-section,
.shop-enquiry-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 120px 0;
  background: #fff;
  text-align: center;
}

.campaign-section::before,
.shop-enquiry-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(0, 0, 0, 0.70);
}

.campaign-section .campaign-inner,
.shop-enquiry-section > .container-xl {
  position: relative;
  z-index: 1;
}

.campaign-section .campaign-inner {
  display: block;
  width: 100%;
  max-width: 1320px;
}

.campaign-section .campaign-inner > div:first-child,
.shop-enquiry-section .shop-enquiry-inner > div {
  width: 100%;
  max-width: none;
}

.campaign-section .sec-subtitle,
.shop-enquiry-section .shop-enquiry-inner .eyebrow {
  margin-bottom: 12px;
  color: var(--brand-magenta);
}

.campaign-section h2,
.shop-enquiry-section .shop-enquiry-inner h2 {
  width: 100%;
  max-width: none;
  margin: 0 auto 1.25rem;
  color: #fff;
  font-size: clamp(34px, 4.5vw, 52px);
  line-height: 1.12;
  text-align: center;
}

.campaign-section p,
.shop-enquiry-section .shop-enquiry-inner > div > p:not(.eyebrow) {
  max-width: 760px;
  margin: 0 auto 2.2rem;
  color: rgba(255, 255, 255, 0.90);
  font-family: var(--body-font);
  font-size: 1.05rem;
  line-height: 1.75;
  text-align: center;
}

.shop-enquiry-section .shop-enquiry-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.campaign-section .vs-btn,
.shop-enquiry-section .vs-btn {
  margin-top: 0;
}

@media (max-width: 767px) {
  .campaign-section,
  .shop-enquiry-section {
    padding: 90px 0;
    background-position: 28% center;
  }

  .campaign-section p,
  .shop-enquiry-section .shop-enquiry-inner > div > p:not(.eyebrow) {
    max-width: 620px;
    margin-bottom: 1.8rem;
    font-size: 1rem;
    line-height: 1.65;
  }
}

/* Events page upcoming cards: use the approved Squirrels & Splatter brand palette. */
.events-page #upcoming .event-grid .event-card:nth-child(1) .event-date {
  background: #168EBB !important;
  color: #fff !important;
}
.events-page #upcoming .event-grid .event-card:nth-child(2) .event-date {
  background: #F5A800 !important;
  color: #fff !important;
}
.events-page #upcoming .event-grid .event-card:nth-child(3) .event-date {
  background: #E40076 !important;
  color: #fff !important;
}
.events-page #upcoming .event-grid .event-card .event-date strong,
.events-page #upcoming .event-grid .event-card .event-date span {
  color: #fff !important;
}

/* Events page: tighten spacing between Upcoming Events and Past Event Highlights only. */
.events-page #upcoming {
  padding-bottom: 50px;
}

.events-page #past {
  padding-top: 50px;
}

@media (max-width: 767px) {
  .events-page #upcoming {
    padding-bottom: 36px;
  }

  .events-page #past {
    padding-top: 36px;
  }
}

/* Events page: past highlight labels use the site subheading font without changing size. */
.events-page .memory-grid .memory-type {
  font-family: var(--subheading-font) !important;
  font-style: normal;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}


/* Events page closing CTA: match the established sitewide image-backed CTA style. */
.events-page .events-closing-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 120px 0;
  background: #fff;
  text-align: center;
}

.events-page .events-closing-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0.70);
}

.events-page .events-closing-cta .container-xl {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  padding-left: clamp(24px, 5vw, 80px);
  padding-right: clamp(24px, 5vw, 80px);
}

.events-page .events-closing-cta h2 {
  display: block;
  width: 100%;
  max-width: none !important;
  margin: 0 auto 1.25rem;
  color: #fff;
  font-size: clamp(34px, 4.5vw, 52px);
  line-height: 1.12;
}

.events-page .events-closing-cta .cta-description {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0 0 2.2rem;
  color: rgba(255, 255, 255, 0.90);
  font-family: var(--body-font);
  font-size: 1.05rem;
  line-height: 1.75;
}

.events-page .events-closing-cta .vs-btn.style2 {
  border-color: #fff !important;
  background: transparent !important;
  color: #fff !important;
}

.events-page .events-closing-cta .vs-btn.style2:hover,
.events-page .events-closing-cta .vs-btn.style2:focus-visible {
  border-color: #fff !important;
  background: #fff !important;
  color: var(--ft-ink) !important;
}

@media (max-width: 767px) {
  .events-page .events-closing-cta {
    padding: 90px 0;
    background-position: 28% center;
  }

  .events-page .events-closing-cta .cta-description {
    width: 100%;
    max-width: none;
    margin-bottom: 1.8rem;
    font-size: 1rem;
    line-height: 1.65;
  }
}

/* Events page: improve readability of script category labels without changing layout. */
.events-page .event-type,
.events-page .memory-grid .memory-type {
  font-size: 22px !important;
  line-height: 1.25;
}

/* Events page: turn upcoming-event text links into proper CTA buttons. */
.events-page #upcoming .event-card .event-card-btn {
  margin-top: 12px;
  color: #fff !important;
  font-family: var(--button-font) !important;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* About page CTA: allow heading and description to use the full CTA width. */
.about-page .closing-cta .container-xl {
  width: 100%;
  max-width: none;
  padding-right: clamp(24px, 4vw, 64px);
  padding-left: clamp(24px, 4vw, 64px);
}

.about-page .closing-cta h2,
.about-page .closing-cta .cta-description {
  width: 100%;
  max-width: none;
}

/* Announcement bar: approved Squirrels & Splatter logo blue. */
.announcement {
  background: #168EBB !important;
}

.announcement-detail {
  color: #fff;
}


/* Footer refinements: Column 1 text/social styling and updated quick links structure. */
.footer-info > p {
  color: var(--ft-copy) !important;
}
.footer-info .footer-social a {
  border: 1px solid #E40076 !important;
  border-radius: 50% !important;
  color: #E40076 !important;
}
.footer-info .footer-social a:hover,
.footer-info .footer-social a:focus-visible {
  border-color: #E40076 !important;
  background: #E40076 !important;
  color: #fff !important;
}

/* HOME HERO — final centered full-width background treatment. */
.home-split-hero {
  position: relative !important;
  isolation: isolate !important;
  min-height: 660px !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  background-image: none !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.home-split-hero::before {
  content: none !important;
  display: none !important;
  background: transparent !important;
}
.home-split-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: transparent !important;
}
.home-split-hero .hero-bg-video {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  pointer-events: none !important;
  filter: saturate(1.08) contrast(1.05) !important;
}
.home-split-hero .hero-grid {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  place-items: center end !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 660px !important;
  margin: 0 !important;
  padding: 92px clamp(24px, 6vw, 96px) !important;
  gap: 0 !important;
  text-align: right !important;
}
.home-split-hero .hero-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  width: min(900px, 100%) !important;
  max-width: 900px !important;
  margin: 0 0 0 auto !important;
  padding: 0 !important;
  text-align: right !important;
}
.home-split-hero .eyebrow {
  margin: 0 0 14px !important;
  color: #fff !important;
  text-align: right !important;
}
.home-split-hero .hero-copy h1 {
  width: 100% !important;
  max-width: 900px !important;
  margin: 0 0 24px auto !important;
  font-family: var(--heading-font) !important;
  font-size: clamp(44px, 5.2vw, 70px) !important;
  line-height: 1.04 !important;
  font-style: italic !important;
  font-weight: 600 !important;
  letter-spacing: -.035em !important;
  white-space: normal !important;
  text-align: right !important;
}
.home-split-hero .hero-copy h1::after {
  display: none !important;
  content: none !important;
}
.home-split-hero .hero-copy h1 span {
  display: block !important;
}
.home-split-hero .hero-title-blue {
  color: #E40076 !important;
}
.home-split-hero .hero-title-pink {
  color: #E40076 !important;
}
.home-split-hero .hero-lead {
  width: 100% !important;
  max-width: 700px !important;
  margin: 0 0 30px auto !important;
  color: #fff !important;
  font-size: 17px !important;
  line-height: 1.75 !important;
  text-align: right !important;
}
.home-split-hero .hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 20px auto !important;
}
.home-split-hero .hero-actions .vs-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 215px !important;
}
.home-split-hero .hero-actions .vs-btn:first-child {
  background: #E40076 !important;
  border-color: #E40076 !important;
  color: #fff !important;
}
.home-split-hero .hero-actions .vs-btn:first-child:hover,
.home-split-hero .hero-actions .vs-btn:first-child:focus-visible {
  background: #168EBB !important;
  border-color: #168EBB !important;
  color: #fff !important;
}
.home-split-hero .hero-secondary {
  background: #fff !important;
  border: 1px solid #168EBB !important;
  color: #168EBB !important;
}
.home-split-hero .hero-secondary:hover,
.home-split-hero .hero-secondary:focus-visible {
  background: #E40076 !important;
  border-color: #E40076 !important;
  color: #fff !important;
}
.home-split-hero .text-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 0 0 auto !important;
  color: #fff !important;
  text-align: right !important;
}
.home-split-hero .text-link:hover,
.home-split-hero .text-link:focus-visible {
  color: #E40076 !important;
}
.home-split-hero .hero-stage,
.home-split-hero .hero-orbit,
.home-split-hero .hero-note {
  display: none !important;
}

@media (max-width: 991px) {
  .home-split-hero,
  .home-split-hero .hero-grid {
    min-height: 600px !important;
  }
  .home-split-hero .hero-grid {
    padding: 72px 24px !important;
  }
  .home-split-hero .hero-copy h1 {
    font-size: clamp(40px, 8vw, 58px) !important;
  }
}

@media (max-width: 575px) {
  .home-split-hero,
  .home-split-hero .hero-grid {
    min-height: 560px !important;
  }
  .home-split-hero {
    background-position: 62% center !important;
  }
  .home-split-hero .hero-bg-video {
    object-position: 62% center !important;
  }
  .home-split-hero::before {
    content: none !important;
    display: none !important;
    background: transparent !important;
  }
  .home-split-hero .hero-grid {
    place-items: center !important;
    padding: 58px 18px !important;
    text-align: center !important;
  }
  .home-split-hero .hero-copy {
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto !important;
    text-align: center !important;
  }
  .home-split-hero .eyebrow {
    text-align: center !important;
  }
  .home-split-hero .hero-copy h1 {
    margin-right: auto !important;
    margin-left: auto !important;
    font-size: clamp(34px, 10.5vw, 46px) !important;
    text-align: center !important;
  }
  .home-split-hero .hero-lead {
    margin-right: auto !important;
    margin-left: auto !important;
    font-size: 16px !important;
    text-align: center !important;
  }
  .home-split-hero .hero-actions {
    display: grid !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 420px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .home-split-hero .hero-actions .vs-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}



/* Stock labels: make in-stock amount stand out a bit more on product cards */
.shop-product-card .product-stock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 2px 0 12px;
  padding: 6px 12px;
  border: 1px solid rgba(22, 142, 187, 0.20);
  border-radius: 999px;
  background: rgba(22, 142, 187, 0.08);
  color: var(--brand-blue);
  font-family: var(--body-font);
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  line-height: 1;
}

/* Home events preview: match Events page script labels exactly. */
.events-preview .event-type {
  font-family: var(--subheading-font) !important;
  font-size: 22px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}


/* Home event card links use the standard site button treatment. */
.events-preview .event-card .event-card-btn {
  display: inline-flex !important;
  width: auto !important;
  margin-top: 8px;
  color: #fff !important;
}
.events-preview .event-card .event-card-btn:hover,
.events-preview .event-card .event-card-btn:focus-visible {
  color: #fff !important;
}

/* Shipping & Delivery page refresh */
.shipping-page .inner-hero.compact .container-xl.hero-image-layout {
  min-height: 300px !important;
  padding-top: 78px !important;
  padding-bottom: 78px !important;
}
.shipping-page .inner-hero .inner-hero-copy {
  width: min(760px, 100%) !important;
  max-width: 760px !important;
}
.shipping-page .inner-hero .inner-hero-copy h1 {
  max-width: 760px;
  margin: 0 auto !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.02em;
}
.shipping-page .shipping-content {
  padding-top: 82px !important;
  padding-bottom: 92px !important;
  background: #fafafa;
}
.shipping-page .shipping-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.shipping-page .shipping-info-card {
  position: relative;
  overflow: hidden;
  min-height: 250px;
  padding: 30px;
  border: 1px solid rgba(51, 51, 51, .08);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease;
}
.shipping-page .shipping-info-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--brand-blue);
}
.shipping-page .shipping-info-card:nth-child(3n + 2)::before {
  background: var(--brand-magenta);
}
.shipping-page .shipping-info-card:nth-child(3n + 3)::before {
  background: var(--brand-orange);
}
.shipping-page .shipping-info-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}
.shipping-page .shipping-info-icon {
  display: inline-grid;
  width: 50px;
  height: 50px;
  margin-bottom: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(22, 142, 187, .09);
  color: var(--brand-blue);
  font-size: 21px;
}
.shipping-page .shipping-info-card:nth-child(3n + 2) .shipping-info-icon {
  background: rgba(228, 0, 118, .08);
  color: var(--brand-magenta);
}
.shipping-page .shipping-info-card:nth-child(3n + 3) .shipping-info-icon {
  background: rgba(245, 168, 0, .10);
  color: #d99300;
}
.shipping-page .shipping-info-card h2 {
  margin: 0 0 12px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 22px !important;
  font-style: italic;
  font-weight: 600;
  line-height: 1.3;
}
.shipping-page .shipping-info-card p {
  margin: 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 991px) {
  .shipping-page .shipping-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .shipping-page .inner-hero.compact .container-xl.hero-image-layout {
    min-height: 250px !important;
    padding-top: 62px !important;
    padding-bottom: 62px !important;
  }
  .shipping-page .inner-hero .inner-hero-copy h1 {
    font-size: clamp(32px, 9vw, 40px) !important;
  }
  .shipping-page .shipping-content {
    padding-top: 58px !important;
    padding-bottom: 64px !important;
  }
  .shipping-page .shipping-info-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .shipping-page .shipping-info-card {
    min-height: 0;
    padding: 25px;
  }
  .shipping-page .shipping-info-card h2 {
    font-size: 20px !important;
  }
  .shipping-page .shipping-info-card p {
    font-size: 15px;
  }
}


/* Returns & Refunds page refresh */
.returns-page .inner-hero.compact .container-xl.hero-image-layout {
  min-height: 300px !important;
  padding-top: 78px !important;
  padding-bottom: 78px !important;
}
.returns-page .inner-hero .inner-hero-copy {
  width: min(760px, 100%) !important;
  max-width: 760px !important;
}
.returns-page .inner-hero .inner-hero-copy h1 {
  max-width: 760px;
  margin: 0 auto !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.02em;
}
.returns-page .returns-content {
  padding-top: 82px !important;
  padding-bottom: 92px !important;
  background: #fafafa;
}
.returns-page .returns-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
.returns-page .returns-info-card {
  position: relative;
  overflow: hidden;
  min-height: 245px;
  padding: 30px;
  border: 1px solid rgba(51, 51, 51, .08);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease;
}
.returns-page .returns-info-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--brand-blue);
}
.returns-page .returns-info-card:nth-child(2)::before,
.returns-page .returns-info-card:nth-child(4)::before {
  background: var(--brand-magenta);
}
.returns-page .returns-info-card:nth-child(3)::before {
  background: var(--brand-orange);
}
.returns-page .returns-info-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}
.returns-page .returns-info-icon {
  display: inline-grid;
  width: 50px;
  height: 50px;
  margin-bottom: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(22, 142, 187, .09);
  color: var(--brand-blue);
  font-size: 21px;
}
.returns-page .returns-info-card:nth-child(2) .returns-info-icon,
.returns-page .returns-info-card:nth-child(4) .returns-info-icon {
  background: rgba(228, 0, 118, .08);
  color: var(--brand-magenta);
}
.returns-page .returns-info-card:nth-child(3) .returns-info-icon {
  background: rgba(245, 168, 0, .10);
  color: #d99300;
}
.returns-page .returns-info-card h2 {
  margin: 0 0 12px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 22px !important;
  font-style: italic;
  font-weight: 600;
  line-height: 1.3;
}
.returns-page .returns-info-card p {
  margin: 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 767px) {
  .returns-page .inner-hero.compact .container-xl.hero-image-layout {
    min-height: 250px !important;
    padding-top: 62px !important;
    padding-bottom: 62px !important;
  }
  .returns-page .inner-hero .inner-hero-copy h1 {
    font-size: clamp(32px, 9vw, 40px) !important;
  }
  .returns-page .returns-content {
    padding-top: 58px !important;
    padding-bottom: 64px !important;
  }
  .returns-page .returns-info-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .returns-page .returns-info-card {
    min-height: 0;
    padding: 25px;
  }
  .returns-page .returns-info-card h2 {
    font-size: 20px !important;
  }
  .returns-page .returns-info-card p {
    font-size: 15px;
  }
}


/* Payment Information page refresh */
.payment-page .inner-hero.compact .container-xl.hero-image-layout {
  min-height: 300px !important;
  padding-top: 78px !important;
  padding-bottom: 78px !important;
}
.payment-page .inner-hero .inner-hero-copy {
  width: min(760px, 100%) !important;
  max-width: 760px !important;
}
.payment-page .inner-hero .inner-hero-copy h1 {
  max-width: 760px;
  margin: 0 auto !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.02em;
}
.payment-page .payment-content {
  padding-top: 82px !important;
  padding-bottom: 92px !important;
  background: #fafafa;
}
.payment-page .payment-info-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 24px;
  max-width: 1180px;
  margin: 0 auto;
}
.payment-page .payment-info-card {
  position: relative;
  grid-column: span 2;
  overflow: hidden;
  min-height: 250px;
  padding: 30px;
  border: 1px solid rgba(51, 51, 51, .08);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease;
}
.payment-page .payment-info-card:nth-child(4),
.payment-page .payment-info-card:nth-child(5) {
  grid-column: span 3;
}
.payment-page .payment-info-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--brand-blue);
}
.payment-page .payment-info-card:nth-child(2)::before,
.payment-page .payment-info-card:nth-child(5)::before {
  background: var(--brand-magenta);
}
.payment-page .payment-info-card:nth-child(3)::before {
  background: var(--brand-orange);
}
.payment-page .payment-info-card:nth-child(4)::before {
  background: var(--brand-blue);
}
.payment-page .payment-info-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}
.payment-page .payment-info-icon {
  display: inline-grid;
  width: 50px;
  height: 50px;
  margin-bottom: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(22, 142, 187, .09);
  color: var(--brand-blue);
  font-size: 21px;
}
.payment-page .payment-info-card:nth-child(2) .payment-info-icon,
.payment-page .payment-info-card:nth-child(5) .payment-info-icon {
  background: rgba(228, 0, 118, .08);
  color: var(--brand-magenta);
}
.payment-page .payment-info-card:nth-child(3) .payment-info-icon {
  background: rgba(245, 168, 0, .10);
  color: #d99300;
}
.payment-page .payment-info-card h2 {
  margin: 0 0 12px;
  color: var(--ft-ink);
  font-family: var(--heading-font);
  font-size: 22px !important;
  font-style: italic;
  font-weight: 600;
  line-height: 1.3;
}
.payment-page .payment-info-card p {
  margin: 0;
  color: #666;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 991px) {
  .payment-page .payment-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .payment-page .payment-info-card,
  .payment-page .payment-info-card:nth-child(4),
  .payment-page .payment-info-card:nth-child(5) {
    grid-column: span 1;
  }
  .payment-page .payment-info-card:last-child {
    grid-column: 1 / -1;
  }
}
@media (max-width: 767px) {
  .payment-page .inner-hero.compact .container-xl.hero-image-layout {
    min-height: 250px !important;
    padding-top: 62px !important;
    padding-bottom: 62px !important;
  }
  .payment-page .inner-hero .inner-hero-copy h1 {
    font-size: clamp(32px, 9vw, 40px) !important;
  }
  .payment-page .payment-content {
    padding-top: 58px !important;
    padding-bottom: 64px !important;
  }
  .payment-page .payment-info-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .payment-page .payment-info-card,
  .payment-page .payment-info-card:last-child {
    grid-column: auto;
    min-height: 0;
    padding: 25px;
  }
  .payment-page .payment-info-card h2 {
    font-size: 20px !important;
  }
  .payment-page .payment-info-card p {
    font-size: 15px;
  }
}

/* Cart page product category labels: match site subheading styling */
.cart-item .product-category {
  margin: 0 0 7px !important;
  color: var(--brand-blue) !important;
  font-family: var(--subheading-font) !important;
  font-size: 22px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-transform: capitalize !important;
}


/* Home page: slightly fuller section widths on desktop */
@media (min-width: 1200px) {
  .home-page main > section > .container-xl {
    max-width: 1400px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* About page: slightly fuller section widths on desktop, matching Home */
@media (min-width: 1200px) {
  .about-page main > section:not(.closing-cta) > .container-xl {
    max-width: 1400px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Our Events page: slightly fuller section widths on desktop, matching Home and About */
@media (min-width: 1200px) {
  .events-page main > section:not(.events-closing-cta) > .container-xl {
    max-width: 1400px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Contact page: slightly fuller section widths on desktop, matching Home, About and Events */
@media (min-width: 1200px) {
  .contact-page main > section > .container-xl {
    max-width: 1400px !important;
  }
}


/* Home page Just Arrived buttons: match the approved Shop page button styling. */
#home-products .home-product-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  gap: 12px;
  margin-top: 14px;
}
#home-products .home-product-actions .shop-view-btn.vs-btn,
#home-products .home-product-actions .shop-add-btn.vs-btn {
  display: inline-flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 15px;
  border-radius: 12px !important;
  text-align: center;
  white-space: nowrap;
}
#home-products .home-product-actions .shop-view-btn.vs-btn {
  text-decoration: none;
}
#home-products .home-product-actions .shop-view-btn.vs-btn:hover,
#home-products .home-product-actions .shop-view-btn.vs-btn:focus-visible {
  text-decoration: none;
}
@media (max-width: 420px) {
  #home-products .home-product-actions {
    grid-template-columns: 1fr;
  }
}


/* Fixed quick actions: sticky cart + WhatsApp */
.floating-store-actions {
  position: fixed;
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 9997;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.floating-store-actions .floating-cart-button,
.floating-store-actions .floating-whatsapp-button {
  position: relative;
  display: inline-flex;
  width: 50px;
  height: 50px;
  min-width: 50px;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border-radius: 50% !important;
  box-shadow: var(--shadow-button);
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.floating-store-actions .floating-cart-button {
  border: 0 !important;
  background: var(--brand-blue, #168EBB) !important;
  color: #fff !important;
}
.floating-store-actions .floating-whatsapp-button {
  border: 0 !important;
  background: #25D366 !important;
  color: #fff !important;
}
.floating-store-actions .floating-cart-button i,
.floating-store-actions .floating-whatsapp-button i {
  margin: 0;
  color: inherit !important;
  font-size: 21px;
  line-height: 1;
}
.floating-store-actions .floating-whatsapp-button i {
  font-size: 30px;
}
.floating-store-actions .floating-cart-button:hover,
.floating-store-actions .floating-cart-button:focus-visible,
.floating-store-actions .floating-whatsapp-button:hover,
.floating-store-actions .floating-whatsapp-button:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--shadow-button-hover);
}
.floating-store-actions .floating-cart-button .cart-count {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  width: 20px;
  height: 20px;
  min-width: 20px;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--brand-magenta, #E40076) !important;
  color: #fff !important;
  font-family: var(--button-font);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}
.store-cart-drawer > aside {
  box-shadow: -18px 0 45px rgba(0,0,0,.16);
}
.store-cart-drawer .drawer-head h2 {
  font-size: clamp(26px, 3vw, 34px);
}
@media (max-width: 575px) {
  .floating-store-actions {
    right: 14px;
    bottom: 14px;
    gap: 10px;
  }
  .floating-store-actions .floating-cart-button,
  .floating-store-actions .floating-whatsapp-button {
    width: 46px;
    height: 46px;
    min-width: 46px;
    min-height: 46px;
  }
  .floating-store-actions .floating-cart-button i {
    font-size: 19px;
  }
  .floating-store-actions .floating-whatsapp-button i {
    font-size: 23px;
  }
}

/* HOME HERO — desktop/laptop viewport-anchored treatment.
   The hero uses the live rendered header height, so its lower edge always
   lands on the bottom of the opening viewport. The final action row uses
   the exact same bottom offset as the fixed WhatsApp control. */
@media (min-width: 992px) {
  .home-split-hero {
    height: calc(100vh - var(--site-header-height, 68px)) !important;
    height: calc(100dvh - var(--site-header-height, 68px)) !important;
    min-height: 0 !important;
  }

  .home-split-hero .hero-grid {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    display: block !important;
    padding: 0 !important;
    text-align: right !important;
  }

  .home-split-hero .hero-copy {
    position: absolute !important;
    right: clamp(84px, 6vw, 110px) !important;
    bottom: calc(clamp(16px, 2vw, 28px) + 18px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    width: min(900px, 60vw) !important;
    max-width: 900px !important;
    max-height: calc(100% - clamp(24px, 3vw, 40px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right !important;
  }

  .home-split-hero .eyebrow,
  .home-split-hero .hero-copy h1,
  .home-split-hero .hero-lead {
    margin-left: auto !important;
    margin-right: 0 !important;
    text-align: right !important;
  }

  .home-split-hero .hero-actions {
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
  }
}

/* Home Events & Workshops: grey section background with white event cards. */
.home-page .events-preview {
  background: #f3f3f3 !important;
}
.home-page .events-preview .event-card {
  background: #fff !important;
}

/* About Us: What Matters to Us section grey background with white cards. */
.about-page .what-matters-section {
  background: #f5f5f5 !important;
}
.about-page .what-matters-section .benefit-grid article {
  background: #fff !important;
}

/* Our Events: Past Event Highlights section grey background. */
.events-page #past.past-highlights {
  background: #f5f5f5 !important;
}


/* Single product page: blue bottom border for Keep Exploring section. */
.product-page .product-keep-exploring {
  border-bottom: 3px solid var(--brand-blue, #168EBB) !important;
}

/* FINAL: compact floating cart + WhatsApp controls */
.floating-store-actions {
  right: clamp(12px, 1.5vw, 20px) !important;
  bottom: calc(clamp(16px, 2vw, 28px) + 18px) !important;
  gap: 8px !important;
}
.floating-store-actions .floating-cart-button,
.floating-store-actions .floating-whatsapp-button {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  box-shadow: var(--shadow-button) !important;
}
.floating-store-actions .floating-cart-button i {
  font-size: 16px !important;
}
.floating-store-actions .floating-whatsapp-button i {
  font-size: 22px !important;
}
.floating-store-actions .floating-cart-button .cart-count {
  top: -4px !important;
  right: -4px !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  border-width: 2px !important;
  font-size: 8px !important;
}
@media (max-width: 575px) {
  .floating-store-actions {
    right: 10px !important;
    bottom: 10px !important;
    gap: 7px !important;
  }
  .floating-store-actions .floating-cart-button,
  .floating-store-actions .floating-whatsapp-button {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }
  .floating-store-actions .floating-cart-button i {
    font-size: 15px !important;
  }
  .floating-store-actions .floating-whatsapp-button i {
    font-size: 21px !important;
  }
}

/* Search popup heading: keep it on one line on laptop/desktop and reduce its visual size. */
@media (min-width: 768px) {
  .search-overlay .search-panel {
    width: min(1100px, calc(100% - 96px)) !important;
  }

  .search-overlay .search-panel #search-label {
    font-size: clamp(34px, 3.6vw, 50px) !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 767px) {
  .search-overlay .search-panel #search-label {
    font-size: clamp(30px, 9vw, 40px) !important;
    line-height: 1.12 !important;
    white-space: normal !important;
  }
}

/* Home hero heading: lock the approved desktop heading to exactly two lines. */
@media (min-width: 992px) {
  .home-split-hero .hero-copy {
    width: min(900px, 60vw) !important;
    max-width: 900px !important;
  }

  .home-split-hero .hero-copy h1 {
    max-width: 900px !important;
    font-size: clamp(44px, 4.6vw, 64px) !important;
  }

  .home-split-hero .hero-copy h1 .hero-title-blue,
  .home-split-hero .hero-copy h1 .hero-title-pink {
    display: block !important;
    white-space: nowrap !important;
  }
}

/* FINAL: Home hero reference video fills the entire hero background edge-to-edge. */
.home-page .home-split-hero .hero-bg-video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  z-index: 0 !important;
}
.home-page .home-split-hero::before {
  content: none !important;
  display: none !important;
  background: transparent !important;
}
.home-page .home-split-hero .hero-grid {
  z-index: 2 !important;
}

/* FINAL HQ HOME HERO VIDEO: sharper, more vivid and more energetic without visible clip repetition. */
.home-page .home-split-hero .hero-bg-video {
  animation: homeHeroVideoEnergy 14s ease-in-out infinite !important;
  filter: saturate(1.08) contrast(1.05) brightness(1.03) !important;
  transform-origin: center center !important;
  will-change: transform !important;
}
@keyframes homeHeroVideoEnergy {
  0% { transform: scale(1.01); }
  38% { transform: scale(1.055); }
  70% { transform: scale(1.035); }
  100% { transform: scale(1.01); }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .home-split-hero .hero-bg-video {
    animation: none !important;
    transform: scale(1.01) !important;
  }
}

/* FINAL HOME HERO VIDEO REWORK: clearer, longer, higher quality, full-width, and no faux animation. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, .58) !important;
}
.home-page .home-split-hero .hero-bg-video {
  animation: none !important;
  transform: none !important;
  filter: saturate(1.12) contrast(1.05) brightness(1.03) !important;
  backface-visibility: hidden !important;
}
@media (max-width: 575px) {
  .home-page .home-split-hero::before {
    background: rgba(0, 0, 0, .62) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    object-position: center center !important;
  }
}

/* FINAL HERO VIDEO QUALITY FIX: near-native powder detail, staged full-width bursts, no fake shake/zoom. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, .56) !important;
}
.home-page .home-split-hero .hero-bg-video {
  animation: none !important;
  transform: none !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  filter: saturate(1.08) contrast(1.04) brightness(1.02) !important;
  backface-visibility: hidden !important;
  image-rendering: auto !important;
}
@media (max-width: 575px) {
  .home-page .home-split-hero::before {
    background: rgba(0, 0, 0, .62) !important;
  }
}


/* FINAL 4K HOME HERO: one native landscape colour-powder explosion, no duplicated bursts. */
.home-page .home-split-hero::before {
  background: rgba(0,0,0,.52) !important;
}
.home-page .home-split-hero .hero-bg-video {
  animation: none !important;
  transform: none !important;
  filter: saturate(1.05) contrast(1.03) brightness(1.02) !important;
  object-fit: cover !important;
  object-position: center center !important;
  backface-visibility: hidden !important;
  will-change: auto !important;
}
@media (max-width: 575px) {
  .home-page .home-split-hero::before {
    background: rgba(0,0,0,.60) !important;
  }
}

/* FINAL TUNING: brand-colour hero with a fuller-width crop and less black space. */
.home-page .home-split-hero {
  background-position: center 40% !important;
}
.home-page .home-split-hero::before {
  background:
    linear-gradient(118deg,
      rgba(22,142,187,.22) 0%,
      rgba(22,142,187,.10) 18%,
      rgba(245,168,0,.16) 42%,
      rgba(228,0,118,.18) 68%,
      rgba(22,142,187,.20) 100%),
    rgba(0,0,0,.30) !important;
}
.home-page .home-split-hero .hero-bg-video {
  animation: none !important;
  object-fit: cover !important;
  object-position: center 42% !important;
  transform: scale(1.14) !important;
  filter: saturate(1.24) contrast(1.08) brightness(1.08) !important;
}
@media (min-width: 1400px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.18) !important;
    object-position: center 40% !important;
  }
}
@media (max-width: 991px) {
  .home-page .home-split-hero::before {
    background:
      linear-gradient(118deg,
        rgba(22,142,187,.18) 0%,
        rgba(245,168,0,.14) 42%,
        rgba(228,0,118,.16) 68%,
        rgba(22,142,187,.18) 100%),
      rgba(0,0,0,.36) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.10) !important;
    object-position: center center !important;
  }
}
@media (max-width: 575px) {
  .home-page .home-split-hero::before {
    background:
      linear-gradient(118deg,
        rgba(22,142,187,.14) 0%,
        rgba(245,168,0,.12) 42%,
        rgba(228,0,118,.14) 68%,
        rgba(22,142,187,.15) 100%),
      rgba(0,0,0,.42) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.12) !important;
    object-position: 56% center !important;
  }
}

/* EXTRA HERO COLOUR + WIDTH REFINEMENT: reduce black, pull through brand colours, keep video crisp. */
.home-page .home-split-hero {
  background:
    radial-gradient(circle at 14% 20%, rgba(228,0,118,.42) 0%, rgba(228,0,118,0) 22%),
    radial-gradient(circle at 48% 18%, rgba(245,168,0,.34) 0%, rgba(245,168,0,0) 24%),
    radial-gradient(circle at 84% 26%, rgba(22,142,187,.36) 0%, rgba(22,142,187,0) 26%),
    radial-gradient(circle at 70% 74%, rgba(228,0,118,.22) 0%, rgba(228,0,118,0) 24%),
    linear-gradient(135deg, #19020d 0%, #220411 24%, #1b091b 45%, #081226 72%, #040914 100%) !important;
}
.home-page .home-split-hero::before {
  background:
    linear-gradient(115deg,
      rgba(228,0,118,.28) 0%,
      rgba(245,168,0,.24) 32%,
      rgba(22,142,187,.24) 68%,
      rgba(228,0,118,.22) 100%),
    rgba(6,7,18,.12) !important;
}
.home-page .home-split-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 12% 28%, rgba(228,0,118,.30) 0%, rgba(228,0,118,0) 20%),
    radial-gradient(circle at 52% 16%, rgba(245,168,0,.24) 0%, rgba(245,168,0,0) 22%),
    radial-gradient(circle at 86% 24%, rgba(22,142,187,.30) 0%, rgba(22,142,187,0) 24%),
    radial-gradient(circle at 58% 78%, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 20%) !important;
  mix-blend-mode: screen !important;
  opacity: .92 !important;
}
.home-page .home-split-hero .hero-bg-video {
  object-fit: cover !important;
  object-position: center 41% !important;
  transform: scale(1.22) !important;
  filter: saturate(1.42) contrast(1.10) brightness(1.18) !important;
}
@media (min-width: 1400px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.26) !important;
    object-position: center 39% !important;
  }
}
@media (max-width: 991px) {
  .home-page .home-split-hero::before {
    background:
      linear-gradient(115deg,
        rgba(228,0,118,.26) 0%,
        rgba(245,168,0,.20) 32%,
        rgba(22,142,187,.20) 68%,
        rgba(228,0,118,.20) 100%),
      rgba(6,7,18,.18) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.16) !important;
    object-position: center 44% !important;
    filter: saturate(1.34) contrast(1.08) brightness(1.14) !important;
  }
}
@media (max-width: 575px) {
  .home-page .home-split-hero::before {
    background:
      linear-gradient(115deg,
        rgba(228,0,118,.24) 0%,
        rgba(245,168,0,.18) 32%,
        rgba(22,142,187,.18) 68%,
        rgba(228,0,118,.18) 100%),
      rgba(6,7,18,.24) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.18) !important;
    object-position: 58% 46% !important;
    filter: saturate(1.30) contrast(1.06) brightness(1.12) !important;
  }
}

/* FINAL HERO BRAND COLOUR BOOST: make all logo colours clearly visible and reduce dark/black read. */
.home-page .home-split-hero {
  background:
    radial-gradient(circle at 10% 34%, rgba(228,0,118,.68) 0%, rgba(228,0,118,.38) 16%, rgba(228,0,118,0) 40%),
    radial-gradient(circle at 49% 17%, rgba(245,168,0,.64) 0%, rgba(245,168,0,.34) 16%, rgba(245,168,0,0) 38%),
    radial-gradient(circle at 89% 30%, rgba(22,142,187,.72) 0%, rgba(22,142,187,.40) 18%, rgba(22,142,187,0) 42%),
    radial-gradient(circle at 68% 76%, rgba(245,168,0,.24) 0%, rgba(245,168,0,0) 26%),
    linear-gradient(135deg, #2a0d1e 0%, #381017 22%, #3a2211 46%, #142234 74%, #0b1320 100%) !important;
}
.home-page .home-split-hero::before {
  background:
    linear-gradient(118deg,
      rgba(228,0,118,.32) 0%,
      rgba(228,0,118,.18) 18%,
      rgba(245,168,0,.34) 44%,
      rgba(22,142,187,.34) 74%,
      rgba(22,142,187,.18) 100%),
    rgba(8,10,18,.06) !important;
}
.home-page .home-split-hero::after {
  background:
    radial-gradient(circle at 8% 34%, rgba(228,0,118,.42) 0%, rgba(228,0,118,.16) 16%, rgba(228,0,118,0) 34%),
    radial-gradient(circle at 48% 15%, rgba(245,168,0,.38) 0%, rgba(245,168,0,.14) 16%, rgba(245,168,0,0) 36%),
    radial-gradient(circle at 88% 28%, rgba(22,142,187,.44) 0%, rgba(22,142,187,.18) 18%, rgba(22,142,187,0) 38%),
    radial-gradient(circle at 32% 78%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 20%) !important;
  mix-blend-mode: screen !important;
  opacity: 1 !important;
}
.home-page .home-split-hero .hero-bg-video {
  object-fit: cover !important;
  object-position: center 42% !important;
  transform: scale(1.30) !important;
  filter: saturate(1.52) contrast(1.12) brightness(1.20) !important;
}
@media (min-width: 1400px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.34) !important;
    object-position: center 40% !important;
  }
}
@media (max-width: 991px) {
  .home-page .home-split-hero::before {
    background:
      linear-gradient(118deg,
        rgba(228,0,118,.28) 0%,
        rgba(228,0,118,.16) 18%,
        rgba(245,168,0,.28) 44%,
        rgba(22,142,187,.28) 74%,
        rgba(22,142,187,.16) 100%),
      rgba(8,10,18,.10) !important;
  }
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.22) !important;
    object-position: center 45% !important;
    filter: saturate(1.42) contrast(1.09) brightness(1.16) !important;
  }
}
@media (max-width: 575px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.24) !important;
    object-position: 56% 47% !important;
  }
}

/* HERO SPLASH FIX ONLY: restore black overlay at 0.7 and show all brand colours from the logo. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, 0.70) !important;
}
.home-page .home-split-hero::after {
  background:
    radial-gradient(circle at 56% 18%, rgba(22, 142, 187, 0.72) 0%, rgba(22, 142, 187, 0.42) 10%, rgba(22, 142, 187, 0) 28%),
    radial-gradient(circle at 64% 22%, rgba(245, 168, 0, 0.72) 0%, rgba(245, 168, 0, 0.44) 10%, rgba(245, 168, 0, 0) 28%),
    radial-gradient(circle at 72% 23%, rgba(228, 0, 118, 0.78) 0%, rgba(228, 0, 118, 0.48) 10%, rgba(228, 0, 118, 0) 28%),
    radial-gradient(circle at 67% 30%, rgba(255, 219, 77, 0.54) 0%, rgba(255, 219, 77, 0.28) 9%, rgba(255, 219, 77, 0) 24%),
    radial-gradient(circle at 76% 31%, rgba(140, 198, 62, 0.50) 0%, rgba(140, 198, 62, 0.24) 8%, rgba(140, 198, 62, 0) 22%),
    radial-gradient(circle at 42% 60%, rgba(22, 142, 187, 0.22) 0%, rgba(22, 142, 187, 0) 24%),
    radial-gradient(circle at 30% 70%, rgba(228, 0, 118, 0.18) 0%, rgba(228, 0, 118, 0) 22%),
    radial-gradient(circle at 58% 74%, rgba(245, 168, 0, 0.16) 0%, rgba(245, 168, 0, 0) 20%) !important;
  opacity: 1 !important;
  mix-blend-mode: screen !important;
}

/* HERO SPLASH BLUE BOOST ONLY: keep black overlay at 0.7 and make the logo blue clearly visible in the splash. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, 0.70) !important;
}
.home-page .home-split-hero::after {
  background:
    radial-gradient(ellipse at 18% 28%, rgba(22, 142, 187, 0.96) 0%, rgba(22, 142, 187, 0.72) 12%, rgba(22, 142, 187, 0) 36%),
    radial-gradient(ellipse at 30% 52%, rgba(0, 174, 239, 0.82) 0%, rgba(0, 174, 239, 0.50) 11%, rgba(0, 174, 239, 0) 32%),
    radial-gradient(circle at 58% 20%, rgba(245, 168, 0, 0.88) 0%, rgba(245, 168, 0, 0.50) 10%, rgba(245, 168, 0, 0) 28%),
    radial-gradient(circle at 70% 24%, rgba(228, 0, 118, 0.90) 0%, rgba(228, 0, 118, 0.52) 10%, rgba(228, 0, 118, 0) 28%),
    radial-gradient(circle at 62% 31%, rgba(255, 219, 77, 0.72) 0%, rgba(255, 219, 77, 0.34) 10%, rgba(255, 219, 77, 0) 24%),
    radial-gradient(circle at 78% 30%, rgba(140, 198, 62, 0.72) 0%, rgba(140, 198, 62, 0.34) 10%, rgba(140, 198, 62, 0) 24%),
    radial-gradient(circle at 82% 72%, rgba(22, 142, 187, 0.54) 0%, rgba(22, 142, 187, 0) 22%),
    radial-gradient(circle at 48% 76%, rgba(228, 0, 118, 0.28) 0%, rgba(228, 0, 118, 0) 20%),
    linear-gradient(90deg, rgba(22, 142, 187, 0.34) 0%, rgba(22, 142, 187, 0.18) 20%, rgba(22, 142, 187, 0.04) 38%, rgba(22, 142, 187, 0) 48%) !important;
  opacity: 1 !important;
  mix-blend-mode: screen !important;
}

/* REMOVE UNWANTED HERO RING ONLY: reset inherited legacy pseudo-element geometry. */
.home-page .home-split-hero::after {
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
}


/* HERO SPLASH FINAL FIX ONLY: keep the overlay pure black at 0.7, and make the logo blue part of the splash itself alongside the orange, pink, yellow and green. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, 0.70) !important;
}
.home-page .home-split-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 48% 18%, rgba(14, 152, 242, 0.94) 0%, rgba(14, 152, 242, 0.62) 10%, rgba(14, 152, 242, 0.22) 18%, rgba(14, 152, 242, 0) 31%),
    radial-gradient(circle at 59% 19%, rgba(245, 168, 0, 0.90) 0%, rgba(245, 168, 0, 0.58) 10%, rgba(245, 168, 0, 0.20) 18%, rgba(245, 168, 0, 0) 31%),
    radial-gradient(circle at 70% 20%, rgba(228, 0, 118, 0.92) 0%, rgba(228, 0, 118, 0.60) 10%, rgba(228, 0, 118, 0.22) 18%, rgba(228, 0, 118, 0) 31%),
    radial-gradient(circle at 63% 28%, rgba(255, 219, 77, 0.64) 0%, rgba(255, 219, 77, 0.32) 10%, rgba(255, 219, 77, 0) 24%),
    radial-gradient(circle at 77% 28%, rgba(140, 198, 62, 0.54) 0%, rgba(140, 198, 62, 0.24) 9%, rgba(140, 198, 62, 0) 22%),
    radial-gradient(circle at 36% 66%, rgba(14, 152, 242, 0.18) 0%, rgba(14, 152, 242, 0) 20%),
    radial-gradient(circle at 53% 74%, rgba(245, 168, 0, 0.16) 0%, rgba(245, 168, 0, 0) 20%),
    radial-gradient(circle at 68% 76%, rgba(228, 0, 118, 0.18) 0%, rgba(228, 0, 118, 0) 20%) !important;
  opacity: 1 !important;
  mix-blend-mode: screen !important;
}


/* HERO SPLASH BLUE VISIBILITY FIX ONLY: keep black overlay, but make the brand blue show as clearly as the other splash colours. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, 0.70) !important;
}
.home-page .home-split-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 18% 18%, rgba(14, 152, 242, 1.00) 0%, rgba(14, 152, 242, 0.86) 9%, rgba(14, 152, 242, 0.42) 18%, rgba(14, 152, 242, 0) 33%),
    radial-gradient(circle at 33% 34%, rgba(22, 142, 187, 0.92) 0%, rgba(22, 142, 187, 0.62) 10%, rgba(22, 142, 187, 0.20) 18%, rgba(22, 142, 187, 0) 30%),
    radial-gradient(circle at 78% 74%, rgba(14, 152, 242, 0.76) 0%, rgba(14, 152, 242, 0.34) 10%, rgba(14, 152, 242, 0) 24%),
    radial-gradient(circle at 56% 18%, rgba(245, 168, 0, 0.92) 0%, rgba(245, 168, 0, 0.58) 10%, rgba(245, 168, 0, 0.22) 18%, rgba(245, 168, 0, 0) 31%),
    radial-gradient(circle at 70% 20%, rgba(228, 0, 118, 0.94) 0%, rgba(228, 0, 118, 0.62) 10%, rgba(228, 0, 118, 0.24) 18%, rgba(228, 0, 118, 0) 31%),
    radial-gradient(circle at 63% 29%, rgba(255, 219, 77, 0.66) 0%, rgba(255, 219, 77, 0.34) 10%, rgba(255, 219, 77, 0) 24%),
    radial-gradient(circle at 79% 30%, rgba(140, 198, 62, 0.58) 0%, rgba(140, 198, 62, 0.26) 9%, rgba(140, 198, 62, 0) 22%),
    radial-gradient(circle at 45% 78%, rgba(245, 168, 0, 0.18) 0%, rgba(245, 168, 0, 0) 20%),
    radial-gradient(circle at 61% 80%, rgba(228, 0, 118, 0.18) 0%, rgba(228, 0, 118, 0) 20%) !important;
  opacity: 1 !important;
  mix-blend-mode: screen !important;
}

/* HERO SPLASH ONLY FIX: keep the dark overlay black at 0.7 and show blue as part of the splash, not as a full-screen blue shade. */
.home-page .home-split-hero::before {
  background: rgba(0, 0, 0, 0.70) !important;
}
.home-page .home-split-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 18% 22%, rgba(14, 152, 242, 0.96) 0%, rgba(14, 152, 242, 0.62) 7%, rgba(14, 152, 242, 0.18) 13%, rgba(14, 152, 242, 0) 21%),
    radial-gradient(circle at 30% 34%, rgba(22, 142, 187, 0.72) 0%, rgba(22, 142, 187, 0.34) 6%, rgba(22, 142, 187, 0.10) 11%, rgba(22, 142, 187, 0) 18%),
    radial-gradient(circle at 55% 18%, rgba(245, 168, 0, 0.96) 0%, rgba(245, 168, 0, 0.62) 7%, rgba(245, 168, 0, 0.18) 13%, rgba(245, 168, 0, 0) 21%),
    radial-gradient(circle at 68% 20%, rgba(228, 0, 118, 0.98) 0%, rgba(228, 0, 118, 0.64) 7%, rgba(228, 0, 118, 0.20) 13%, rgba(228, 0, 118, 0) 21%),
    radial-gradient(circle at 62% 28%, rgba(255, 219, 77, 0.60) 0%, rgba(255, 219, 77, 0.26) 7%, rgba(255, 219, 77, 0) 16%),
    radial-gradient(circle at 76% 29%, rgba(140, 198, 62, 0.50) 0%, rgba(140, 198, 62, 0.20) 7%, rgba(140, 198, 62, 0) 15%),
    radial-gradient(circle at 44% 74%, rgba(245, 168, 0, 0.14) 0%, rgba(245, 168, 0, 0) 13%),
    radial-gradient(circle at 58% 78%, rgba(228, 0, 118, 0.14) 0%, rgba(228, 0, 118, 0) 13%),
    radial-gradient(circle at 24% 72%, rgba(14, 152, 242, 0.12) 0%, rgba(14, 152, 242, 0) 12%) !important;
  opacity: 1 !important;
  mix-blend-mode: screen !important;
}


/* FINAL HERO SPLASH FIX: no colour shades/tints over the hero; keep only a slightly darker black overlay so the real splash video shows all its own colours clearly. */
.home-page .home-split-hero {
  background: #000 !important;
}
.home-page .home-split-hero::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: rgba(0, 0, 0, 0.75) !important;
}
.home-page .home-split-hero::after {
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
  mix-blend-mode: normal !important;
}
.home-page .home-split-hero .hero-bg-video {
  object-fit: cover !important;
  object-position: 50% 42% !important;
  transform: scale(1.18) !important;
  filter: saturate(1.18) contrast(1.06) brightness(1.06) !important;
}
@media (min-width: 1400px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.22) !important;
    object-position: 50% 41% !important;
  }
}
@media (max-width: 991px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.14) !important;
    object-position: 50% 44% !important;
  }
}
@media (max-width: 575px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.16) !important;
    object-position: 50% 46% !important;
  }
}

/* FINAL HERO FRAMING ONLY: use one instance of the existing splash across the hero. */
.home-page .home-split-hero .hero-bg-video {
  transform: scale(1.00) !important;
  object-position: center center !important;
}
@media (min-width: 1400px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.00) !important;
    object-position: center center !important;
  }
}
@media (max-width: 991px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.00) !important;
    object-position: center center !important;
  }
}
@media (max-width: 575px) {
  .home-page .home-split-hero .hero-bg-video {
    transform: scale(1.00) !important;
    object-position: center center !important;
  }
}

/* Brand display-heading typography: large headings only. Small script subheadings remain Alex Brush. */
.store-hero .hero-copy h1,
.inner-hero .inner-hero-copy h1,
.sec-title,
.title-area h2,
.section-heading h2,
.prose > h2,
.closing-cta h2,
.contact-form > h2,
.shop-enquiry-inner h2,
.content-page > h2,
.not-found .not-found-copy h1 {
  font-family: "Lobster", cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
}


/* VIDEO-ONLY HERO / CTA LOADING
   No poster images or legacy backgrounds are used. The browser selects the current
   desktop/mobile MP4 natively via <source media> before first paint. */
.home-split-hero,
.inner-hero,
.not-found,
.campaign-section,
.shop-enquiry-section,
.closing-cta {
  background-color: #fff !important;
  background-image: none !important;
}
.home-page .home-split-hero .hero-bg-video,
.sitewide-section-video {
  opacity: 1 !important;
  transition: none !important;
}

/* SITEWIDE HERO + CTA VIDEO BACKGROUNDS
   Reuse the approved Home hero video. Videos play once only; CTA videos begin when visible. */
.sitewide-section-video {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  pointer-events: none !important;
  background-color: #fff !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}

@media (max-width: 575px) {
  .sitewide-section-video {
    background-image: none !important;
  }
}

.home-page .home-split-hero .hero-bg-video {
  background-color: #fff !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}

@media (max-width: 575px) {
  .home-page .home-split-hero .hero-bg-video {
    background-image: none !important;
  }
}

.inner-hero,
.not-found,
.campaign-section,
.shop-enquiry-section,
.closing-cta {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
}

/* Keep the established dark overlay above the video. */
.inner-hero::before,
.not-found::before,
.campaign-section::before,
.shop-enquiry-section::before,
.closing-cta::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: rgba(0, 0, 0, .70) !important;
  pointer-events: none !important;
}

/* Keep all existing hero and CTA content above video + overlay. */
.inner-hero > .container-xl,
.not-found > .not-found-grid,
.campaign-section > .container-xl,
.shop-enquiry-section > .container-xl,
.closing-cta > .container-xl {
  position: relative !important;
  z-index: 2 !important;
}

/* Ensure CTA copy remains readable against the moving background. */
.closing-cta h2,
.closing-cta .cta-description {
  color: #fff !important;
}

/* Header navigation typography: match the approved Lobster display font at a smaller scale. */
.store-header .main-navigation > ul > li > a {
  font-family: "Lobster", cursive !important;
  font-size: 18px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}
.store-header .main-navigation .sub-menu a,
.mobile-navigation a {
  font-family: "Lobster", cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}
.store-header .main-navigation .sub-menu a {
  font-size: 15px !important;
}
.mobile-navigation > ul > li > a {
  font-size: 18px !important;
}
.mobile-navigation .sub-menu a {
  font-size: 15px !important;
}

/* Home Just Arrived: give the product action buttons breathing room from card edges. */
#home-products .home-product-actions {
  width: auto;
  margin: 14px 18px 0;
}
@media (max-width: 575px) {
  #home-products .home-product-actions {
    margin-left: 14px;
    margin-right: 14px;
  }
}

/* Homepage trust strip: center each icon/text group within its block. */
.trust-strip .trust-grid > div {
  justify-content: center;
}

/* PRODUCT IMAGE INTEGRATION — preserve the full supplied Squirrels product photograph. */
#home-products .product-card .home-product-img,
.shop-page-heritage .shop-product-card .shop-product-img,
.shop-product-card .shop-product-img,
#product-detail .product-detail-grid .product-detail-photo {
  object-fit: contain !important;
  object-position: center center !important;
  background: #fff !important;
}
.product-photo {
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: #fff !important;
}

/* HOME HERO OVERLAY REMOVAL: show the hero video/background without any black overlay. */
.home-page .home-split-hero::before {
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
}

/* PRODUCT CARD ALIGNMENT — keep every catalogue block equal and line up its content. */
#home-products,
.shop-page-heritage .heritage-product-grid {
  align-items: stretch !important;
}

#home-products .product-card,
.shop-page-heritage .shop-product-card,
.shop-product-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* Homepage cards: reserve matching rows for category, title, stock, price and actions. */
#home-products .product-card .product-info {
  display: grid !important;
  grid-template-rows: auto minmax(96px, auto) 38px 34px auto !important;
  flex: 1 1 auto !important;
  align-content: start !important;
  width: 100% !important;
  padding: 20px 0 22px !important;
}
#home-products .product-card .product-category {
  min-height: 20px !important;
  margin: 0 18px 10px !important;
  align-self: start !important;
}
#home-products .product-card .product-info h3 {
  min-height: 96px !important;
  margin: 0 18px 10px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  line-height: 1.4 !important;
}
#home-products .product-card .product-stock {
  min-height: 34px !important;
  margin: 0 auto 8px !important;
  align-self: start !important;
  justify-self: center !important;
}
#home-products .product-card .product-price {
  min-height: 28px !important;
  margin: 0 18px 8px !important;
  align-self: start !important;
}
#home-products .product-card .home-product-actions {
  align-self: end !important;
  width: auto !important;
  margin: 14px 18px 0 !important;
}

/* Shop cards: equal media/content heights and keep actions on a common baseline. */
.shop-page-heritage .shop-product-card .product-info,
.shop-product-card .product-info {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  width: 100% !important;
}
.shop-page-heritage .shop-product-card .product-info h3,
.shop-product-card .product-info h3 {
  min-height: 82px !important;
}
.shop-page-heritage .shop-product-card .product-price,
.shop-product-card .product-price {
  min-height: 28px !important;
}
.shop-page-heritage .shop-product-card .shop-product-description,
.shop-product-card .shop-product-description {
  min-height: 100px !important;
}
.shop-page-heritage .shop-product-card .shop-card-actions,
.shop-product-card .shop-card-actions {
  margin-top: auto !important;
}

@media (max-width: 767px) {
  #home-products .product-card .product-info {
    grid-template-rows: auto minmax(88px, auto) 36px 32px auto !important;
    padding-bottom: 18px !important;
  }
  #home-products .product-card .product-info h3 {
    min-height: 88px !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
  #home-products .product-card .product-category,
  #home-products .product-card .product-price {
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
  #home-products .product-card .home-product-actions {
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
  .shop-page-heritage .shop-product-card .product-info h3,
  .shop-product-card .product-info h3 {
    min-height: 74px !important;
  }
  .shop-page-heritage .shop-product-card .shop-product-description,
  .shop-product-card .shop-product-description {
    min-height: 86px !important;
  }
}


/* ================================================================
   SITEWIDE INTERNAL HERO + CTA CLARITY / CONTENT GLOSS — FINAL
   Home hero is intentionally excluded. Full-section dark overlays are
   removed; contrast is kept directly around the copy, matching the
   Home hero's feathered content treatment. The HD splash source is
   supplied in the page markup for these sections.
   ================================================================ */

/* Remove ONLY the full-section overlay from internal heroes and CTAs. */
.inner-hero::before,
.not-found::before,
.campaign-section::before,
.shop-enquiry-section::before,
.closing-cta::before {
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
}

/* Keep the HD splash layer clean and crisp without changing framing. */
.sitewide-section-video.sitewide-hero-video,
.sitewide-section-video.sitewide-cta-video {
  filter: none !important;
  transform: translateZ(0) !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

/* Slightly enlarge ONLY internal-page hero headings. */
.inner-hero .inner-hero-copy h1,
.not-found .not-found-copy h1 {
  font-size: clamp(42px, 5.6vw, 64px) !important;
  line-height: 1.08 !important;
}

/* Home-style feathered gloss/contrast directly around hero copy only. */
.inner-hero .inner-hero-copy,
.not-found .not-found-copy {
  position: relative !important;
  isolation: isolate !important;
}

.inner-hero .inner-hero-copy::before,
.not-found .not-found-copy::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  left: 50% !important;
  top: 50% !important;
  width: min(760px, 92vw) !important;
  height: 220% !important;
  transform: translate(-50%, -50%) !important;
  border: 0 !important;
  border-radius: 50% !important;
  background:
    radial-gradient(ellipse at center,
      rgba(3, 7, 14, .70) 0%,
      rgba(3, 7, 14, .54) 28%,
      rgba(3, 7, 14, .31) 48%,
      rgba(3, 7, 14, .11) 66%,
      rgba(3, 7, 14, 0) 81%) !important;
  filter: blur(2px) !important;
  pointer-events: none !important;
}

.inner-hero .inner-hero-copy > *,
.not-found .not-found-copy > * {
  position: relative !important;
  z-index: 1 !important;
}

.inner-hero .inner-hero-copy h1,
.not-found .not-found-copy h1,
.not-found .not-found-copy > span {
  text-shadow:
    0 3px 3px rgba(0, 0, 0, .94),
    0 0 8px rgba(0, 0, 0, .84),
    0 0 20px rgba(0, 0, 0, .58) !important;
  -webkit-text-stroke: .35px rgba(255, 255, 255, .24);
  paint-order: stroke fill;
}

.inner-hero .inner-hero-copy p,
.inner-hero .inner-hero-copy .eyebrow,
.not-found .not-found-copy p {
  text-shadow:
    0 2px 2px rgba(0, 0, 0, .96),
    0 0 7px rgba(0, 0, 0, .86),
    0 0 17px rgba(0, 0, 0, .60) !important;
}

/* Home-style feathered gloss/contrast directly around CTA content only. */
.campaign-section .campaign-inner,
.shop-enquiry-section .shop-enquiry-inner,
.closing-cta > .container-xl {
  position: relative !important;
  isolation: isolate !important;
}

.campaign-section .campaign-inner::before,
.shop-enquiry-section .shop-enquiry-inner::before,
.closing-cta > .container-xl::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  left: 50% !important;
  top: 48% !important;
  width: min(980px, 94vw) !important;
  height: 150% !important;
  transform: translate(-50%, -50%) !important;
  border: 0 !important;
  border-radius: 50% !important;
  background:
    radial-gradient(ellipse at center,
      rgba(3, 7, 14, .70) 0%,
      rgba(3, 7, 14, .55) 29%,
      rgba(3, 7, 14, .31) 49%,
      rgba(3, 7, 14, .11) 67%,
      rgba(3, 7, 14, 0) 82%) !important;
  filter: blur(2px) !important;
  pointer-events: none !important;
}

.campaign-section .campaign-inner > *,
.shop-enquiry-section .shop-enquiry-inner > *,
.closing-cta > .container-xl > * {
  position: relative !important;
  z-index: 1 !important;
}

.campaign-section h2,
.shop-enquiry-section .shop-enquiry-inner h2,
.closing-cta h2 {
  text-shadow:
    0 3px 3px rgba(0, 0, 0, .94),
    0 0 8px rgba(0, 0, 0, .84),
    0 0 20px rgba(0, 0, 0, .58) !important;
  -webkit-text-stroke: .3px rgba(255, 255, 255, .22);
  paint-order: stroke fill;
}

.campaign-section p,
.shop-enquiry-section .shop-enquiry-inner p,
.closing-cta .cta-description,
.campaign-section .sec-subtitle,
.shop-enquiry-section .eyebrow,
.closing-cta .sec-subtitle {
  text-shadow:
    0 2px 2px rgba(0, 0, 0, .96),
    0 0 7px rgba(0, 0, 0, .86),
    0 0 17px rgba(0, 0, 0, .60) !important;
}

.campaign-section .vs-btn,
.shop-enquiry-section .vs-btn,
.closing-cta .vs-btn,
.not-found .vs-btn {
  box-shadow: var(--shadow-button) !important;
}

@media (max-width: 991px) {
  .inner-hero .inner-hero-copy h1,
  .not-found .not-found-copy h1 {
    font-size: clamp(40px, 7.4vw, 58px) !important;
  }

  .inner-hero .inner-hero-copy::before,
  .not-found .not-found-copy::before {
    width: min(720px, 96vw) !important;
    height: 230% !important;
  }

  .campaign-section .campaign-inner::before,
  .shop-enquiry-section .shop-enquiry-inner::before,
  .closing-cta > .container-xl::before {
    width: min(860px, 96vw) !important;
    height: 160% !important;
  }
}

@media (max-width: 575px) {
  .inner-hero .inner-hero-copy h1,
  .not-found .not-found-copy h1 {
    font-size: clamp(38px, 11vw, 50px) !important;
  }

  .inner-hero .inner-hero-copy::before,
  .not-found .not-found-copy::before {
    width: 108% !important;
    height: 250% !important;
    background:
      radial-gradient(ellipse at center,
        rgba(3, 7, 14, .74) 0%,
        rgba(3, 7, 14, .57) 31%,
        rgba(3, 7, 14, .31) 52%,
        rgba(3, 7, 14, .10) 70%,
        rgba(3, 7, 14, 0) 84%) !important;
  }

  .campaign-section .campaign-inner::before,
  .shop-enquiry-section .shop-enquiry-inner::before,
  .closing-cta > .container-xl::before {
    width: 108% !important;
    height: 176% !important;
    top: 49% !important;
    background:
      radial-gradient(ellipse at center,
        rgba(3, 7, 14, .74) 0%,
        rgba(3, 7, 14, .57) 31%,
        rgba(3, 7, 14, .31) 52%,
        rgba(3, 7, 14, .10) 70%,
        rgba(3, 7, 14, 0) 84%) !important;
  }
}

/* Selected internal section headings match the homepage "Browse our main collections" size. */
body:not(.home-page) main h2.browse-heading-match {
  font-size: clamp(34px, 3.9vw, 50px);
}
@media (max-width: 575px) {
  body:not(.home-page) main h2.browse-heading-match {
    font-size: clamp(32px, 8.6vw, 46px);
  }
}

/* Home Events & Workshops: keep all card buttons aligned on one baseline. */
.home-page .events-preview .event-grid {
  align-items: stretch !important;
}
.home-page .events-preview .event-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
.home-page .events-preview .event-card > div:last-child {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
.home-page .events-preview .event-card .event-card-btn {
  margin-top: auto !important;
}

/* ================================================================
   SITEWIDE DESCRIPTION READABILITY — SLIGHT SIZE INCREASE
   Increase descriptive copy subtly without changing headings, labels,
   navigation, buttons, prices, badges, or other interface typography.
   ================================================================ */

/* Standard descriptive paragraphs that otherwise inherit the 18px body size. */
body main p {
  font-size: 19px;
}

/* Common section/supporting descriptions already sized explicitly. */
.prose p,
.content-page p,
.title-area p,
.section-heading > p,
.footer-info p,
.store-footer p,
.accordion-body {
  font-size: 19px;
}

/* Hero and prominent supporting copy: +1px from their current sizes. */
.home-split-hero .hero-lead {
  font-size: 18px !important;
}
.inner-hero .inner-hero-copy > p:last-child,
.not-found .not-found-copy p {
  font-size: 18px !important;
}
.story-lead {
  font-size: 19px !important;
}

/* CTA descriptions. */
.about-page .closing-cta .cta-description,
.events-page .events-closing-cta .cta-description,
.closing-cta .cta-description,
.campaign-section p,
.shop-enquiry-section .shop-enquiry-inner p {
  font-size: 19px !important;
}

/* Product descriptions: preserve the slightly tighter catalogue hierarchy. */
#product-detail .product-description {
  font-size: 17px !important;
}
.shop-product-card .shop-product-description {
  font-size: 17px;
}
.shop-page-heritage .shop-product-card .shop-product-description {
  font-size: 16px;
}

/* Informational card descriptions. */
.shipping-page .shipping-info-card p,
.returns-page .returns-info-card p,
.payment-page .payment-info-card p {
  font-size: 17px;
}

@media (max-width: 767px) {
  /* Keep the mobile increase equally subtle where these were 15–16px. */
  .home-split-hero .hero-lead {
    font-size: 17px !important;
  }
  .about-page .closing-cta .cta-description,
  .events-page .events-closing-cta .cta-description,
  .closing-cta .cta-description,
  .campaign-section p,
  .shop-enquiry-section .shop-enquiry-inner p {
    font-size: 17px !important;
  }
  .shipping-page .shipping-info-card p,
  .returns-page .returns-info-card p,
  .payment-page .payment-info-card p {
    font-size: 16px;
  }
}

/* ================================================================
   SELECTED SECTION FULL-WIDTH COPY
   Keep the requested supporting descriptions open across the full
   content container. Preserve the Home benefits heading width while
   allowing the About "Our direction" heading to use the full width.
   ================================================================ */
.home-page .benefits-section .title-area {
  max-width: none;
  width: 100%;
}
.home-page .benefits-section .title-area h2 {
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.home-page .benefits-section .title-area p,
.about-page .what-matters-section .title-area p {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.about-page .brand-foundations .title-area {
  max-width: none;
  width: 100%;
}
.about-page .brand-foundations .title-area h2,
.about-page .brand-foundations .title-area p {
  max-width: none;
  width: 100%;
}


/* Single product page: refined title scale and catalogue-style stock badge. */
#product-detail .product-summary h1 {
  font-size: clamp(30px, 3.4vw, 44px) !important;
  line-height: 1.1 !important;
}
#product-detail .stock-state {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  margin: 0 0 20px !important;
  padding: 7px 13px !important;
  border: 1px solid rgba(22, 142, 187, 0.20) !important;
  border-radius: 999px !important;
  background: rgba(22, 142, 187, 0.08) !important;
  color: #168ebb !important;
  font-family: var(--read-font) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}
#product-detail .stock-state i {
  font-size: .95rem !important;
}
@media (max-width: 575px) {
  #product-detail .product-summary h1 {
    font-size: clamp(28px, 8.5vw, 35px) !important;
  }
  #product-detail .stock-state {
    padding: 6px 11px !important;
    font-size: .72rem !important;
  }
}

/* INTERNAL PAGE HERO HEIGHT — SLIGHT INCREASE
   Home hero intentionally excluded. */
.inner-hero .container-xl.hero-image-layout {
  padding-top: 135px !important;
  padding-bottom: 135px !important;
}
.inner-hero.compact .container-xl.hero-image-layout {
  padding-top: 118px !important;
  padding-bottom: 118px !important;
}
.not-found > div.not-found-grid {
  padding-top: 135px !important;
  padding-bottom: 135px !important;
}
@media (max-width: 767px) {
  .inner-hero .container-xl.hero-image-layout,
  .inner-hero.compact .container-xl.hero-image-layout {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
  }
  .not-found > div.not-found-grid {
    padding-top: 102px !important;
    padding-bottom: 102px !important;
  }
}

/* ABOUT PAGE — MOBILE-ONLY ALIGNMENT & SPACING REFINEMENTS */
@media (max-width: 767px) {
  /* First About section: reduce the gap between the image and "How it began". */
  .about-page .content-split {
    gap: 3rem !important;
  }

  /* What matters to us: left-align the full intro group on mobile. */
  .about-page .what-matters-section .title-area {
    text-align: left !important;
  }
  .about-page .what-matters-section .title-area .sec-subtitle,
  .about-page .what-matters-section .title-area h2,
  .about-page .what-matters-section .title-area p {
    text-align: left !important;
  }
  .about-page .what-matters-section .title-area h2 {
    margin-bottom: 16px !important;
  }

  /* Our direction: left-align subheading, heading and description on mobile. */
  .about-page .brand-foundations .title-area {
    text-align: left !important;
  }
  .about-page .brand-foundations .title-area .sec-subtitle,
  .about-page .brand-foundations .title-area h2,
  .about-page .brand-foundations .title-area p {
    text-align: left !important;
  }
}

/* Mobile header/nav refinement: compact brand-left layout, account access, flat primary links. */
@media (max-width: 575px) {
  .store-header .header-inner {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding-left: 4px !important;
    padding-right: 8px !important;
  }

  .store-header .logo-area {
    justify-self: start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .store-header .account-link {
    display: grid !important;
  }

  /* Mobile Shop is intentionally a single link, never a dropdown. */
  .mobile-navigation .has-submenu > .sub-menu {
    display: none !important;
  }

  /* Keep only the requested navigation links in the mobile drawer. */
  .mobile-contact {
    display: none !important;
  }
}


/* Mobile header correction: restored white header, blue announcement bar, edge-to-edge logo/actions and exact five-link drawer. */
@media (max-width: 575px) {
  .store-header .header-inner.container {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 58px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 12px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
  }

  .store-header .logo-area {
    display: block !important;
    flex: 0 0 auto !important;
    justify-self: auto !important;
    margin: 0 auto 0 0 !important;
    line-height: 0 !important;
  }

  .store-header .site-logo {
    margin: 0 !important;
  }

  .store-header .header-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    justify-content: flex-end !important;
    gap: 7px !important;
  }

  .store-header .header-actions .header-icon {
    flex: 0 0 35px !important;
    width: 35px !important;
    height: 35px !important;
    border-radius: var(--radius-control) !important;
  }

  .store-header .account-link {
    display: grid !important;
  }

  .mobile-navigation > ul {
    display: block !important;
  }

  .mobile-navigation > ul > li {
    display: block !important;
  }

  .mobile-navigation > ul > li > a {
    display: block !important;
  }

  .mobile-contact {
    display: none !important;
  }
}

/* EVENTS PAGE — MOBILE-ONLY LEFT ALIGNMENT */
@media (max-width: 767px) {
  .events-page #upcoming .section-heading {
    align-items: flex-start !important;
    text-align: left !important;
  }

  .events-page #upcoming .section-heading > div,
  .events-page #upcoming .section-heading .sec-subtitle,
  .events-page #upcoming .section-heading h2,
  .events-page #upcoming .section-heading > p {
    text-align: left !important;
  }

  .events-page #upcoming .section-heading > p.status-pill {
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .events-page #past .title-area,
  .events-page #past .title-area .sec-subtitle,
  .events-page #past .title-area h2,
  .events-page #past .title-area p {
    text-align: left !important;
  }

  .events-page #past .title-area p {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* ================================================================
   HOME PRODUCTS — MATCH SHOP MOBILE LAYOUT ON ALL DEVICES
   Home only: use the approved single-column mobile product-card flow
   consistently on desktop, tablet, and mobile.
   ================================================================ */
.home-product-description {
  display: none;
}
.home-mobile-replacement {
  display: none !important;
}

#home-products {
  grid-template-columns: minmax(0, 1fr) !important;
  column-gap: 0 !important;
  row-gap: 38px !important;
  align-items: stretch !important;
}

/* Replace one duplicated 3-Pack Wooden Spoon Set on all devices. */
#home-products .product-card[data-sku="FP-552"] {
  display: none !important;
}
#home-products .home-mobile-replacement {
  display: flex !important;
}

#home-products .product-card {
  display: flex !important;
  min-width: 0 !important;
  height: 100% !important;
  flex-direction: column !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: var(--radius-card) !important;
  background: #fff !important;
  box-shadow: var(--shadow-card) !important;
}

#home-products .product-card .product-visual.home-product-photo {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid #efefef !important;
  border-radius: var(--radius-media) !important;
  background: #f7f4f0 !important;
}
#home-products .product-card .home-product-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

#home-products .product-card .product-info {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  grid-template-rows: none !important;
  box-sizing: border-box !important;
  width: 100% !important;
  padding: 18px 18px 20px !important;
  text-align: left !important;
}
#home-products .product-card .product-category {
  min-height: 0 !important;
  margin: 0 0 7px !important;
  color: var(--brand-blue) !important;
  font-size: 12px !important;
  font-style: italic !important;
  font-weight: 600 !important;
  letter-spacing: .075em !important;
  line-height: 1.25 !important;
}
#home-products .product-card .product-info h3 {
  display: block !important;
  min-height: 0 !important;
  margin: 0 0 10px !important;
  font-size: 21px !important;
  font-style: italic !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: left !important;
}
#home-products .product-card .product-stock {
  display: none !important;
}
#home-products .product-card .product-price {
  min-height: 0 !important;
  margin: 0 0 10px !important;
  color: var(--brand-magenta) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
#home-products .product-card .home-product-description {
  display: -webkit-box !important;
  min-height: 0 !important;
  margin: 0 0 12px !important;
  overflow: hidden !important;
  color: #666 !important;
  font-family: var(--body-font) !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  text-align: left !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
}
#home-products .product-card .home-product-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-self: auto !important;
  width: 100% !important;
  gap: 12px !important;
  margin: auto 0 0 !important;
}


@media (max-width: 575px) {
  #home-products {
    grid-template-columns: 1fr !important;
    row-gap: 38px !important;
  }
  #home-products .product-card .product-info {
    padding: 18px 20px 22px !important;
  }
}

@media (max-width: 420px) {
  #home-products .product-card .home-product-actions {
    grid-template-columns: 1fr !important;
  }
}

/* ================================================================
   FINAL HERO CLARITY UPDATE
   - Home: improve text clarity only; keep the hero free of any black backing.
   - Internal page heroes: remove the content halo and use white hero text.
   ================================================================ */

/* HOME HERO: stronger, cleaner text definition without a panel or radial halo. */
.home-page .home-split-hero .hero-copy::before {
  content: none !important;
  display: none !important;
  background: none !important;
  filter: none !important;
}

.home-page .home-split-hero .eyebrow,
.home-page .home-split-hero .hero-lead,
.home-page .home-split-hero .text-link {
  color: #fff !important;
  font-weight: 700 !important;
}

.home-page .home-split-hero .hero-lead,
.home-page .home-split-hero .text-link {
  text-shadow:
    0 2px 3px rgba(0, 0, 0, .98),
    0 0 5px rgba(0, 0, 0, .92),
    0 0 11px rgba(0, 0, 0, .60) !important;
}

.home-page .home-split-hero .eyebrow,
.home-page .home-split-hero .text-link {
  -webkit-text-stroke: .28px rgba(255, 255, 255, .48);
  paint-order: stroke fill;
}

.home-page .home-split-hero .hero-title-blue,
.home-page .home-split-hero .hero-title-pink {
  -webkit-text-stroke: 1px rgba(255, 255, 255, .86) !important;
  paint-order: stroke fill;
}

/* INTERNAL PAGE HEROES ONLY: no black halo behind the copy. */
body:not(.home-page) .inner-hero .inner-hero-copy::before {
  content: none !important;
  display: none !important;
  background: none !important;
  filter: none !important;
  opacity: 0 !important;
}

/* INTERNAL PAGE HEROES ONLY: all hero text is white, including formerly pink words. */
body:not(.home-page) .inner-hero .inner-hero-copy,
body:not(.home-page) .inner-hero .inner-hero-copy h1,
body:not(.home-page) .inner-hero .inner-hero-copy h1 span,
body:not(.home-page) .inner-hero .inner-hero-copy .section-heading-pink,
body:not(.home-page) .inner-hero .inner-hero-copy p,
body:not(.home-page) .inner-hero .inner-hero-copy .eyebrow {
  color: #fff !important;
}

/* Keep internal white hero text crisp over the moving splash without recreating a backing halo. */
body:not(.home-page) .inner-hero .inner-hero-copy h1,
body:not(.home-page) .inner-hero .inner-hero-copy h1 span {
  -webkit-text-stroke: .45px rgba(255, 255, 255, .38) !important;
  paint-order: stroke fill;
  text-shadow:
    0 2px 3px rgba(0, 0, 0, .96),
    0 0 6px rgba(0, 0, 0, .74) !important;
}

body:not(.home-page) .inner-hero .inner-hero-copy p,
body:not(.home-page) .inner-hero .inner-hero-copy .eyebrow {
  text-shadow:
    0 2px 3px rgba(0, 0, 0, .96),
    0 0 5px rgba(0, 0, 0, .70) !important;
}

/* ================================================================
   HOME PRODUCTS — DESKTOP + TABLET FOUR-COLUMN ROW
   Keep the approved product-card styling, but show all four Home
   products next to each other from tablet width upward. Mobile stays
   one product per row.
   ================================================================ */
@media (min-width: 768px) {
  body.home-page #home-products {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 24px !important;
    row-gap: 24px !important;
    align-items: stretch !important;
  }
}

/* ================================================================
   CTA CONTENT — NO GLASS PANEL
   Keep CTA content directly over the video. Remove the legacy halo
   and all frosted/translucent panel styling without changing buttons.
   ================================================================ */

/* Do not allow the older feathered CTA halo to return. */
.campaign-section .campaign-inner::before,
.shop-enquiry-section .shop-enquiry-inner::before,
.closing-cta > .container-xl::before {
  content: none !important;
  display: none !important;
}

/* CTA copy sits directly over the video — no glass surface. */
.campaign-section .campaign-inner > div:first-child,
.shop-enquiry-section .shop-enquiry-inner,
.closing-cta > .container-xl {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background-clip: border-box !important;
}

/* ================================================================
   SHOP PRODUCT CARD INNER SPACING — FINAL
   Add breathing room around product copy and actions without changing
   the product grid, image sizing, typography or button styling.
   ================================================================ */
.shop-page-heritage .shop-product-card .product-info,
.shop-product-card .product-info {
  box-sizing: border-box !important;
  padding: 20px 14px 16px !important;
}

@media (max-width: 767px) {
  .shop-page-heritage .shop-product-card .product-info,
  .shop-product-card .product-info {
    padding: 18px 12px 14px !important;
  }
}

/* ================================================================
   UNIVERSAL SUBTLE SHADOW SYSTEM
   One shared, responsive shadow treatment for cards and button-like
   controls. Deliberate structural effects (sticky header, drawers,
   video/glass panels and artwork) remain unchanged.
   ================================================================ */

/* Card and panel surfaces. */
.category-card,
.gift-finder .finder-grid a.finder-card,
.product-card,
.story-section .story-visual .story-card,
.benefit-grid article,
.event-card,
.events-page .memory-grid article,
.brand-foundations-grid article,
.contact-cards article,
.contact-form,
.account-card,
.product-tabs article,
.cart-summary,
.checkout-summary,
.empty-state,
.order-confirmation,
.shop-note-reference,
.shop-note,
.payment-pending,
.policy-note,
.shipping-page .shipping-info-card,
.returns-page .returns-info-card,
.payment-page .payment-info-card,
.trust-strip .trust-grid,
.shop-trust-grid,
.shop-toolbar,
.filter-panel,
.choice-grid label > span,
.payment-choice > span {
  box-shadow: var(--shadow-card) !important;
}

/* Add only the shadow transition to static surfaces that do not already
   animate movement; existing component transitions remain untouched. */
.story-section .story-visual .story-card,
.benefit-grid article,
.event-card,
.events-page .memory-grid article,
.brand-foundations-grid article,
.contact-cards article,
.contact-form,
.account-card,
.product-tabs article,
.cart-summary,
.checkout-summary,
.empty-state,
.order-confirmation,
.shop-note-reference,
.shop-note,
.payment-pending,
.policy-note,
.trust-strip .trust-grid,
.shop-trust-grid,
.shop-toolbar,
.filter-panel,
.choice-grid label > span {
  transition: box-shadow var(--shadow-transition);
}

.category-card:hover,
.category-card:focus-visible,
.gift-finder .finder-grid a.finder-card:hover,
.gift-finder .finder-grid a.finder-card:focus-visible,
.product-card:hover,
.product-card:focus-within,
.story-section .story-visual .story-card:hover,
.benefit-grid article:hover,
.event-card:hover,
.events-page .memory-grid article:hover,
.brand-foundations-grid article:hover,
.contact-cards article:hover,
.contact-form:hover,
.account-card:hover,
.product-tabs article:hover,
.cart-summary:hover,
.checkout-summary:hover,
.empty-state:hover,
.order-confirmation:hover,
.shop-note-reference:hover,
.shop-note:hover,
.payment-pending:hover,
.policy-note:hover,
.shipping-page .shipping-info-card:hover,
.returns-page .returns-info-card:hover,
.payment-page .payment-info-card:hover,
.trust-strip .trust-grid:hover,
.shop-trust-grid:hover,
.shop-toolbar:hover,
.filter-panel:hover,
.choice-grid label:hover > span,
.payment-choice:hover > span {
  box-shadow: var(--shadow-card-hover) !important;
}

/* Preserve checkout selection rings while using the same card depth. */
.choice-grid input:checked + span {
  box-shadow: 0 0 0 2px rgba(22, 142, 187, 0.13), var(--shadow-card) !important;
}
.choice-grid label:hover input:checked + span {
  box-shadow: 0 0 0 2px rgba(22, 142, 187, 0.13), var(--shadow-card-hover) !important;
}
.payment-choice > input:checked + span {
  box-shadow: 0 0 0 3px rgba(22, 142, 187, 0.12), var(--shadow-card) !important;
}
.payment-choice:hover > input:checked + span {
  box-shadow: 0 0 0 3px rgba(22, 142, 187, 0.12), var(--shadow-card-hover) !important;
}

/* Button-like controls. Plain navigation/text links, backdrops and
   non-button structural controls are intentionally excluded. */
.vs-btn,
.slider-btn,
button.vs-btn,
.header-icon,
.quick-add,
.filter-toggle,
.accordion-button,
.filter-drawer-close,
.cart-qty button,
.remove-item,
.drawer-close,
.drawer-items button,
.search-close,
.mobile-menu-close,
.floating-store-actions .floating-cart-button,
.floating-store-actions .floating-whatsapp-button,
.footer-social a,
.shop-category-chips a,
.product-thumbs button,
.slick-prev,
.slick-next,
.mfp-close,
.mfp-arrow {
  box-shadow: var(--shadow-button) !important;
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease,
    box-shadow var(--shadow-transition) !important;
}

.vs-btn:hover,
.vs-btn:focus-visible,
.slider-btn:hover,
.slider-btn:focus-visible,
button.vs-btn:hover,
button.vs-btn:focus-visible,
.header-icon:hover,
.header-icon:focus-visible,
.quick-add:hover,
.quick-add:focus-visible,
.filter-toggle:hover,
.filter-toggle:focus-visible,
.accordion-button:hover,
.accordion-button:focus-visible,
.filter-drawer-close:hover,
.filter-drawer-close:focus-visible,
.cart-qty button:hover,
.cart-qty button:focus-visible,
.remove-item:hover,
.remove-item:focus-visible,
.drawer-close:hover,
.drawer-close:focus-visible,
.drawer-items button:hover,
.drawer-items button:focus-visible,
.search-close:hover,
.search-close:focus-visible,
.mobile-menu-close:hover,
.mobile-menu-close:focus-visible,
.floating-store-actions .floating-cart-button:hover,
.floating-store-actions .floating-cart-button:focus-visible,
.floating-store-actions .floating-whatsapp-button:hover,
.floating-store-actions .floating-whatsapp-button:focus-visible,
.footer-social a:hover,
.footer-social a:focus-visible,
.shop-category-chips a:hover,
.shop-category-chips a:focus-visible,
.product-thumbs button:hover,
.product-thumbs button:focus-visible,
.slick-prev:hover,
.slick-prev:focus-visible,
.slick-next:hover,
.slick-next:focus-visible,
.mfp-close:hover,
.mfp-close:focus-visible,
.mfp-arrow:hover,
.mfp-arrow:focus-visible {
  box-shadow: var(--shadow-button-hover) !important;
}

.vs-btn:disabled,
.shop-add-btn:disabled,
.cart-qty button:disabled,
.quick-add:disabled {
  box-shadow: var(--shadow-button) !important;
}

/* The filter sidebar becomes a visible card/panel only on tablet/mobile. */
@media (max-width: 860px) {
  .shop-page-heritage .shop-filter-sidebar {
    box-shadow: var(--shadow-card) !important;
    transition: box-shadow var(--shadow-transition);
  }
  .shop-page-heritage .shop-filter-sidebar:hover {
    box-shadow: var(--shadow-card-hover) !important;
  }
}

/* ================================================================
   HOME PAGE — HERO / CTA / FAQ REFINEMENTS
   Home-only adjustments requested for the final composition.
   ================================================================ */

/* Match the Home CTA supporting copy to the Home hero description typography. */
body.home-page .campaign-section p {
  color: #fff !important;
  font-size: 21px !important;
  line-height: 1.65 !important;
  font-weight: 700 !important;
  text-shadow:
    0 2px 3px rgba(0, 0, 0, .98),
    0 0 5px rgba(0, 0, 0, .92),
    0 0 11px rgba(0, 0, 0, .60) !important;
}

/* Give the Home FAQ comfortable breathing room from the left viewport edge. */
body.home-page .faq-section .faq-grid {
  box-sizing: border-box;
  padding-left: clamp(24px, 4vw, 64px) !important;
}

/* Home FAQ questions only: slightly reduce the question size and give
   every question row comfortable internal left spacing. */
body.home-page .faq-section .accordion-button {
  padding-left: 28px !important;
  padding-right: 28px !important;
  font-size: 1.3rem !important;
}

/* Keep every Home FAQ answer aligned with its question text instead of
   sitting against the left edge of the accordion card. */
body.home-page .faq-section .accordion-body {
  padding-left: 28px !important;
}

@media (max-width: 575px) {
  body.home-page .campaign-section p {
    font-size: 20px !important;
    line-height: 1.6 !important;
    font-weight: 600 !important;
    text-shadow:
      0 1px 0 rgba(0, 0, 0, .98),
      0 2px 3px rgba(0, 0, 0, .90),
      0 4px 8px rgba(0, 0, 0, .58) !important;
  }

  body.home-page .faq-section .faq-grid {
    padding-left: 22px !important;
  }

  body.home-page .faq-section .accordion-button {
    padding-left: 22px !important;
    padding-right: 22px !important;
    font-size: 1.15rem !important;
  }

  body.home-page .faq-section .accordion-body {
    padding-left: 22px !important;
  }
}


/* Desktop-only branded squirrel cursor. Keep text-entry controls native for usability. */
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  html,
  body {
    cursor: url("../images/squirrel-cursor-v3.webp") 10 7, default !important;
  }

  a,
  button,
  [role="button"],
  .header-icon,
  .vs-btn,
  .slider-btn,
  .quick-add,
  .filter-toggle,
  .accordion-button,
  .cart-qty button,
  .remove-item,
  .drawer-close,
  .mobile-menu-close,
  label,
  select {
    cursor: url("../images/squirrel-cursor-v3.webp") 10 7, pointer !important;
  }

  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="number"],
  textarea {
    cursor: text !important;
  }
}
