/*
Theme Name: Costco Replica
Template: storefront
Version: 2.0.0
Description: Costco.ca layout replica for WooCommerce.
*/

:root{
  --cc-blue:#005dab; --cc-blue-dark:#004a89; --cc-red:#c13533;
  --cc-ink:#333333; --cc-gray:#707070; --cc-line:#e3e3e3; --cc-bg:#f7f7f7;
  --cc-teal:#007a87; --cc-star:#f5a623;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Costco Sans Web",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;line-height:1.45;color:var(--cc-ink);background:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.cc-wrap{max-width:1400px;margin:0 auto;padding:0 20px}

/* ---------- 1. red renew bar ---------- */
.cc-renewbar{background:var(--cc-red);color:#fff;font-size:13px;text-align:center;
  padding:9px 12px;letter-spacing:.1px}
.cc-renewbar a{color:#fff;text-decoration:underline}

/* ---------- 2. utility bar ---------- */
.cc-util{background:#f7f7f7;border-bottom:1px solid #ececec}
.cc-util .cc-wrap{display:flex;align-items:center;justify-content:center;gap:26px;
  height:30px;font-size:12px;color:#4a4a4a;position:relative}
.cc-util a:hover{color:var(--cc-blue);text-decoration:underline}
.cc-util .cc-lang{position:absolute;right:20px;display:flex;gap:14px}
.cc-util .cc-lang span{color:#8a8a8a}

/* ---------- 3. main header ---------- */
.cc-head{background:#fff}
.cc-head .cc-wrap{display:flex;align-items:center;gap:26px;height:78px}
.cc-logo img{width:190px;height:auto}
.cc-search{flex:1;max-width:760px;display:flex;align-items:center;border:1px solid #9a9a9a;
  border-radius:3px;height:40px;overflow:hidden;background:#fff}
.cc-search input{flex:1;border:0;outline:0;padding:0 12px;font-size:14px;height:100%}
.cc-search button{border:0;background:#fff;padding:0 12px;cursor:pointer;color:#4a4a4a;height:100%}
.cc-search button:hover{color:var(--cc-blue)}
.cc-head-actions{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:12.5px;color:#4a4a4a}
.cc-head-actions a{display:flex;flex-direction:column;align-items:center;gap:2px;white-space:nowrap}
.cc-head-actions a:hover{color:var(--cc-blue)}
.cc-cart{position:relative;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--cc-ink)}
.cc-cart .count{background:var(--cc-blue);color:#fff;border-radius:999px;min-width:20px;height:20px;
  display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;padding:0 6px}

/* ---------- 4. blue nav ---------- */
.cc-nav{background:var(--cc-blue)}
.cc-nav{position:relative;z-index:70}
.cc-nav .cc-wrap{display:flex;align-items:stretch;height:44px;overflow:visible;gap:0;position:relative}
.cc-nav a{color:#fff;font-size:13px;font-weight:500;padding:0 15px;display:flex;align-items:center;
  white-space:nowrap;border-right:1px solid rgba(255,255,255,.14)}
.cc-nav a:hover{background:var(--cc-blue-dark)}
.cc-nav a.cc-shop{font-weight:600;padding-left:0;gap:8px}
.cc-nav a.cc-shop svg{width:16px;height:16px}

/* ---------- 5. warehouse strip ---------- */
.cc-whs{border-bottom:1px solid #e5e5e5;background:#fff}
.cc-whs .cc-wrap{display:flex;align-items:center;gap:34px;height:56px;font-size:12px;color:#4a4a4a}
.cc-whs .item{display:flex;align-items:flex-start;gap:9px}
.cc-whs .item svg{flex:0 0 auto;margin-top:1px;color:#c13533}
.cc-whs .lbl{color:#8a8a8a;font-size:11.5px;display:block;line-height:1.3}
.cc-whs .val{color:#333;font-weight:600;display:block;line-height:1.35}
.cc-whs .right{margin-left:auto;display:flex;gap:26px;color:#333}
.cc-whs .right a:hover{color:var(--cc-blue)}

/* ---------- 6. promo tiles ---------- */
.cc-tiles{padding:16px 0 6px}
.cc-tiles .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.cc-tile{border:1px solid var(--cc-line);border-radius:6px;background:#fff;display:flex;
  align-items:center;justify-content:center;height:86px;padding:6px 10px;transition:.15s}
.cc-tile:hover{box-shadow:0 3px 12px rgba(0,0,0,.1);border-color:#cfcfcf}
.cc-tile img{max-height:74px;width:auto;object-fit:contain}

/* ---------- 7. hero / banners ---------- */
.cc-hero{padding:12px 0 4px}
.cc-hero img{width:100%;border-radius:2px;display:block}
.cc-banner{padding:16px 0 4px}
.cc-banner img{width:100%;border-radius:2px;display:block}

/* ---------- 8. promo blocks ---------- */
.cc-block{border-radius:8px;padding:26px 26px 22px;margin:20px 0;color:#fff;position:relative}
.cc-block.bg-green{background:#22392c}
.cc-block.bg-wine{background:#5f1f38}
.cc-block.bg-blue{background:#0d3f70}
.cc-block.bg-teal{background:#0d4f52}
.cc-block-head{display:flex;justify-content:space-between;align-items:flex-start;gap:26px;flex-wrap:wrap}
.cc-block h2{margin:0 0 8px;font-size:29px;line-height:1.15;font-weight:800;letter-spacing:-.2px}
.cc-block h2 span{display:block;font-size:15px;font-weight:600;opacity:.95;margin-top:4px}
.cc-block .fine{font-size:11.5px;opacity:.82;margin-top:8px}
.cc-block .shopnow{display:inline-block;background:#f5b301;color:#231f20;font-weight:800;
  padding:9px 26px;border-radius:3px;font-size:14px;margin-top:12px}
.cc-block .shopnow:hover{background:#ffc61a}
.cc-offers{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:430px}
.cc-offers div{border:1px solid rgba(255,255,255,.75);border-radius:3px;padding:9px 14px;
  font-size:12.5px;text-align:center;line-height:1.3}
.cc-offers b{display:block;font-size:14px}
.cc-block .carousel{position:relative;margin-top:20px}
.cc-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.cc-arrow{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;
  background:#fff;border:1px solid #ddd;display:flex;align-items:center;justify-content:center;
  color:#333;cursor:pointer;z-index:3;font-size:15px}
.cc-arrow.prev{left:-12px}.cc-arrow.next{right:-12px}

/* ---------- 9. product card (Costco style) ---------- */
.cc-card{background:#fff;border-radius:6px;display:flex;flex-direction:column;color:var(--cc-ink);
  overflow:visible;position:relative;height:100%}
.cc-card .thumbwrap{position:relative;background:#fff;border-radius:6px 6px 0 0;padding:10px 10px 4px;
  aspect-ratio:1.18;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cc-card .thumbwrap img{max-height:100%;max-width:100%;object-fit:contain}
.cc-badges{position:absolute;top:6px;left:6px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.cc-badge{font-size:10px;font-weight:700;color:#fff;padding:3px 7px;border-radius:2px;line-height:1.2}
.cc-badge.online{background:var(--cc-blue)}
.cc-badge.save{background:var(--cc-teal)}
.cc-badge.top{background:#8a6d00}
.cc-card .body{padding:4px 11px 12px;display:flex;flex-direction:column;gap:5px;flex:1}
.cc-title{font-size:13px;line-height:1.3;height:34px;overflow:hidden;color:#333;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cc-title:hover{text-decoration:underline}
.cc-stars{font-size:11.5px;color:var(--cc-star);letter-spacing:.6px;display:flex;align-items:center;gap:5px}
.cc-stars .cnt{color:#707070;font-size:11px;letter-spacing:0}
.cc-price{font-size:19px;font-weight:800;color:#222;line-height:1.15;margin-top:auto}
.cc-was{font-size:11.5px;color:#707070;line-height:1.3}
.cc-was b{color:#c13533;font-weight:700}
.cc-cta{display:flex;gap:6px;margin-top:8px}
.cc-cta .btn{flex:1;background:var(--cc-blue);color:#fff;text-align:center;padding:9px 4px;
  border-radius:3px;font-size:12.5px;font-weight:600;line-height:1.2}
.cc-cta .btn:hover{background:var(--cc-blue-dark);color:#fff}
.cc-cta .heart{flex:0 0 38px;border:1px solid #c9c9c9;border-radius:3px;display:flex;
  align-items:center;justify-content:center;color:#666;background:#fff}
.cc-cta .heart:hover{border-color:var(--cc-blue);color:var(--cc-blue)}

/* ---------- 10. dots ---------- */
.cc-dots{display:flex;justify-content:center;gap:9px;padding:14px 0 4px}
.cc-dots i{width:7px;height:7px;border-radius:50%;background:#c9c9c9;display:block}
.cc-dots i.on{background:#666}

/* ---------- 11. footer ---------- */
.cc-foot{border-top:1px solid #e5e5e5;margin-top:34px;background:#fff}
.cc-cookie{border-bottom:1px solid #eee;padding:18px 0;font-size:11.5px;color:#666;line-height:1.6}
.cc-cookie b{display:block;color:#333;font-size:12.5px;margin-bottom:6px}
.cc-foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:28px 0 20px}
.cc-foot-cols h4{font-size:12.5px;color:#333;margin:0 0 10px;text-transform:none}
.cc-foot-cols a{display:block;font-size:12px;color:#666;padding:4px 0}
.cc-foot-cols a:hover{color:var(--cc-blue);text-decoration:underline}
.cc-legal{border-top:1px solid #eee;padding:16px 0 28px;font-size:11.5px;color:#8a8a8a;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.cc-social{display:flex;gap:12px;align-items:center}
.cc-social a{width:26px;height:26px;border-radius:50%;background:#efefef;display:flex;
  align-items:center;justify-content:center;color:#666;font-size:12px}

/* ---------- 12. woocommerce pages ---------- */
.site-header,.storefront-breadcrumb,.storefront-product-pagination,.storefront-sticky-add-to-cart{display:none!important}
.bbx-main{display:block}
#content::after,.bbx-main::after{content:"";display:block;clear:both}
#primary.content-area{float:none!important;width:100%!important;margin:0!important}
.woocommerce-products-header{padding:16px 0 4px}
.woocommerce-products-header__title.page-title{font-size:24px!important;margin:0!important;text-align:left}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(5,1fr);gap:14px;margin:14px 0 26px}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;
  background:#fff;border:1px solid var(--cc-line);border-radius:6px;padding:10px;display:flex;
  flex-direction:column}
.woocommerce ul.products li.product:hover{box-shadow:0 3px 14px rgba(0,0,0,.1)}
.woocommerce ul.products li.product a{color:#333!important}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:13px!important;
  line-height:1.3;padding:8px 0 4px!important;height:36px;overflow:hidden;color:#333}
.woocommerce ul.products li.product .price{font-size:18px!important;font-weight:800;color:#222!important}
.woocommerce ul.products li.product .price del{font-size:12px;color:#707070;font-weight:400}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:#c13533}
.woocommerce ul.products li.product .button{margin-top:auto;background:var(--cc-blue);color:#fff;
  text-align:center;padding:9px 0;font-size:12.5px;font-weight:600;border-radius:3px}
.woocommerce ul.products li.product .button:hover{background:var(--cc-blue-dark);color:#fff}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.wc-block-components-button,.wc-block-components-button:not(.is-link){
  background:var(--cc-blue)!important;color:#fff!important;border-radius:3px!important;font-weight:600!important}
.woocommerce a.button:hover,.woocommerce button.button:hover{background:var(--cc-blue-dark)!important;color:#fff!important}
.storefront-sorting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 12px;font-size:12.5px}
.woocommerce-ordering select{padding:6px 9px;border:1px solid var(--cc-line);border-radius:3px;background:#fff;font-size:12.5px}
.woocommerce nav.woocommerce-pagination ul{border:0;display:flex;gap:6px;justify-content:center}
.woocommerce nav.woocommerce-pagination ul li{border:0}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{
  min-width:34px;height:34px;line-height:34px;border:1px solid var(--cc-line);border-radius:3px;background:#fff;padding:0 8px}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--cc-blue);color:#fff;border-color:var(--cc-blue)}

/* single product */
.woocommerce div.product div.images{border:1px solid var(--cc-line);border-radius:6px;padding:12px}
.woocommerce div.product div.images .flex-control-thumbs{position:static!important;display:flex!important;
  gap:8px;margin:10px 0 0!important;width:100%!important}
.woocommerce div.product div.images .flex-control-thumbs li{width:58px!important;float:none!important;margin:0!important}
.woocommerce div.product .product_title{font-size:25px!important;line-height:1.25;margin:0 0 8px;color:#222}
.woocommerce div.product p.price,.woocommerce div.product span.price{font-size:27px!important;color:#222!important;font-weight:800}
.woocommerce div.product form.cart .button{padding:11px 28px;font-size:14px}
.woocommerce div.product .product_meta{font-size:12px;color:#707070;border-top:1px solid var(--cc-line);padding-top:10px}
.woocommerce div.product .woocommerce-tabs{clear:both;padding-top:22px}
.woocommerce div.product .woocommerce-tabs ul.tabs{width:100%!important;float:none!important;display:flex;gap:4px;
  margin:0 0 16px!important;padding:0 0 9px!important;border-bottom:1px solid var(--cc-line)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{float:none!important;margin:0!important;border:0!important;background:none!important;padding:0!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:block;padding:8px 15px!important;font-weight:600!important;color:#707070!important;border-radius:3px}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{background:var(--cc-blue);color:#fff!important}
.woocommerce div.product .woocommerce-tabs .panel{width:100%!important;float:none!important;margin:0!important;padding:0!important}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child{display:none}
.woocommerce div.product .related.products{clear:both;padding-top:28px}
.woocommerce-cart .cart-collaterals .cart_totals,.woocommerce-checkout #order_review{
  background:#fff;border:1px solid var(--cc-line);border-radius:6px;padding:16px}
.woocommerce table.shop_table{border:1px solid var(--cc-line);border-radius:6px;background:#fff}
.woocommerce table.shop_table th{background:#fafafa;font-size:12.5px}

@media(max-width:1200px){
  .cc-cards,.cc-tiles .grid{grid-template-columns:repeat(4,1fr)}
  .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}
  .cc-offers{min-width:0;width:100%}
}
@media(max-width:820px){
  .cc-cards,.cc-tiles .grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr)}
  .cc-head .cc-wrap{height:auto;flex-wrap:wrap;padding:10px 16px;gap:12px}
  .cc-logo img{width:140px}
  .cc-util .cc-wrap{gap:12px;overflow-x:auto}
  .cc-foot-cols{grid-template-columns:1fr 1fr}
}
/* block heading colours (scoped so product cards stay dark on white) */
.cc-block-head,.cc-block-head *{color:#fff}
.cc-block-head .shopnow,.cc-block-head .shopnow:visited{color:#231f20!important}
.cc-block .cc-offers,.cc-block .cc-offers *{color:#fff}
.cc-card,.cc-card *{color:#333}
.cc-card .cc-title{color:#333!important}
.cc-card .cc-price{color:#222!important}
.cc-card .cc-stars{color:#f5a623!important}
.cc-card .cc-stars .cnt{color:#707070!important}
.cc-card .cc-was{color:#707070!important}
.cc-card .cc-was b{color:#c13533!important}
.cc-card .btn{color:#fff!important}
.cc-card .heart{color:#666!important}
.cc-head-actions a span{color:#4a4a4a}
.cc-cart span{color:#333}
/* page container for non-front pages */
body:not(.home) #content{max-width:1400px;margin:0 auto;padding:0 20px 30px}
body:not(.home) #content::after{content:"";display:block;clear:both}
.woocommerce-products-header{padding:16px 0 2px!important;margin:0!important}
.woocommerce-products-header__title.page-title{margin:0 0 6px!important}
.woocommerce ul.products li.product .cc-stars{margin:0 0 4px}
.woocommerce ul.products li.product .price{margin-top:0!important}
/* force white label on grid buttons */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .button:visited,
.woocommerce ul.products li.product a.button{color:#fff!important;background:var(--cc-blue)!important}
.woocommerce ul.products li.product .button:hover{background:var(--cc-blue-dark)!important;color:#fff!important}
.woocommerce ul.products li.product .woocommerce-loop-product__title{color:#333!important}
/* badge label must stay white */
.cc-card .cc-badge,.cc-card .cc-badge.online,.cc-card .cc-badge.save,.cc-card .cc-badge.top{color:#fff!important}
/* ---------- Costco Sans webfont ---------- */
@font-face{font-family:"Costco Sans Web";src:url(assets/fonts/CostcoSans-Upright.woff2) format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Costco Sans Web";src:url(assets/fonts/CostcoSans-Italic.woff2) format("woff2");
  font-weight:100 900;font-style:italic;font-display:swap}

/* ---------- mega menu ---------- */
.cc-shopwrap{position:static}
.cc-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid #e3e3e3;
  border-top:2px solid var(--cc-blue);box-shadow:0 16px 34px rgba(0,0,0,.16);display:none;z-index:60;
  padding:22px 26px 26px}
.cc-shopwrap:hover .cc-mega,.cc-shopwrap:focus-within .cc-mega{display:block}
.cc-mega-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:28px;max-width:1400px;margin:0 auto}
.cc-mega-col h5{margin:0 0 10px;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;color:#8a8a8a}
.cc-mega-col ul{list-style:none;margin:0;padding:0}
.cc-mega-col li a{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:13px;color:#333}
.cc-mega-col li a:hover{color:var(--cc-blue);text-decoration:underline}
.cc-mega-col em{color:#909090;font-style:normal;font-size:11.5px}
.cc-mega-col.promo img{width:100%;max-width:170px;border:1px solid #eee;border-radius:4px;padding:6px}
.cc-mega-col.promo b{display:block;font-size:13px;margin-top:9px;color:#333}
.cc-mega-col.promo span{font-size:11.5px;color:#707070;display:block;margin-top:3px}

/* ---------- carousel ---------- */
.cc-carousel{position:relative;margin-top:20px}
.cc-viewport{overflow:hidden;padding:2px 0}
.cc-track{display:flex;gap:13px;transition:transform .38s cubic-bezier(.4,.2,.2,1);will-change:transform}
.cc-track > .cc-card{flex:0 0 calc((100% - 52px)/5);max-width:calc((100% - 52px)/5)}
.cc-arrow{cursor:pointer;user-select:none;transition:opacity .2s,box-shadow .2s;font-size:17px;line-height:1}
.cc-arrow:hover{box-shadow:0 2px 10px rgba(0,0,0,.18)}
@media(max-width:1200px){
  .cc-track > .cc-card{flex-basis:calc((100% - 39px)/4);max-width:calc((100% - 39px)/4)}
}
@media(max-width:820px){
  .cc-track > .cc-card{flex-basis:calc((100% - 13px)/2);max-width:calc((100% - 13px)/2)}
  .cc-mega{display:none!important}
  .cc-nav .cc-wrap{overflow-x:auto}
}