/* WooCommerce, restyled to the Freedom in Work look (charcoal + cyan, Archivo). */

/* page frame */
.woocommerce, .woocommerce-page { }
.woocommerce .wrap-woo, .woocommerce-shop main, .woocommerce main { }
.woocommerce main.woocommerce, body.woocommerce main, body.woocommerce-page main { max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.woocommerce-products-header { padding-top:20px; }
.woocommerce-products-header__title.page-title { font-family:'Archivo',sans-serif; font-weight:500; font-size:clamp(28px,4vw,44px); letter-spacing:-.03em; }
.woocommerce .woocommerce-result-count { color:var(--muted); font-size:14px; }
.woocommerce .woocommerce-ordering select { border:2px solid var(--ink); border-radius:2px; padding:8px 10px; font-family:'Inter',sans-serif; }

/* buttons -> brand */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
  background:var(--cyan); color:#08272e; font-family:'Archivo',sans-serif; font-weight:600;
  border-radius:2px; border:2px solid transparent; padding:13px 22px; font-size:15px;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s; text-transform:none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background:var(--cyan); color:#08272e; transform:translate(-3px,-3px); box-shadow:6px 6px 0 #08272e;
}

/* product grid */
.woocommerce ul.products { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:34px 0 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content:none; display:none; }
.woocommerce ul.products li.product { width:auto !important; margin:0 !important; float:none !important;
  background:#fff; border:3px solid var(--ink); padding:22px; display:flex; flex-direction:column;
  transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s; }
.woocommerce ul.products li.product:hover { transform:translate(-4px,-4px); box-shadow:10px 10px 0 var(--cyan); }
.woocommerce ul.products li.product a img { border-radius:2px; margin-bottom:14px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family:'Archivo',sans-serif; font-weight:600; font-size:19px; letter-spacing:-.01em; padding:0; color:var(--ink); }
.woocommerce ul.products li.product .price { color:var(--ink); font-family:'Archivo Expanded','Archivo',sans-serif; font-weight:500; font-size:22px; margin:6px 0 14px; }
.woocommerce ul.products li.product .price del { color:var(--muted); font-weight:400; font-size:15px; }
.woocommerce ul.products li.product .button { margin-top:auto; align-self:flex-start; }

/* single product */
.woocommerce div.product .product_title { font-family:'Archivo',sans-serif; font-weight:500; font-size:clamp(28px,4vw,42px); letter-spacing:-.03em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color:var(--cyan-deep,#2C8CA6); font-family:'Archivo Expanded','Archivo',sans-serif; font-weight:500; font-size:34px; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size:16px; color:#3a4144; }
.woocommerce div.product form.cart { margin-top:22px; }
.woocommerce div.product .single_add_to_cart_button { font-size:16px; padding:15px 28px; }
.woocommerce-tabs .wc-tabs li { border-radius:2px 2px 0 0; }
.woocommerce-tabs .wc-tabs li.active { border-bottom-color:#fff; }
.woocommerce #reviews h2, .woocommerce div.product .woocommerce-tabs h2 { font-family:'Archivo',sans-serif; font-weight:500; }
.woocommerce .related.products > h2, .woocommerce .up-sells > h2 { font-family:'Archivo',sans-serif; font-weight:500; font-size:26px; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color:var(--cyan); border-radius:2px; }
.woocommerce-message { border-top-color:var(--cyan); }

/* branded shop hero (output via hook) */
.fiw-shop-hero { background:var(--charcoal); color:#fff; position:relative; overflow:hidden; padding:150px 0 60px; margin-bottom:10px; }
.fiw-shop-hero .glow { position:absolute; width:50vw; height:50vw; border-radius:50%; filter:blur(90px); opacity:.4; background:radial-gradient(circle,rgba(67,183,209,.55),transparent 65%); top:-14vw; right:-8vw; }
.fiw-shop-hero .gridlines { position:absolute; inset:0; opacity:.06; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:64px 64px; }
.fiw-shop-hero .inner { position:relative; z-index:2; }
.fiw-shop-hero h1 { font-family:'Archivo',sans-serif; font-weight:500; font-size:clamp(30px,5vw,52px); letter-spacing:-.03em; color:#fff; margin:14px 0 12px; }
.fiw-shop-hero p { color:#c9ced2; font-size:18px; max-width:560px; }

/* ---------- layout polish ---------- */
/* Sidebar removed in functions.php; make the content column full-width. */
.woocommerce #primary, .woocommerce-page #primary { width:100%; float:none; margin:0; }
.woocommerce #sidebar, .woocommerce-page #sidebar { display:none; }

/* Single product has no dark hero, so clear the fixed nav and frame the page. */
body.single-product main#main { padding:118px 28px 72px; }
/* Shop archive: the branded hero handles the top; just breathe at the bottom. */
body.woocommerce-shop main#main { padding-bottom:72px; }
/* Cart / checkout / account are Pages (dark hero already) — add lower spacing. */
body.woocommerce-cart main.page-body,
body.woocommerce-checkout main.page-body,
body.woocommerce-account main.page-body { max-width:var(--maxw); margin:0 auto; padding:44px 28px 78px; }

/* Single product: tidy the gallery placeholder + two-column gap. */
.woocommerce div.product { display:flex; flex-wrap:wrap; gap:40px; }
.woocommerce div.product .woocommerce-product-gallery { width:46%; float:none; margin:0; }
.woocommerce div.product .summary { width:calc(54% - 40px); float:none; margin:0; }
.woocommerce div.product .woocommerce-product-gallery__image--placeholder { border:2px solid var(--line); background:var(--cream); border-radius:2px; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .up-sells { width:100%; }
.woocommerce div.product .product_meta { font-size:13px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; margin-top:20px; }

/* ---------- cart / checkout / account ---------- */
.woocommerce table.shop_table { border:2px solid var(--line); border-radius:2px; border-collapse:collapse; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-top:1px solid var(--line); padding:14px 12px; }
.woocommerce table.shop_table thead th { font-family:'Archivo',sans-serif; font-weight:600; background:var(--cream); text-transform:none; }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading,
.woocommerce-account h2, .woocommerce-account h3 { font-family:'Archivo',sans-serif; font-weight:500; letter-spacing:-.02em; }
.woocommerce .cart-collaterals .cart_totals { border:3px solid var(--ink); padding:22px 24px; }
.woocommerce .cart-collaterals .cart_totals table { border:none; }
.woocommerce form.woocommerce-cart-form { margin-bottom:34px; }

/* form fields -> brand */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection,
.woocommerce-account .woocommerce-form input.input-text,
.woocommerce #order_comments { border:2px solid var(--ink) !important; border-radius:2px; padding:12px 12px; font-family:'Inter',sans-serif; box-shadow:none; }
.woocommerce form .form-row label { font-weight:500; }
.woocommerce-checkout #payment { background:var(--cream); border-radius:2px; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom:1px solid var(--line); }
.woocommerce .coupon input.input-text { min-width:180px; }

/* the "you may be interested in" block on the empty cart */
.wc-block-grid__products { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:20px; }
.wc-block-grid__product { border:2px solid var(--line); padding:18px; }

@media(max-width:900px){
  .woocommerce ul.products { grid-template-columns:1fr 1fr; gap:16px; }
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .summary { width:100%; }
  .wc-block-grid__products { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px){ .woocommerce ul.products, .wc-block-grid__products { grid-template-columns:1fr; } }
