:root{
  --ff-bg:#FFFFFF;
  --ff-surface:#FFFFFF;
  --ff-ink:#22271F;
  --ff-accent:#2E7053;
  --ff-accent2:#4C86A0;
  --ff-tint:#F1F5EF;
  --ff-radius-sm:4px;
  --ff-radius-md:8px;
  --ff-font-display:'Big Shoulders Display', sans-serif;
  --ff-font-body:'Work Sans', sans-serif;
}

body{background:var(--ff-bg);color:var(--ff-ink);font-family:var(--ff-font-body);}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-font-display);font-weight:800;line-height:1.08;letter-spacing:0;color:var(--ff-ink);}
a{color:var(--ff-accent);}

/* ---- Announcement bar ---- */
.ff-announce{background:var(--ff-accent);color:#fff;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;text-align:center;padding:10px 24px;}

/* ---- Utility row ---- */
.ff-utility{background:#fff;border-bottom:1px solid rgba(34,39,31,.08);font-size:13px;}
.ff-utility-inner{max-width:1280px;margin:0 auto;padding:10px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.ff-utility a{color:var(--ff-ink);text-decoration:none;margin-right:20px;}
.ff-utility a:hover{color:var(--ff-accent);}
.ff-utility-links span{color:rgba(34,39,31,.6);}

/* ---- Main header ---- */
.ff-header{background:var(--ff-surface);border-bottom:1px solid rgba(34,39,31,.1);position:relative;z-index:50;}
.ff-header-inner{max-width:1280px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:32px;}
.ff-logo img{max-height:56px;width:auto;display:block;}
.ff-search{flex:1;max-width:560px;display:flex;border:1px solid rgba(34,39,31,.2);border-radius:var(--ff-radius-sm);overflow:hidden;}
.ff-search select{border:none;border-right:1px solid rgba(34,39,31,.15);background:#fafafa;padding:0 10px;font-family:var(--ff-font-body);font-size:13px;color:var(--ff-ink);max-width:150px;}
.ff-search input{flex:1;border:none;padding:10px 14px;font-family:var(--ff-font-body);font-size:14px;background:transparent;outline:none;}
.ff-search button{background:var(--ff-accent);border:none;color:#fff;padding:0 18px;cursor:pointer;font-size:16px;}
.ff-header-actions{display:flex;align-items:center;gap:24px;margin-left:auto;}
.ff-header-actions>a{color:var(--ff-ink);text-decoration:none;font-size:13px;font-weight:600;}
.ff-header-actions>a:hover{color:var(--ff-accent);}
.ff-advice{display:flex;flex-direction:column;line-height:1.3;}
.ff-advice-label{font-size:11px;color:rgba(34,39,31,.55);font-weight:500;}
.ff-advice-phone{font-weight:700;}
.ff-cart-count{background:var(--ff-accent);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;margin-left:4px;}

/* ---- Mega menu nav ---- */
.ff-nav{background:#fff;border-bottom:1px solid rgba(34,39,31,.1);position:relative;}
.ff-nav::after{content:'';position:absolute;top:0;right:0;bottom:1px;width:32px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 85%);pointer-events:none;}
.ff-nav-inner{max-width:1280px;margin:0 auto;padding:0 16px;display:flex;position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.ff-nav-inner::-webkit-scrollbar{display:none;height:0;}
.ff-nav-item{position:relative;}
.ff-nav-item>a{display:block;color:var(--ff-ink);text-decoration:none;padding:14px 6px;font-size:11.5px;font-weight:600;letter-spacing:0;white-space:nowrap;border-bottom:2px solid transparent;}
.ff-nav-item:hover>a, .ff-nav-item.active>a{color:var(--ff-accent);border-bottom-color:var(--ff-accent);}
.ff-mega{display:none;position:fixed;background:#fff;box-shadow:0 12px 24px rgba(0,0,0,.15);min-width:220px;padding:20px;border-radius:var(--ff-radius-md);z-index:9999;}
.ff-nav-item:hover .ff-mega{display:flex;gap:32px;}
.ff-mega-col a{display:block;color:var(--ff-ink);text-decoration:none;font-size:13px;padding:5px 0;}
.ff-mega-col a:hover{color:var(--ff-accent);text-decoration:underline;}
.ff-mega-col-title{font-family:var(--ff-font-display);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ff-accent);margin-bottom:8px;}
.ff-nav-toggle{display:none;background:none;border:none;color:var(--ff-ink);font-size:22px;padding:14px 18px;cursor:pointer;}

@media(max-width:900px){
  .ff-search{display:none;}
  .ff-nav-inner{flex-direction:column;display:none;}
  .ff-nav-inner.ff-open{display:flex;}
  .ff-nav-toggle{display:block;}
  .ff-mega{position:static;box-shadow:none;display:none !important;}
  .ff-nav-item.ff-expanded .ff-mega{display:flex !important;flex-direction:column;gap:4px;}
}

/* ---- Footer ---- */
.ff-footer{background:var(--ff-tint);color:var(--ff-ink);margin-top:64px;border-top:1px solid rgba(34,39,31,.08);}
.ff-footer-top{max-width:1280px;margin:0 auto;padding:56px 24px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:32px;}
.ff-footer-col-title{font-family:var(--ff-font-display);font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--ff-accent);margin-bottom:14px;}
.ff-footer-col a{display:block;color:rgba(34,39,31,.75);text-decoration:none;font-size:14px;padding:4px 0;}
.ff-footer-col a:hover{color:var(--ff-accent);}
.ff-footer-about p{font-size:14px;line-height:1.6;margin:0 0 16px;}
.ff-footer-newsletter input{width:100%;padding:10px 12px;border-radius:var(--ff-radius-sm);border:1px solid rgba(34,39,31,.2);background:#fff;color:var(--ff-ink);margin-bottom:8px;font-family:var(--ff-font-body);}
.ff-footer-newsletter button{width:100%;background:var(--ff-accent);color:#fff;border:none;padding:10px;border-radius:var(--ff-radius-sm);font-weight:600;cursor:pointer;}
.ff-footer-bottom{border-top:1px solid rgba(34,39,31,.1);padding:20px 24px;max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:rgba(34,39,31,.7);}
.ff-payment-icons{display:flex;gap:8px;opacity:.8;font-size:12px;}
@media(max-width:900px){.ff-footer-top{grid-template-columns:1fr 1fr;}}

/* ================= WooCommerce -- shared components ================= */
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-Button, a.checkout-button{
  background:var(--ff-accent) !important; color:#fff !important; border:none !important; border-radius:var(--ff-radius-sm) !important;
  padding:12px 22px !important; font-family:var(--ff-font-body) !important; font-weight:600 !important; font-size:13px !important;
  text-transform:uppercase; letter-spacing:.05em; box-shadow:none !important;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{ background:#173F30 !important; }
.woocommerce span.onsale{ background:var(--ff-accent2) !important; border-radius:var(--ff-radius-sm); font-family:var(--ff-font-body); font-weight:700; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before{ color:var(--ff-accent) !important; }

/* ---- Shop / category loop ---- */
.woocommerce ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:24px; max-width:1280px; margin:0 auto; padding:0 24px; }
.woocommerce ul.products li.product{ background:var(--ff-surface); border:1px solid rgba(34,39,31,.12); border-radius:var(--ff-radius-md); overflow:hidden; padding:0 !important; margin:0 !important; }
.woocommerce ul.products li.product img{ border-radius:0 !important; aspect-ratio:1/1; object-fit:cover; margin:0 !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--ff-font-body); font-weight:600; font-size:14px; padding:12px 14px 0; color:var(--ff-ink); }
.woocommerce ul.products li.product .price{ padding:4px 14px 14px; color:var(--ff-accent) !important; font-weight:700; }
.woocommerce ul.products li.product .price del{ color:rgba(34,39,31,.4); }
.woocommerce ul.products li.product .button{ margin:0 14px 14px; width:calc(100% - 28px); }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ border-color:rgba(34,39,31,.15) !important; color:var(--ff-ink) !important; border-radius:var(--ff-radius-sm) !important; }
.woocommerce nav.woocommerce-pagination ul li .current{ background:var(--ff-accent) !important; border-color:var(--ff-accent) !important; }
@media(max-width:900px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); } }

/* ---- Breadcrumb / page header ---- */
.woocommerce-breadcrumb{ max-width:1280px; margin:0 auto; padding:20px 24px 0; font-size:13px; color:rgba(34,39,31,.6); }
.woocommerce-breadcrumb a{ color:rgba(34,39,31,.6); }
.page-title, .woocommerce-products-header__title{ max-width:1280px; margin:8px auto 24px; padding:0 24px; font-size:36px; }

/* ---- Single product ---- */
.woocommerce div.product{ max-width:1280px; margin:0 auto; padding:32px 24px; }
.woocommerce div.product .woocommerce-product-gallery{ border:1px solid rgba(34,39,31,.12); border-radius:var(--ff-radius-md); overflow:hidden; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--ff-accent) !important; font-size:26px; font-weight:800; font-family:var(--ff-font-display); }
.woocommerce div.product .product_title{ font-size:34px; margin-bottom:8px; }
.woocommerce div.product form.cart .quantity input.qty{ border:1px solid rgba(34,39,31,.2); border-radius:var(--ff-radius-sm); padding:12px; font-family:var(--ff-font-body); }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ border:none; background:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ font-family:var(--ff-font-display); font-weight:800; text-transform:uppercase; font-size:13px; letter-spacing:.03em; color:rgba(34,39,31,.5); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--ff-accent); border-bottom:2px solid var(--ff-accent); }
.woocommerce div.product .woocommerce-tabs .panel{ border-top:1px solid rgba(34,39,31,.12); padding-top:20px; }

/* ---- Cart ---- */
.woocommerce-cart table.cart, .woocommerce-cart .cart_totals{ border:1px solid rgba(34,39,31,.12); border-radius:var(--ff-radius-md); }
.woocommerce-cart table.cart th{ font-family:var(--ff-font-display); text-transform:uppercase; font-size:12px; letter-spacing:.04em; background:rgba(31,93,69,.05); }
.woocommerce-cart .cart_totals h2{ font-size:20px; }
.woocommerce-cart .cart_totals .order-total .amount{ color:var(--ff-accent); font-weight:800; }

/* ---- Checkout ---- */
.woocommerce-checkout .woocommerce-billing-fields h3, .woocommerce-checkout #order_review_heading{ font-size:20px; }
.woocommerce-checkout input.input-text, .woocommerce-checkout select, .woocommerce-checkout textarea{
  border:1px solid rgba(34,39,31,.2) !important; border-radius:var(--ff-radius-sm) !important; padding:12px !important; font-family:var(--ff-font-body) !important;
}
.woocommerce-checkout #order_review, .woocommerce-checkout table.shop_table{ border:1px solid rgba(34,39,31,.12); border-radius:var(--ff-radius-md); background:var(--ff-surface); }
.woocommerce-checkout .place-order .button{ width:100%; padding:16px !important; font-size:14px !important; }

/* ---- Content width safety net for full-width (no sidebar) layout ---- */
.content-area{ float:none !important; width:100% !important; max-width:1280px; margin:0 auto; }
.ff-chevron{font-size:10px;opacity:.6;margin-left:2px;}

/* ---- Entry title safety net (Storefront's default page/post title) ---- */
.entry-title{max-width:1280px;margin:24px auto;padding:0 24px;box-sizing:border-box;}
body.page-id-5 .entry-title{display:none;}
.content-area, #content{padding:0;max-width:none;}
/* ---- Fix: WooCommerce's legacy float/width layout was fighting our CSS grid ---- */
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last{
  width:auto !important;
  float:none !important;
  margin:0 !important;
  clear:none !important;
}
.woocommerce ul.products{
  margin-left:0 !important;
}
.woocommerce ul.products li.product a{
  width:auto !important;
  float:none !important;
}
.woocommerce ul.products li.product .button{
  display:block !important;
  white-space:nowrap !important;
  text-align:center !important;
}

/* ---- Result count / ordering / pagination bar: give it the same padded container as everything else ---- */
.woocommerce-result-count,
.woocommerce-ordering{
  max-width:1280px;
  margin:0 auto !important;
  padding:0 24px;
  box-sizing:border-box;
  display:inline-block;
}
.woocommerce nav.woocommerce-pagination{
  max-width:1280px;
  margin:24px auto !important;
  padding:0 24px;
  box-sizing:border-box;
}
.ff-shop-wrap{max-width:1280px;margin:0 auto;padding:0 24px;box-sizing:border-box;}
.ff-shop-wrap ul.products{padding:0 !important;max-width:none !important;}

/* ---- Global layout safety net: prevent any element from breaking horizontal alignment ---- */
html, body{overflow-x:hidden;max-width:100%;}
img{max-width:100%;height:auto;}
.ff-bio, .ff-feature, .ff-cat-grid, .ff-contact-grid{min-width:0;}
.ff-bio > *, .ff-feature > *{min-width:0;}
.ff-bio img, .ff-feature img{width:100% !important;height:auto !important;max-width:100% !important;display:block;}
* { box-sizing: border-box; }
/* ---- Shop layout: filter sidebar + main content ---- */
.ff-shop-layout{display:flex;gap:32px;max-width:1280px;margin:0 auto;padding:0 24px;align-items:flex-start;}
.ff-shop-filters{width:240px;flex:0 0 240px;border:1px solid rgba(34,39,31,.1);border-radius:var(--ff-radius-md);padding:20px;}
.ff-shop-main{flex:1;min-width:0;}
.ff-shop-main .ff-shop-wrap{max-width:none;padding:0;}
.ff-shop-main .woocommerce-breadcrumb, .ff-shop-main .page-title, .ff-shop-main .entry-title{max-width:none;margin:0 0 16px;padding:0;}

.ff-filter-block{padding:16px 0;border-bottom:1px solid rgba(34,39,31,.1);}
.ff-filter-block:first-child{padding-top:0;}
.ff-filter-block:last-child{border-bottom:none;}
.ff-filter-block h4{font-family:var(--ff-font-display);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;}
.ff-filter-list{list-style:none;margin:0;padding:0;}
.ff-filter-list li{margin-bottom:8px;}
.ff-filter-list a{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ff-ink);font-size:13px;}
.ff-filter-list a:hover{color:var(--ff-accent);}
.ff-filter-list .count{color:rgba(34,39,31,.45);margin-left:auto;}
.ff-checkbox{width:14px;height:14px;border:1px solid rgba(34,39,31,.3);border-radius:3px;display:inline-block;flex-shrink:0;}

.ff-filter-block .price_slider_wrapper .price_slider{margin-bottom:14px;}
.ff-filter-block .price_slider_amount{font-size:12px;}
.ff-filter-block .price_slider_amount .button{width:auto !important;padding:6px 12px !important;font-size:11px !important;}
.ff-filter-block .wc-layered-nav-rating{list-style:none;margin:0;padding:0;}
.ff-filter-block .wc-layered-nav-rating li{margin-bottom:8px;}
.ff-filter-block .wc-layered-nav-rating a{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--ff-ink);font-size:13px;}
.ff-filter-block .star-rating{color:#F5A623;}

/* ---- Toolbar: sort + view toggle ---- */
.ff-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 !important;max-width:none !important;}
.ff-toolbar .orderby{border:1px solid rgba(34,39,31,.2);border-radius:var(--ff-radius-sm);padding:8px 12px;font-family:var(--ff-font-body);font-size:13px;}
.ff-view-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(34,39,31,.6);}
.ff-view-btn{border:1px solid rgba(34,39,31,.2);background:#fff;width:32px;height:32px;border-radius:var(--ff-radius-sm);cursor:pointer;font-size:14px;color:var(--ff-ink);}
.ff-view-btn.active{background:var(--ff-accent);color:#fff;border-color:var(--ff-accent);}

.woocommerce ul.products.ff-list-view{grid-template-columns:1fr !important;}
.woocommerce ul.products.ff-list-view li.product{display:grid !important;grid-template-columns:140px 1fr auto;gap:16px;align-items:center;padding:12px !important;}
.woocommerce ul.products.ff-list-view li.product img{aspect-ratio:1/1;}
.woocommerce ul.products.ff-list-view li.product .button{margin:0 !important;width:auto !important;padding:10px 20px !important;}

@media(max-width:900px){
  .ff-shop-layout{flex-direction:column;}
  .ff-shop-filters{width:100%;flex:none;}
}
/* ---- Category hero banner: contained, not full-bleed ---- */
.ff-cat-hero-wrap{max-width:1280px;margin:0 auto;padding:20px 24px 0;}
.ff-cat-breadcrumb{font-size:13px;color:rgba(34,39,31,.55);margin-bottom:12px;}
.ff-cat-breadcrumb a{color:var(--ff-accent);text-decoration:none;}
.ff-cat-hero{background-color:var(--ff-tint);background-size:cover;background-position:center;border-radius:var(--ff-radius-md);padding:40px;min-height:180px;display:flex;flex-direction:column;justify-content:center;margin-bottom:24px;}
.ff-cat-hero h1{color:#fff;font-size:34px;margin:0 0 10px;}
.ff-cat-hero p{color:rgba(255,255,255,.9);max-width:640px;font-size:14px;line-height:1.6;margin:0;}

/* ---- Toolbar: left group (sort + count) vs right group (view toggle) ---- */
.ff-toolbar-left{display:flex;align-items:center;gap:16px;font-size:13px;color:rgba(34,39,31,.6);}
.ff-related-cats{max-width:1280px;margin:32px auto 0;padding:24px;border-top:1px solid rgba(34,39,31,.1);}
.ff-related-cats h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;color:rgba(34,39,31,.6);}
.ff-related-cats-row{display:flex;flex-wrap:wrap;gap:10px;}
.ff-related-cats-row a{border:1px solid rgba(34,39,31,.15);border-radius:999px;padding:8px 16px;font-size:13px;text-decoration:none;color:var(--ff-ink);}
.ff-related-cats-row a:hover{border-color:var(--ff-accent);color:var(--ff-accent);}

/* ---- Related products on single product pages ---- */
.related.products{max-width:1280px;margin:0 auto;padding:0 24px;}
.related.products > h2{font-size:24px;}
.ff-social-link{margin-left:16px;font-size:13px;font-weight:600;}
.ff-footer-social{max-width:1280px;margin:0 auto;padding:16px 24px 0;display:flex;gap:20px;}
.ff-footer-social a{color:rgba(34,39,31,.75);text-decoration:none;font-size:13px;font-weight:600;}
.ff-footer-social a:hover{color:var(--ff-accent);}
.single-post .entry-content{max-width:760px;font-size:16px;line-height:1.7;}
.single-post .entry-content h2{font-size:26px;margin-top:36px;}
.single-post .entry-content h3{font-size:20px;margin-top:24px;}
.single-post .entry-content ul{padding-left:22px;}
.single-post .entry-content li{margin-bottom:6px;}
.single-post .entry-title{max-width:760px;font-size:38px;}

/* ---- Blog index: contained + centered like the rest of the site ---- */
.blog #primary, .archive #primary{max-width:760px;margin:0 auto;padding:40px 24px;}
.blog article.hentry, .archive article.hentry{border-bottom:1px solid rgba(34,39,31,.1);padding-bottom:32px;margin-bottom:32px;}
.blog article.hentry:last-child, .archive article.hentry:last-child{border-bottom:none;}
.blog .entry-header .entry-title, .archive .entry-header .entry-title{display:block;max-width:none;margin:8px 0;padding:0;font-size:26px;}
.blog .entry-header .entry-title a, .archive .entry-header .entry-title a{color:var(--ff-ink);text-decoration:none;}
.blog .posted-on, .archive .posted-on, .blog .post-author, .archive .post-author{font-size:12px;color:rgba(34,39,31,.55);}
.blog .entry-content, .archive .entry-content{max-width:none;font-size:15px;line-height:1.65;color:rgba(34,39,31,.85);}
.blog .ff-read-more, .archive .ff-read-more{display:inline-block;margin-top:8px;color:var(--ff-accent);font-weight:600;text-decoration:none;font-size:14px;}
.blog nav.navigation, .archive nav.navigation{max-width:760px;margin:0 auto;padding:0 24px 40px;}