/*
Theme Name: LOOM9
Theme URI: https://loom9.com
Author: LOOM9
Description: Minimal streetwear storefront theme. Heavyweight cotton, small runs, made to last. Display-only — no cart or checkout wired up.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: loom9
*/

:root{
  --l9-bone:#F6F4F1;
  --l9-paper:#ffffff;
  --l9-ink:#14110F;
  --l9-muted:#6B655F;
  --l9-line:#E4DFD8;
  --l9-pad:clamp(20px,5vw,72px);
  --l9-display:'Bebas Neue',Impact,sans-serif;
  --l9-body:'Archivo',system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--l9-bone);color:var(--l9-ink);font-family:var(--l9-body);
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}

/* ---------- announcement ---------- */
.l9-ann{background:var(--l9-ink);color:var(--l9-bone);text-align:center;padding:9px 16px;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500}

/* ---------- header ---------- */
.l9-header{position:sticky;top:0;z-index:100;background:rgba(246,244,241,.88);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--l9-line)}
.l9-nav{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:16px var(--l9-pad)}
.l9-brand{font-family:var(--l9-display);font-size:30px;letter-spacing:.06em;line-height:1}
.l9-links{display:flex;gap:30px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.l9-links a{position:relative;padding-bottom:2px;color:var(--l9-muted);transition:color .2s}
.l9-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--l9-ink);transition:width .28s}
.l9-links a:hover{color:var(--l9-ink)}
.l9-links a:hover::after{width:100%}
.l9-icons{display:flex;gap:20px;align-items:center}
.l9-icons svg{width:19px;height:19px;stroke:var(--l9-ink);fill:none;stroke-width:1.5;transition:opacity .2s}
.l9-icons a:hover svg{opacity:.55}
.l9-bag{position:relative}
.l9-bag span{position:absolute;top:-6px;right:-8px;background:var(--l9-ink);color:var(--l9-bone);
  font-size:9px;min-width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-weight:600;padding:0 3px}
.l9-burger{display:none;background:none;border:0;cursor:pointer;padding:4px}
.l9-burger svg{width:22px;height:22px;stroke:var(--l9-ink);fill:none;stroke-width:1.6}
@media(max-width:860px){
  .l9-links{display:none}
  .l9-burger{display:block}
  .l9-links.is-open{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--l9-bone);
    flex-direction:column;gap:0;padding:8px var(--l9-pad) 20px;border-bottom:1px solid var(--l9-line)}
  .l9-links.is-open a{padding:12px 0;border-bottom:1px solid var(--l9-line)}
}

/* ---------- hero ---------- */
.l9-hero{position:relative;min-height:clamp(520px,82vh,780px);display:flex;align-items:flex-end;
  overflow:hidden;background:var(--l9-ink)}
.l9-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.94}
.l9-hero::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.02) 40%,rgba(0,0,0,.44) 100%)}
.l9-hero-in{position:relative;z-index:2;padding:var(--l9-pad);padding-bottom:clamp(36px,6vw,68px);
  color:#fff;max-width:760px}
.l9-kick{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;opacity:.9;margin-bottom:14px}
.l9-hero h1{font-family:var(--l9-display);font-size:clamp(52px,9vw,124px);line-height:.88;letter-spacing:.01em;
  text-transform:uppercase;margin:0 0 18px}
.l9-hero p{font-size:clamp(14px,1.5vw,17px);max-width:44ch;opacity:.92;margin:0 0 28px}

.l9-btn{display:inline-block;background:var(--l9-bone);color:var(--l9-ink);padding:15px 34px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;font-family:var(--l9-body);
  border:1px solid var(--l9-bone);cursor:pointer;transition:background .25s,color .25s}
.l9-btn:hover{background:transparent;color:#fff}
.l9-btn--dark{background:var(--l9-ink);color:var(--l9-bone);border-color:var(--l9-ink)}
.l9-btn--dark:hover{background:transparent;color:var(--l9-ink)}
.l9-btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.65)}
.l9-btn--ghost:hover{background:#fff;color:var(--l9-ink)}

/* ---------- marquee ---------- */
.l9-marq{background:var(--l9-ink);color:var(--l9-bone);overflow:hidden;padding:13px 0;white-space:nowrap}
.l9-marq-t{display:inline-block;animation:l9slide 32s linear infinite;
  font-family:var(--l9-display);font-size:19px;letter-spacing:.14em}
.l9-marq-t span{margin:0 26px;opacity:.85}
@keyframes l9slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.l9-marq-t{animation:none}}

/* ---------- sections ---------- */
.l9-sec{padding:clamp(56px,8vw,110px) var(--l9-pad)}
.l9-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  margin-bottom:clamp(28px,4vw,48px);border-bottom:1px solid var(--l9-line);padding-bottom:18px}
.l9-label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--l9-muted);
  font-weight:600;margin-bottom:8px}
.l9-sec h2,.l9-h2{font-family:var(--l9-display);font-size:clamp(30px,4.4vw,52px);line-height:1;
  text-transform:uppercase;letter-spacing:.02em;margin:0}
.l9-more{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  border-bottom:1px solid var(--l9-ink);padding-bottom:3px;white-space:nowrap}

/* ---------- product grid ---------- */
.l9-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.2vw,34px)}
@media(max-width:900px){.l9-grid{grid-template-columns:repeat(2,1fr)}}
.l9-shot{position:relative;background:var(--l9-paper);aspect-ratio:4/5;overflow:hidden;
  margin-bottom:14px;border:1px solid var(--l9-line)}
.l9-shot img{width:100%;height:100%;object-fit:contain;padding:6%;
  transition:transform .55s cubic-bezier(.22,1,.36,1)}
.l9-card:hover .l9-shot img{transform:scale(1.045)}
.l9-tag{position:absolute;top:12px;left:12px;background:var(--l9-ink);color:var(--l9-bone);
  font-size:9px;letter-spacing:.16em;text-transform:uppercase;padding:5px 9px;font-weight:600;z-index:2}
.l9-name{font-size:14px;font-weight:500;margin-bottom:3px;letter-spacing:.01em}
.l9-price{font-size:14px;color:var(--l9-muted)}
.l9-card:hover .l9-name{text-decoration:underline;text-underline-offset:3px}
.l9-soon{display:grid;place-items:center;background:var(--l9-bone);text-align:center;padding:20px}

/* ---------- editorial split ---------- */
.l9-split{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(24px,5vw,72px)}
@media(max-width:900px){.l9-split{grid-template-columns:1fr}}
.l9-split img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center}
.l9-split h2{margin-bottom:18px}
.l9-split p{color:var(--l9-muted);max-width:46ch;margin:0 0 16px}

/* ---------- collection tiles ---------- */
.l9-tiles{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,26px)}
@media(max-width:760px){.l9-tiles{grid-template-columns:1fr}}
.l9-tile{position:relative;aspect-ratio:4/5;overflow:hidden;display:flex;align-items:flex-end}
.l9-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.04);
  transition:transform .8s cubic-bezier(.22,1,.36,1),filter .6s ease}
.l9-tile:hover img{transform:scale(1.05);filter:grayscale(.25) contrast(1.04)}
.l9-tile::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.5) 100%)}
.l9-tile-in{position:relative;z-index:2;padding:clamp(20px,3vw,36px);color:#fff}
.l9-tile-in h3{font-family:var(--l9-display);font-size:clamp(26px,3.4vw,42px);
  text-transform:uppercase;letter-spacing:.03em;line-height:1;margin:0 0 6px}
.l9-tile-in p{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.9;font-weight:500;margin:0}

/* ---------- lookbook band ---------- */
.l9-band{position:relative;min-height:clamp(340px,52vh,540px);display:grid;place-items:center;
  text-align:center;overflow:hidden;padding:var(--l9-pad)}
.l9-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.l9-band::after{content:'';position:absolute;inset:0;background:rgba(10,8,7,.34)}
.l9-band-in{position:relative;z-index:2;color:#fff;max-width:600px}
.l9-band-in h2{margin-bottom:14px}
.l9-band-in p{opacity:.92;margin:0 0 26px}

/* ---------- values ---------- */
.l9-vals{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);
  border-top:1px solid var(--l9-line);padding-top:clamp(32px,4vw,52px)}
@media(max-width:760px){.l9-vals{grid-template-columns:1fr;gap:26px}}
.l9-val h4{font-family:var(--l9-display);font-size:20px;letter-spacing:.06em;
  text-transform:uppercase;margin:0 0 7px}
.l9-val p{font-size:14px;color:var(--l9-muted);max-width:34ch;margin:0}

/* ---------- newsletter ---------- */
.l9-news{background:var(--l9-ink);color:var(--l9-bone);text-align:center}
.l9-news h2{margin-bottom:12px}
.l9-news>p{opacity:.72;margin:0 auto 28px;max-width:46ch;font-size:15px}
.l9-form{display:flex;max-width:430px;margin:0 auto;border-bottom:1px solid rgba(246,244,241,.4)}
.l9-form input{flex:1;background:transparent;border:0;color:var(--l9-bone);padding:12px 2px;
  font-family:var(--l9-body);font-size:14px;outline:none}
.l9-form input::placeholder{color:rgba(246,244,241,.5)}
.l9-form button{background:transparent;border:0;color:var(--l9-bone);cursor:pointer;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;padding:0 4px;font-family:var(--l9-body)}
.l9-form button:hover{opacity:.6}
.l9-note{font-size:12px;margin-top:14px;opacity:.7}

/* ---------- footer ---------- */
.l9-footer{background:var(--l9-ink);color:var(--l9-bone);padding:clamp(48px,6vw,76px) var(--l9-pad) 28px}
.l9-fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;
  padding-bottom:40px;border-bottom:1px solid rgba(246,244,241,.16)}
@media(max-width:820px){.l9-fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.l9-fgrid{grid-template-columns:1fr}}
.l9-fbrand{font-family:var(--l9-display);font-size:34px;letter-spacing:.06em;margin-bottom:12px}
.l9-fgrid>div>p{font-size:13px;opacity:.62;max-width:30ch;margin:0}
.l9-fcol h5{font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 16px;font-weight:600}
.l9-fcol a{display:block;font-size:13px;opacity:.62;margin-bottom:9px;transition:opacity .2s}
.l9-fcol a:hover{opacity:1}
.l9-fbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-top:22px;font-size:11px;opacity:.5;letter-spacing:.06em}

/* ---------- generic page content (page.php / index.php fallback) ---------- */
.l9-page{max-width:760px;margin:0 auto}
.l9-page h1{font-family:var(--l9-display);font-size:clamp(36px,6vw,64px);text-transform:uppercase;margin:0 0 24px}
.l9-page p{margin:0 0 16px;color:var(--l9-muted)}

/* ==========================================================================
   WooCommerce — LOOM9 storefront styling (added for store build)
   ========================================================================== */

.l9-shop .l9-shot img,
.l9-card .l9-shot img { width:100%; height:100%; object-fit:contain; }

/* --- category banner --- */
.l9-cat-banner { position:relative; height:320px; overflow:hidden; }
.l9-cat-banner img { width:100%; height:100%; object-fit:cover; }
.l9-cat-banner-in { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
	padding:40px; background:linear-gradient(to top, rgba(20,17,15,.6), transparent); color:var(--l9-paper); }
.l9-cat-banner-in h1 { font-family:var(--l9-display); text-transform:uppercase; font-size:56px; line-height:.95; margin:6px 0 0; }

/* --- single product layout --- */
.l9-product { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.l9-product-media img { width:100%; height:auto; border:1px solid var(--l9-line); background:var(--l9-paper); }
.l9-product-media .flex-control-thumbs { display:flex; gap:8px; padding:8px 0 0; list-style:none; margin:0; }
.l9-product-media .flex-control-thumbs li { width:70px; }
.l9-product-title { font-family:var(--l9-display); text-transform:uppercase; font-size:38px; line-height:1; margin:8px 0 12px; }
.l9-product-price { font-size:22px; margin-bottom:24px; }
.l9-product-price .amount { font-weight:600; }
.l9-product-desc { margin-top:26px; color:var(--l9-muted); line-height:1.7; max-width:52ch; }

/* --- variations / add to cart --- */
.l9-single table.variations { width:100%; border-collapse:collapse; margin:0 0 18px; }
.l9-single table.variations th { text-align:left; text-transform:uppercase; letter-spacing:.08em; font-size:12px;
	padding:10px 0; color:var(--l9-ink); vertical-align:middle; width:90px; }
.l9-single table.variations td { padding:8px 0; }
.l9-single .variations select,
.woocommerce select, .woocommerce .quantity input {
	appearance:none; background:var(--l9-paper); border:1px solid var(--l9-line); border-radius:0;
	padding:12px 14px; font-family:var(--l9-body); font-size:14px; text-transform:uppercase; color:var(--l9-ink); width:100%; }
.l9-single .reset_variations { display:inline-block; margin-top:6px; font-size:12px; color:var(--l9-muted); text-transform:uppercase; }
.l9-single .quantity input { width:80px; text-align:center; }
.woocommerce-variation-price { margin:10px 0; font-size:20px; }
.woocommerce div.product form.cart { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:8px; }
.woocommerce div.product form.cart .variations { flex:1 1 100%; }

/* add-to-cart + all WooCommerce buttons -> l9-btn dark */
.woocommerce .button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button, .woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button, .woocommerce #place_order {
	display:inline-block; background:var(--l9-ink); color:var(--l9-paper); border:1px solid var(--l9-ink);
	border-radius:0; padding:15px 30px; font-family:var(--l9-body); font-weight:600; text-transform:uppercase;
	letter-spacing:.06em; font-size:13px; cursor:pointer; transition:opacity .15s; }
.woocommerce .button:hover, .woocommerce .single_add_to_cart_button:hover, .woocommerce #place_order:hover { opacity:.85; }
.woocommerce .single_add_to_cart_button { flex:1 1 auto; min-width:200px; }

/* --- notices --- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border:1px solid var(--l9-line); border-left:3px solid var(--l9-ink); background:var(--l9-paper);
	padding:14px 18px; list-style:none; margin:0 0 20px; font-size:14px; }
.woocommerce-error { border-left-color:#b3261e; }

/* --- cart + checkout tables/forms --- */
.woocommerce table.shop_table { border:1px solid var(--l9-line); border-collapse:collapse; border-radius:0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-top:1px solid var(--l9-line); padding:16px; }
.woocommerce table.shop_table thead th { text-transform:uppercase; letter-spacing:.06em; font-size:12px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout .woocommerce-checkout-review-order { border:1px solid var(--l9-line); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	border:1px solid var(--l9-line); border-radius:0; padding:12px 14px; font-family:var(--l9-body); background:var(--l9-paper); }
.woocommerce form .form-row label { text-transform:uppercase; letter-spacing:.05em; font-size:12px; color:var(--l9-muted); }

/* --- tabs + size guide --- */
.woocommerce-tabs ul.tabs { list-style:none; margin:0 0 24px; padding:0 0 0; border-bottom:1px solid var(--l9-line); display:flex; gap:28px; }
.woocommerce-tabs ul.tabs li { padding:0 0 12px; }
.woocommerce-tabs ul.tabs li a { text-transform:uppercase; letter-spacing:.06em; font-size:13px; color:var(--l9-muted); text-decoration:none; }
.woocommerce-tabs ul.tabs li.active a { color:var(--l9-ink); border-bottom:2px solid var(--l9-ink); padding-bottom:12px; }
.l9-size-table { width:100%; border-collapse:collapse; margin-top:6px; }
.l9-size-table th, .l9-size-table td { border:1px solid var(--l9-line); padding:10px 12px; text-align:center; font-size:14px; }
.l9-size-table th { text-transform:uppercase; letter-spacing:.05em; font-size:12px; background:var(--l9-bone); }
.l9-size-table td:first-child, .l9-size-table th:first-child { font-weight:600; }

/* --- pagination --- */
.l9-pagination { margin-top:40px; }
.woocommerce nav.woocommerce-pagination ul { border:0; display:flex; gap:6px; }
.woocommerce nav.woocommerce-pagination ul li { border:0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border:1px solid var(--l9-line); padding:10px 14px; border-radius:0; }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--l9-ink); color:var(--l9-paper); border-color:var(--l9-ink); }

@media (max-width:820px) {
	.l9-product { grid-template-columns:1fr; gap:28px; }
	.l9-cat-banner { height:220px; }
	.l9-cat-banner-in h1 { font-size:38px; }
}

/* --- text/prose pages (About, Returns, Shipping, legal) --- */
.l9-prose { max-width:68ch; margin:0 auto; }
.l9-prose h1 { font-family:var(--l9-display); text-transform:uppercase; font-size:clamp(40px,6vw,72px); line-height:.95; margin:0 0 28px; }
.l9-prose h3 { text-transform:uppercase; letter-spacing:.06em; font-size:15px; margin:34px 0 10px; }
.l9-prose p { color:var(--l9-muted); line-height:1.8; margin:0 0 16px; font-size:16px; }
.l9-prose strong { color:var(--l9-ink); }
.l9-prose a { color:var(--l9-ink); text-decoration:underline; }
.l9-page .l9-form { max-width:520px; }
.l9-notice { border:1px solid var(--l9-line); border-left:3px solid var(--l9-ink); padding:14px 18px; background:var(--l9-paper); color:var(--l9-muted); font-size:14px; }

/* ==========================================================================
   Single product — polish pass (override WooCommerce defaults)
   ========================================================================== */
.l9-single { padding-top:48px; }
.l9-product { grid-template-columns:1.05fr 1fr; gap:64px; align-items:start; }

/* media: constrain the tall model shots, keep summary in view */
.l9-product-media { position:relative; border:1px solid var(--l9-line); background:var(--l9-paper); }
.l9-product-media img { display:block; width:100%; max-height:78vh; object-fit:contain; border:0; }
.l9-product-media .woocommerce-product-gallery__trigger { top:14px; right:14px; }
.l9-product-summary { position:sticky; top:96px; }

/* headings / price rhythm */
.l9-product-summary .l9-label { color:var(--l9-muted); }
.l9-product-title { margin:10px 0 14px; }
.l9-product-price { color:var(--l9-ink); margin-bottom:28px; padding-bottom:24px; border-bottom:1px solid var(--l9-line); }

/* size selector */
.l9-single table.variations { margin:0 0 22px; }
.l9-single table.variations th { width:70px; }
.l9-single .variations select { padding:14px 16px; }

/* quantity + add-to-cart on one clean row */
.woocommerce div.product form.cart { margin:0; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) { display:flex; gap:12px; align-items:stretch; }
.woocommerce .quantity, .woocommerce div.product form.cart .quantity { margin:0; }
.woocommerce .quantity input.qty {
	width:72px; height:52px; text-align:center; border:1px solid var(--l9-line); border-radius:0;
	background:var(--l9-paper); font-family:var(--l9-body); font-size:15px; }

/* force the LOOM9 black button in every state (beats WooCommerce purple .alt) */
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background:var(--l9-ink) !important; color:var(--l9-paper) !important; border-color:var(--l9-ink) !important;
	border-radius:0 !important; box-shadow:none !important; text-shadow:none !important;
	min-height:52px; display:inline-flex; align-items:center; justify-content:center;
	padding:0 40px; font-size:13px; letter-spacing:.08em; flex:1 1 auto; }
.woocommerce div.product .single_add_to_cart_button:hover { opacity:.85 !important; }
.woocommerce div.product .single_add_to_cart_button.disabled,
.woocommerce div.product .single_add_to_cart_button:disabled {
	background:var(--l9-ink) !important; color:var(--l9-paper) !important; opacity:.32; cursor:not-allowed; }

/* selected-variation price line */
.woocommerce-variation-price { margin:0 0 14px; font-size:20px; color:var(--l9-ink); }
.woocommerce div.product .woocommerce-variation-availability { margin-bottom:10px; color:var(--l9-muted); font-size:13px; }
.l9-single .reset_variations { margin-left:2px; }

/* description under the buy box */
.l9-product-desc { margin-top:30px; padding-top:26px; border-top:1px solid var(--l9-line); max-width:46ch; }

/* tabs a touch more room */
.l9-tabs-wrap { padding-top:56px; }
.woocommerce-tabs .panel h2 { font-family:var(--l9-display); text-transform:uppercase; font-size:22px; margin:0 0 14px; }

@media (max-width:820px) {
	.l9-product { grid-template-columns:1fr; gap:24px; }
	.l9-product-summary { position:static; }
	.l9-product-media img { max-height:none; }
}

/* ==========================================================================
   Single product — CLEAN REBUILD (overrides earlier product rules)
   Anchored on .l9-single (the real product wrapper is <main>, not div.product)
   ========================================================================== */
.l9-single{ padding:0; }
.l9-single-inner{ max-width:1240px; margin:0 auto; padding:clamp(36px,5vw,64px) var(--l9-pad); }

.l9-single .l9-product{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:start; }
.l9-single .l9-product-media{ position:relative; border:1px solid var(--l9-line); background:var(--l9-paper); }
.l9-single .l9-product-media img{ display:block; width:100%; height:auto; max-height:600px; object-fit:contain; border:0; }
.l9-single .l9-product-media .woocommerce-product-gallery__trigger{ top:14px; right:14px; }
.l9-single .l9-product-summary{ position:sticky; top:104px; }

.l9-single .l9-product-summary .l9-label{ margin:0 0 12px; }
.l9-single .l9-product-title{ font-family:var(--l9-display); text-transform:uppercase; font-size:clamp(30px,3.4vw,44px); line-height:1; margin:0 0 16px; }
.l9-single .l9-product-price{ font-size:22px; color:var(--l9-ink); margin:0 0 28px; padding-bottom:28px; border-bottom:1px solid var(--l9-line); }
.l9-single .l9-product-price .amount{ font-weight:600; }

/* size selector — label above a full-width select */
.l9-single table.variations{ width:100%; border-collapse:collapse; margin:0 0 22px; }
.l9-single table.variations tbody, .l9-single table.variations tr{ display:block; }
.l9-single table.variations th{ display:block; text-align:left; text-transform:uppercase; letter-spacing:.1em; font-size:11px; color:var(--l9-muted); padding:0 0 8px; font-weight:600; }
.l9-single table.variations td{ display:block; padding:0; }
.l9-single .variations select{ width:100%; appearance:none; -webkit-appearance:none; background:var(--l9-paper); border:1px solid var(--l9-line); border-radius:0; padding:15px 16px; font-family:var(--l9-body); font-size:14px; text-transform:uppercase; letter-spacing:.04em; color:var(--l9-ink); cursor:pointer; }
.l9-single .reset_variations{ display:inline-block; margin-top:12px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--l9-muted); }
.l9-single .woocommerce-variation-price{ margin:18px 0 4px; font-size:20px; color:var(--l9-ink); }
.l9-single .woocommerce-variation-availability{ margin:0 0 14px; font-size:13px; color:var(--l9-muted); }

/* quantity + add-to-cart on ONE row with real spacing (correct container this time) */
.l9-single .woocommerce-variation-add-to-cart,
.l9-single form.cart:not(.variations_form){ display:flex !important; gap:14px; align-items:stretch; margin-top:10px; }
.l9-single form.cart .quantity{ margin:0; flex:0 0 auto; }
.l9-single form.cart .quantity input.qty{ width:80px; height:56px; text-align:center; border:1px solid var(--l9-line); border-radius:0; background:var(--l9-paper); font-family:var(--l9-body); font-size:15px; -moz-appearance:textfield; }
.l9-single .single_add_to_cart_button{ flex:1 1 auto; min-height:56px; margin:0; display:inline-flex; align-items:center; justify-content:center; padding:0 34px; background:var(--l9-ink) !important; color:var(--l9-paper) !important; border:1px solid var(--l9-ink) !important; border-radius:0 !important; box-shadow:none !important; text-shadow:none !important; text-transform:uppercase; letter-spacing:.1em; font-size:12px; font-weight:600; }
.l9-single .single_add_to_cart_button:hover{ opacity:.85 !important; }
.l9-single .single_add_to_cart_button.disabled,
.l9-single .single_add_to_cart_button:disabled{ opacity:.3 !important; cursor:not-allowed; }

.l9-single .l9-product-desc{ margin-top:30px; padding-top:26px; border-top:1px solid var(--l9-line); color:var(--l9-muted); line-height:1.75; max-width:46ch; }
.l9-single .l9-product-desc p{ margin:0; }

/* TABS — clearly separated from the image, constrained, spaced */
.l9-single .l9-tabs-wrap{ margin-top:clamp(56px,7vw,90px); padding:clamp(36px,4vw,52px) 0 0; border-top:1px solid var(--l9-line); }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs{ list-style:none; margin:0 0 30px; padding:0; border-bottom:1px solid var(--l9-line); display:flex; gap:36px; flex-wrap:wrap; }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs::before, .l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs::after{ display:none; }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs li{ margin:0; padding:0 0 14px; background:none; border:0; }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs li a{ padding:0; text-transform:uppercase; letter-spacing:.1em; font-size:12px; color:var(--l9-muted); text-decoration:none; }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs li.active a{ color:var(--l9-ink); }
.l9-single .l9-tabs-wrap .woocommerce-tabs ul.tabs li.active{ box-shadow:inset 0 -2px 0 var(--l9-ink); }
.l9-single .l9-tabs-wrap .panel{ max-width:720px; margin:0; }
.l9-single .l9-tabs-wrap .panel h2{ font-family:var(--l9-display); text-transform:uppercase; font-size:24px; margin:0 0 16px; }
.l9-single .l9-tabs-wrap .panel p{ color:var(--l9-muted); line-height:1.8; }

@media(max-width:820px){
	.l9-single .l9-product{ grid-template-columns:1fr; gap:26px; }
	.l9-single .l9-product-summary{ position:static; }
	.l9-single .l9-product-media img{ max-height:none; }
}

/* ==========================================================================
   Product Reviews tab — styled to LOOM9
   ========================================================================== */
.l9-single #reviews{ max-width:680px; }
.l9-single #reviews .woocommerce-Reviews-title,
.l9-single #reviews #reply-title{ font-family:var(--l9-display); text-transform:uppercase; font-size:22px; margin:0 0 14px; display:block; }
.l9-single #reviews .woocommerce-noreviews,
.l9-single #reviews .comment-notes{ color:var(--l9-muted); font-size:14px; line-height:1.6; margin:0 0 22px; }
.l9-single #reviews .commentlist{ list-style:none; margin:0 0 34px; padding:0; }
.l9-single #reviews .commentlist li{ border:1px solid var(--l9-line); padding:18px 20px; margin:0 0 14px; background:var(--l9-paper); }
.l9-single #reviews .comment-form{ display:flex; flex-direction:column; gap:18px; }
.l9-single #reviews .comment-form p{ margin:0; }
.l9-single #reviews .comment-form label{ display:block; text-transform:uppercase; letter-spacing:.1em; font-size:11px; color:var(--l9-muted); margin:0 0 8px; font-weight:600; }
.l9-single #reviews .comment-form input[type=text],
.l9-single #reviews .comment-form input[type=email],
.l9-single #reviews .comment-form textarea{
	width:100%; box-sizing:border-box; border:1px solid var(--l9-line); border-radius:0;
	background:var(--l9-paper); padding:14px 15px; font-family:var(--l9-body); font-size:14px; color:var(--l9-ink); }
.l9-single #reviews .comment-form textarea{ min-height:130px; resize:vertical; }
.l9-single #reviews .comment-form input:focus,
.l9-single #reviews .comment-form textarea:focus{ outline:none; border-color:var(--l9-ink); }

/* star rating widget */
.l9-single #reviews .comment-form-rating .stars{ margin:6px 0 0; }
.l9-single #reviews .stars a{ color:var(--l9-ink); }
.l9-single #reviews p.stars a::before{ color:var(--l9-muted); }
.l9-single #reviews p.stars.selected a.active::before,
.l9-single #reviews p.stars:hover a::before{ color:var(--l9-ink); }

/* consent + submit */
.l9-single #reviews .comment-form-cookies-consent{ display:flex; gap:9px; align-items:flex-start; font-size:13px; color:var(--l9-muted); }
.l9-single #reviews .comment-form-cookies-consent label{ margin:0; text-transform:none; letter-spacing:0; font-size:13px; font-weight:400; color:var(--l9-muted); }
.l9-single #reviews .form-submit{ margin:0; }
.l9-single #reviews #submit{
	background:var(--l9-ink); color:var(--l9-paper); border:1px solid var(--l9-ink); border-radius:0;
	padding:15px 40px; font-family:var(--l9-body); font-weight:600; text-transform:uppercase; letter-spacing:.1em;
	font-size:12px; cursor:pointer; transition:opacity .15s; }
.l9-single #reviews #submit:hover{ opacity:.85; }

/* hide the redundant "Reviews" heading inside the Reviews tab (tab already names it) */
.l9-single #reviews .woocommerce-Reviews-title{ display:none !important; }

/* remove WooCommerce's default checkmark/info icons that overlap notice text */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-noreviews::before { display:none !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	display:flex; align-items:center; justify-content:space-between; gap:16px; padding-left:18px !important; }
.woocommerce-message .button, .woocommerce-info .button { flex:0 0 auto; margin:0; }

/* ==========================================================================
   CART PAGE — modern two-column redesign
   ========================================================================== */
body.woocommerce-cart .l9-page{ padding-top:clamp(30px,4vw,52px); }
body.woocommerce-cart .l9-page > article{ max-width:1240px; margin:0 auto; }
body.woocommerce-cart .l9-page > article > h1{ margin:0 0 26px; }

body.woocommerce-cart .l9-page .woocommerce{
	display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:44px; align-items:start; }
body.woocommerce-cart .woocommerce-notices-wrapper{ grid-column:1 / -1; }
body.woocommerce-cart form.woocommerce-cart-form{ grid-column:1; margin:0; }
body.woocommerce-cart .cart-collaterals{ grid-column:2; width:auto !important; float:none !important; margin:0; position:sticky; top:104px; }
body.woocommerce-cart .cart-collaterals .cart_totals{ width:100% !important; float:none !important; }

/* items table */
body.woocommerce-cart table.cart{ margin:0; border:1px solid var(--l9-line); border-collapse:collapse; }
body.woocommerce-cart table.cart thead th{ text-transform:uppercase; letter-spacing:.08em; font-size:11px; color:var(--l9-muted); padding:16px; border-bottom:1px solid var(--l9-line); }
body.woocommerce-cart table.cart td{ vertical-align:middle; padding:18px 16px; border-top:1px solid var(--l9-line); }
body.woocommerce-cart table.cart td.product-thumbnail{ width:88px; }
body.woocommerce-cart table.cart td.product-thumbnail img{ width:72px; height:auto; border:1px solid var(--l9-line); }
body.woocommerce-cart table.cart td.product-name a{ color:var(--l9-ink); text-decoration:none; font-weight:500; }
body.woocommerce-cart table.cart .quantity input.qty{ width:66px; height:46px; text-align:center; border:1px solid var(--l9-line); border-radius:0; background:var(--l9-paper); }
body.woocommerce-cart .product-remove a.remove{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border:1px solid var(--l9-line); border-radius:50%; color:var(--l9-muted) !important; font-size:16px; line-height:1; text-decoration:none; }
body.woocommerce-cart .product-remove a.remove:hover{ background:var(--l9-ink); color:#fff !important; border-color:var(--l9-ink); }

/* actions row: coupon left, update right */
body.woocommerce-cart td.actions{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px 16px !important; border-top:1px solid var(--l9-line); }
body.woocommerce-cart td.actions .coupon{ display:flex; gap:10px; align-items:stretch; flex:1 1 340px; max-width:440px; }
body.woocommerce-cart td.actions .coupon input.input-text{ flex:1 1 auto; min-width:0; height:48px; border:1px solid var(--l9-line); border-radius:0; padding:0 14px; background:var(--l9-paper); font-family:var(--l9-body); font-size:14px; }
body.woocommerce-cart td.actions .coupon .button{ flex:0 0 auto; height:48px; padding:0 22px; white-space:nowrap; }
/* Update cart = outline secondary, consistent disabled (no jarring gray/hover) */
body.woocommerce-cart td.actions button[name=update_cart]{
	background:transparent !important; color:var(--l9-ink) !important; border:1px solid var(--l9-ink) !important;
	height:48px; padding:0 26px; opacity:1 !important; }
body.woocommerce-cart td.actions button[name=update_cart]:hover{ background:var(--l9-ink) !important; color:#fff !important; }
body.woocommerce-cart td.actions button[name=update_cart]:disabled,
body.woocommerce-cart td.actions button[name=update_cart][disabled]{
	background:transparent !important; color:var(--l9-muted) !important; border-color:var(--l9-line) !important; cursor:default; }
body.woocommerce-cart td.actions button[name=update_cart]:disabled:hover{ background:transparent !important; color:var(--l9-muted) !important; }

/* totals card */
body.woocommerce-cart .cart_totals{ border:1px solid var(--l9-line); background:var(--l9-paper); padding:26px; }
body.woocommerce-cart .cart_totals h2{ font-family:var(--l9-display); text-transform:uppercase; font-size:24px; margin:0 0 16px; }
body.woocommerce-cart .cart_totals table{ border:0 !important; margin:0; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td{ border:0 !important; border-bottom:1px solid var(--l9-line) !important; padding:14px 0 !important; background:none !important; vertical-align:top; }
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td{ border-bottom:0 !important; font-size:18px; padding-top:16px !important; }
body.woocommerce-cart .cart_totals th{ text-transform:uppercase; letter-spacing:.05em; font-size:12px; font-weight:600; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods{ list-style:none; margin:0; padding:0; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods li{ margin:0 0 6px; }
body.woocommerce-cart .wc-proceed-to-checkout{ padding:20px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button{ display:block !important; width:100%; text-align:center; float:none; margin:0; }

/* empty-cart "return to shop" (kill the lavender default) */
.woocommerce .cart-empty + .return-to-shop .button,
.woocommerce a.button.wc-backward{
	background:var(--l9-ink) !important; color:var(--l9-paper) !important; border-color:var(--l9-ink) !important; }

@media (max-width:900px){
	body.woocommerce-cart .l9-page .woocommerce{ grid-template-columns:1fr; gap:28px; }
	body.woocommerce-cart .cart-collaterals{ grid-column:1; position:static; }
	body.woocommerce-cart td.actions{ flex-direction:column; align-items:stretch; }
	body.woocommerce-cart td.actions .coupon{ max-width:none; }
}

/* cart & checkout need the full width, not the 760px prose width */
body.woocommerce-cart .l9-page,
body.woocommerce-checkout .l9-page{ max-width:1280px; }

/* --- cart refinements: beat WooCommerce's own stylesheet --- */
body.woocommerce-cart table.cart td.product-thumbnail{ width:96px !important; text-align:center; }
body.woocommerce-cart table.cart td.product-thumbnail img{ width:74px !important; height:auto !important; max-width:none !important; display:inline-block; border:1px solid var(--l9-line); }
body.woocommerce-cart table.cart td.product-remove{ width:44px; }

/* coupon row: input grows, apply beside it, update pushed right */
body.woocommerce-cart td.actions{ display:flex !important; flex-wrap:wrap; gap:14px; align-items:center; }
body.woocommerce-cart td.actions .coupon{ display:flex; gap:10px; align-items:stretch; flex:1 1 auto; max-width:540px; }
body.woocommerce-cart td.actions .coupon input.input-text{ flex:1 1 auto !important; width:auto !important; min-width:180px; height:48px; }
body.woocommerce-cart td.actions .coupon .button{ flex:0 0 auto; height:48px; }
body.woocommerce-cart td.actions button[name=update_cart]{ margin-left:auto; }

/* --- cart table must fit its grid column (no overflow under totals card) --- */
body.woocommerce-cart form.woocommerce-cart-form{ min-width:0; }
body.woocommerce-cart table.cart{ width:100% !important; table-layout:fixed; }
body.woocommerce-cart table.cart td.product-remove{ width:38px !important; }
body.woocommerce-cart table.cart td.product-thumbnail{ width:84px !important; }
body.woocommerce-cart table.cart td.product-thumbnail img{ width:66px !important; }
body.woocommerce-cart table.cart td.product-name{ width:auto; word-wrap:break-word; }
body.woocommerce-cart table.cart th.product-price,   body.woocommerce-cart table.cart td.product-price{ width:14%; }
body.woocommerce-cart table.cart th.product-quantity,body.woocommerce-cart table.cart td.product-quantity{ width:15%; }
body.woocommerce-cart table.cart th.product-subtotal,body.woocommerce-cart table.cart td.product-subtotal{ width:15%; text-align:right; }
body.woocommerce-cart table.cart td.product-quantity .quantity input.qty{ width:100%; max-width:70px; }
/* actions row spans all columns */
body.woocommerce-cart table.cart td.actions{ width:auto; }

/* small cart fix: keep Update Cart on one line */
body.woocommerce-cart td.actions button[name=update_cart]{ white-space:nowrap; min-width:150px; }

/* ==========================================================================
   CHECKOUT PAGE — modern two-column redesign
   ========================================================================== */
body.woocommerce-checkout .l9-page > article{ max-width:1240px; margin:0 auto; }
body.woocommerce-checkout .l9-page > article > h1{ margin:0 0 26px; }

/* coupon toggle bar spacing */
body.woocommerce-checkout .woocommerce-form-coupon-toggle{ margin-bottom:22px; }
body.woocommerce-checkout form.checkout_coupon{ border:1px solid var(--l9-line); border-radius:0; padding:20px; margin-bottom:24px; }
body.woocommerce-checkout form.checkout_coupon .form-row{ display:inline-block; margin-right:10px; }

/* two-column grid: details (left, tall) + order summary (right, sticky) */
body.woocommerce-checkout form.checkout{
	display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
	column-gap:clamp(32px,4vw,56px); row-gap:0; align-items:start;
	grid-template-areas:"details reviewhead" "details review"; }
body.woocommerce-checkout #customer_details{ grid-area:details; min-width:0; }
body.woocommerce-checkout #order_review_heading{ grid-area:reviewhead; margin:0 0 14px; font-family:var(--l9-display); text-transform:uppercase; font-size:24px; }
body.woocommerce-checkout #order_review{ grid-area:review; position:sticky; top:104px; }

/* stack billing / additional in the left column */
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{ float:none !important; width:100% !important; max-width:none !important; }
body.woocommerce-checkout #customer_details .col-2{ margin-top:14px; }
body.woocommerce-checkout h3{ font-family:var(--l9-display); text-transform:uppercase; font-size:20px; margin:0 0 16px; }
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3{ padding-bottom:12px; border-bottom:1px solid var(--l9-line); }

/* order review card */
body.woocommerce-checkout #order_review{ border:1px solid var(--l9-line); background:var(--l9-paper); padding:24px; }
body.woocommerce-checkout #order_review table.shop_table{ border:0 !important; margin:0; }
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td{ border:0 !important; border-bottom:1px solid var(--l9-line) !important; padding:12px 0 !important; background:none !important; }
body.woocommerce-checkout #order_review table.shop_table thead th{ text-transform:uppercase; letter-spacing:.06em; font-size:11px; color:var(--l9-muted); }
body.woocommerce-checkout #order_review .cart_item td.product-name{ font-size:14px; }
body.woocommerce-checkout #order_review tfoot .order-total th,
body.woocommerce-checkout #order_review tfoot .order-total td{ border-bottom:0 !important; font-size:18px; padding-top:16px !important; }
body.woocommerce-checkout #order_review .woocommerce-shipping-methods{ list-style:none; margin:0; padding:0; }

/* payment box */
body.woocommerce-checkout #payment{ background:transparent !important; border-radius:0; margin-top:8px; }
body.woocommerce-checkout #payment ul.payment_methods{ border:0 !important; padding:0 !important; margin:0 0 8px; list-style:none; }
body.woocommerce-checkout #payment ul.payment_methods li{ margin:0 0 8px; }
body.woocommerce-checkout #payment div.payment_box{ background:var(--l9-bone) !important; border:1px solid var(--l9-line); }
body.woocommerce-checkout #payment div.payment_box::before{ display:none !important; }
body.woocommerce-checkout #payment .place-order{ padding:16px 0 0; }
body.woocommerce-checkout #place_order{ display:block; width:100%; text-align:center; float:none; margin:0; }

@media (max-width:900px){
	body.woocommerce-checkout form.checkout{ grid-template-columns:1fr; grid-template-areas:"reviewhead" "review" "details"; }
	body.woocommerce-checkout #order_review{ position:static; }
	body.woocommerce-checkout #customer_details{ margin-top:8px; }
}

/* checkout CTA buttons: center the label properly (was sitting high in a block box) */
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-checkout #place_order{
	display:flex !important; align-items:center; justify-content:center;
	width:100%; min-height:56px; padding:14px 28px !important; line-height:1.2 !important;
	float:none; margin:0; text-align:center; }

/* About page: wider, more editorial (was capped at the 760px prose width) */
.l9-about.l9-page{ max-width:1080px; }
.l9-about .l9-prose{ max-width:900px; }
.l9-about .l9-prose h1{ font-size:clamp(48px,7vw,88px); margin-bottom:34px; }
.l9-about .l9-prose p{ font-size:17px; line-height:1.85; max-width:70ch; }
.l9-about .l9-prose h3{ margin-top:44px; }

/* About page: editorial two-column — big sticky headline left, body right (fills width) */
.l9-about.l9-page{ max-width:1220px; padding-top:clamp(48px,6vw,90px); }
.l9-about .l9-prose{
	max-width:none; display:grid; grid-template-columns:minmax(280px,400px) minmax(0,1fr);
	column-gap:80px; align-items:start; }
.l9-about .l9-prose > *{ grid-column:2; max-width:60ch; }
.l9-about .l9-prose > h1{
	grid-column:1; grid-row:1 / span 60; align-self:start; position:sticky; top:120px;
	margin:0; max-width:none; font-size:clamp(52px,5.4vw,92px); line-height:.92; }
.l9-about .l9-prose > h3:first-of-type{ margin-top:0; }
.l9-about .l9-prose p{ font-size:17px; line-height:1.85; max-width:60ch; }
@media (max-width:860px){
	.l9-about .l9-prose{ display:block; }
	.l9-about .l9-prose > *{ max-width:none; }
	.l9-about .l9-prose > h1{ position:static; margin-bottom:28px; }
}
