/* BlueLine additions. Existing palette, type, heading rules and breakpoints remain authoritative. */
:root {
  --color-primary:var(--blue); --color-ink:var(--ink); --color-accent:var(--orange);
  --color-background:var(--paper); --color-surface:var(--white); --color-subtle:var(--surface);
  --color-muted:var(--muted); --color-border:var(--line); --font-base:var(--text-m);
  --radius-card:var(--bl-radius); --radius-control:var(--bl-radius-sm);
  --border-width:calc(var(--space-xs) / 12); --control-height:calc(var(--space-m) * 2.75);
  --focus-width:calc(var(--border-width) * 3); --motion-fast:180ms; --motion-normal:280ms;
  --card-aspect:1; --sidebar-ratio:27fr; --main-ratio:73fr;
}
.c-store { color:var(--color-ink); background:var(--color-background); font:inherit; font-size:var(--font-base); }
.c-store *, .c-store *::before, .c-store *::after { box-sizing:border-box; }
.c-container { width:calc(100% - var(--space-xl) * 2); max-width:var(--bl-content); margin-inline:auto; min-width:0; }
.c-grid { display:grid; width:100%; min-width:0; gap:var(--space-l); }
.c-grid > * { min-width:0; }
.c-loop-item { min-width:0; height:100%; width:100%; }
.c-grid--3-col { grid-template-columns:repeat(3,minmax(0,1fr)); }
.c-grid--4-col { grid-template-columns:repeat(4,minmax(0,1fr)); }
.c-grid--sidebar-main { grid-template-columns:minmax(0,var(--sidebar-ratio)) minmax(0,var(--main-ratio)); align-items:start; gap:var(--space-2xl); }
.c-flex { display:flex; flex-direction:row; flex-wrap:wrap; gap:var(--space-m); min-width:0; }
.c-flex--between { justify-content:space-between; align-items:center; }
.c-flex--center { justify-content:center; align-items:center; }
.c-flex--col { flex-direction:column; flex-wrap:nowrap; }
.c-btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-xs); min-height:var(--control-height); padding:var(--space-xs) var(--space-m); border:var(--border-width) solid var(--color-border); border-radius:var(--radius-control); font:inherit; font-size:var(--text-s); font-weight:600; line-height:1.3; text-decoration:none; cursor:pointer; transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast); }
.c-btn--primary { color:var(--color-surface); background:var(--color-primary); border-color:var(--color-primary); }
.c-btn--primary:hover { color:var(--color-surface); background:var(--color-ink); border-color:var(--color-ink); }
.c-btn--outline { color:var(--color-ink); background:transparent; border-color:var(--color-ink); }
.c-btn--outline:hover { color:var(--color-surface); background:var(--color-ink); }
.c-btn--icon { width:var(--control-height); padding:var(--space-xs); flex-shrink:0; }
.c-btn--icon svg { width:var(--text-l); height:var(--text-l); fill:none; stroke:currentColor; stroke-width:1.75; }
.c-btn[aria-pressed="true"] { color:var(--color-surface); background:var(--color-primary); border-color:var(--color-primary); }
.c-store :where(a,button,input,select,textarea,summary):focus-visible, .c-dialog :where(a,button):focus-visible { outline:var(--focus-width) solid var(--color-primary); outline-offset:var(--border-width); }
.c-control, .c-store :where(select,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea) { max-width:100%; min-height:var(--control-height); border:var(--border-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface); color:var(--color-ink); padding:var(--space-xs) var(--space-s); font:inherit; font-size:var(--text-s); }
.c-label { display:block; font-size:var(--text-s); font-weight:600; margin-block-end:var(--space-xs); }
.c-badge { display:inline-flex; padding:calc(var(--space-xs) / 2) var(--space-xs); border-radius:var(--radius-control); background:var(--color-ink); color:var(--color-surface); font-size:var(--text-xs); font-weight:600; line-height:1.4; text-transform:uppercase; }
.c-badge--sale { background:var(--color-accent); }
.c-badge--new { background:var(--color-primary); }
.c-card { padding:var(--space-l); border:var(--border-width) solid var(--color-border); border-radius:var(--radius-card); background:var(--color-surface); }
.c-product-card { display:flex; flex-direction:column; min-width:0; width:100%; height:100%; padding:0; border:0; border-radius:0; background:transparent; overflow:hidden; }
.c-product-card__media { position:relative; width:100%; aspect-ratio:var(--card-aspect); border-radius:0; background:var(--color-subtle); overflow:hidden; }
.c-product-card__media > a:first-child { display:block; width:100%; height:100%; }
.c-product-card__image { display:block; width:100%; height:100%; object-fit:contain; transition:opacity var(--motion-normal); }
.c-product-card__image--secondary { position:absolute; inset:0; opacity:0; pointer-events:none; }
.c-product-card__media:hover .c-product-card__image--secondary, .c-product-card__media:focus-within .c-product-card__image--secondary { opacity:1; }
.c-product-card__badges { position:absolute; inset-block-start:var(--space-xs); inset-inline-start:var(--space-xs); display:flex; flex-wrap:wrap; gap:calc(var(--space-xs) / 2); z-index:1; pointer-events:none; }
.c-product-card__actions { position:absolute; inset-inline-end:var(--space-xs); inset-block-start:var(--space-xs); display:flex; flex-direction:column-reverse; gap:var(--space-xs); z-index:2; opacity:0; pointer-events:none; transform:translateX(var(--space-xs)); transition:opacity var(--motion-fast),transform var(--motion-fast); }
.c-product-card__actions .c-btn { color:var(--color-ink); background:var(--color-surface); border-radius:50%; }
.c-product-card__actions .c-btn[aria-pressed="true"] { color:var(--color-surface); background:var(--color-primary); }
.c-product-card__media:hover .c-product-card__actions, .c-product-card__media:focus-within .c-product-card__actions { opacity:1; transform:none; pointer-events:auto; }
.c-product-card__media > .c-product-card__cart-bar { position:absolute; inset-inline:0; inset-block-end:0; display:flex; width:100%; height:auto; min-height:var(--control-height); margin:0; padding:var(--space-xs) var(--space-s); border:0; border-radius:0; color:var(--color-surface); background:var(--color-ink); text-transform:uppercase; font-size:var(--text-s); font-weight:600; z-index:3; transform:translateY(100%); opacity:0; pointer-events:none; transition:transform var(--motion-normal),opacity var(--motion-normal); }
.c-product-card__cart-bar svg { width:var(--text-l); height:var(--text-l); fill:none; stroke:currentColor; stroke-width:1.75; }
.c-product-card__media:hover .c-product-card__cart-bar, .c-product-card__media:focus-within .c-product-card__cart-bar { transform:translateY(0); opacity:1; pointer-events:auto; }
.c-product-card__media > .c-product-card__cart-bar:hover { background:var(--color-ink); }
/* One solid navy bar: wrapper, inner button and hover all share the ink color (no blue showing behind the button). */
.c-product-card__media .c-product-card__cart-bar, .c-product-card__media .c-product-card__cart-bar .button, .c-product-card__media .c-product-card__cart-bar a, .c-product-card__media .c-product-card__cart-bar:hover, .c-product-card__media .c-product-card__cart-bar .button:hover, .c-product-card__media .c-product-card__cart-bar a:hover { background:var(--color-ink); border-color:var(--color-ink); color:var(--color-surface); }
.c-product-card__media > .added_to_cart { position:absolute; inset-inline:0; inset-block-end:var(--control-height); z-index:4; width:100%; height:auto; padding:var(--space-xs); text-align:center; color:var(--color-primary); background:var(--color-surface); }
.c-product-card__body { display:flex; flex-direction:column; align-items:center; text-align:center; gap:calc(var(--space-xs) / 2); padding:var(--space-m) 0 0; flex:1; width:100%; }
.c-product-card__category { color:var(--color-muted); text-transform:uppercase; letter-spacing:.08em; font-size:var(--text-xs); line-height:1.5; }
.c-product-card__title { margin:0; font:inherit; font-size:var(--text-m); line-height:1.4; font-weight:700; color:var(--color-ink); overflow-wrap:anywhere; }
.c-product-card__title a:hover { color:var(--color-primary); }
.c-product-card__rating { color:var(--color-primary); font-size:var(--text-s); }
.c-product-card__rating .star-rating { float:none; }
.c-product-card .c-product-card__rating { display:flex; justify-content:center; width:100%; }
.c-product-card__unrated { color:var(--color-border); letter-spacing:.05em; line-height:1; }
.c-product-card__price { color:var(--color-ink); font-size:var(--text-m); font-weight:600; }
.c-product-card__price del { color:var(--color-muted); font-size:var(--text-s); font-weight:400; margin-inline-end:var(--space-xs); }
.c-product-card__price ins { text-decoration:none; background:transparent; }
.c-product-card__cart { display:none; }
.c-shop__heading { margin:0; font-size:var(--text-3xl); }
.c-shop__main { min-width:0; width:100%; }
.c-shop__toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--space-m); padding-block:var(--space-m); border-block:var(--border-width) solid var(--color-border); margin-block:var(--space-l); font-size:var(--text-s); }
.c-shop__toolbar .woocommerce-result-count, .c-shop__toolbar .woocommerce-ordering { margin:0; float:none; }
.c-shop__sidebar { display:flex; flex-direction:column; gap:var(--space-l); }
.c-filter-group { border-block-end:var(--border-width) solid var(--color-border); padding-block:var(--space-m); }
.c-filter-group > summary { cursor:pointer; font-weight:600; font-size:var(--text-m); }
.c-filter-group__options { display:flex; flex-direction:column; gap:var(--space-xs); margin-block-start:var(--space-m); max-height:calc(var(--space-3xl) * 5); overflow:auto; }
.c-filter-group label { display:flex; align-items:center; gap:var(--space-xs); font-size:var(--text-s); }
.c-filter-group input { accent-color:var(--color-primary); }
.c-filter-group input[type="range"] { width:100%; }
.c-filter-group__prices { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xs); }
.c-filter-group__prices label { flex-direction:column; align-items:stretch; }
.c-filter-group__prices input { width:100%; min-width:0; }
.c-filter-group__children { padding-inline-start:var(--space-s); }
.c-filter-actions { display:flex; flex-wrap:wrap; gap:var(--space-xs); padding-block:var(--space-l); }
.c-active-filters { display:flex; flex-wrap:wrap; gap:var(--space-xs); margin-block:var(--space-m); font-size:var(--text-s); }
.c-active-filters a { padding:var(--space-xs); border:var(--border-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface); }
.c-pagination { margin-block-start:var(--space-xl); width:100%; }
.c-pagination ul.page-numbers { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:var(--space-xs); list-style:none; margin:0; padding:0; }
.c-pagination .page-numbers > li > * { display:flex; justify-content:center; align-items:center; min-width:var(--control-height); min-height:var(--control-height); border:var(--border-width) solid var(--color-border); padding:var(--space-xs); font-size:var(--text-s); }
.c-pagination .page-numbers.current { background:var(--color-primary); color:var(--color-surface); }
.c-product-single { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2xl); width:100%; }
.c-product-single__summary { display:flex; flex-direction:column; gap:var(--space-m); min-width:0; }
.c-product-single__title { font-size:var(--text-2xl); line-height:1.2; margin:0; }
.c-product-single__price { font-size:var(--text-xl); font-weight:600; }
.c-product-single__meta { color:var(--color-muted); font-size:var(--text-s); }
.c-product-single__gallery { width:100%; min-width:0; }
.c-product-single__gallery img { object-fit:contain; background:var(--color-subtle); }
.c-product-single__buy .single_add_to_cart_button { min-height:var(--control-height); padding:var(--space-s) var(--space-xl); background:var(--color-ink); color:var(--color-surface); font:inherit; font-weight:600; border-radius:var(--radius-control); }
.c-product-single__buy .single_add_to_cart_button:hover { background:var(--color-primary); }
.c-product-single__buy .variations { width:100%; margin-block-end:var(--space-m); }
.c-product-single__buy .variations select { width:100%; }
.c-product-single__buy .quantity { margin-inline-end:var(--space-s); }
.c-product-single__buy .qty { width:calc(var(--space-2xl) * 2); }
.c-product-single__tabs { width:100%; margin-block:var(--space-3xl); border:var(--border-width) solid var(--color-border); border-radius:var(--radius-card); padding:var(--space-l); }
.c-product-single__tabs .tabs { display:flex; flex-wrap:wrap; gap:var(--space-m); margin:0 0 var(--space-l); padding:0; list-style:none; border-block-end:var(--border-width) solid var(--color-border); }
.c-product-single__tabs .tabs li a { display:block; padding:var(--space-s); color:var(--color-muted); font-weight:600; }
.c-product-single__tabs .tabs li.active a { color:var(--color-primary); border-block-end:var(--focus-width) solid var(--color-primary); }
.c-product-single__tabs table { width:100%; }
.c-product-single__related { width:100%; }
.c-product-single__related h2 { margin-block:var(--space-l); font-size:var(--text-xl); }
.c-share { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-s); font-size:var(--text-s); }
.c-dialog { width:min(90vw,var(--bl-content)); max-height:90vh; overflow:auto; border:var(--border-width) solid var(--color-border); border-radius:var(--radius-card); padding:var(--space-xl); background:var(--color-surface); color:var(--color-ink); font:inherit; }
.c-dialog::backdrop { background:color-mix(in srgb,var(--color-ink) 65%,transparent); }
.c-dialog__close { display:flex; justify-content:flex-end; margin-block-end:var(--space-m); }
.c-dialog__content { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xl); }
.c-dialog__content img { width:100%; height:auto; object-fit:contain; }
.c-dialog__content h2 { font-size:var(--text-xl); }
.c-wishlist-list { display:flex; flex-direction:column; gap:var(--space-m); list-style:none; padding:0; }
.c-wishlist-list li { display:flex; justify-content:space-between; align-items:center; gap:var(--space-m); }
.c-store [data-bl-grid][data-view="list"] { grid-template-columns:1fr; }
.c-store [data-bl-grid][data-view="list"] .c-product-card { display:grid; grid-template-columns:1fr 2fr; gap:var(--space-l); }
.u-sr-only { position:absolute; width:var(--border-width); height:var(--border-width); overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media (max-width:61.9375em) { .c-grid--4-col { grid-template-columns:repeat(2,minmax(0,1fr)); } .c-grid--3-col { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:47.9375em) { .c-grid--sidebar-main,.c-product-single { grid-template-columns:1fr; } .c-dialog__content { grid-template-columns:1fr; } .c-container { width:calc(100% - var(--space-m) * 2); } }
@media (max-width:29.875em) { .c-grid--3-col,.c-grid--4-col { grid-template-columns:1fr; } .c-store [data-bl-grid][data-view="list"] .c-product-card { grid-template-columns:1fr; } }
@media (hover:none),(pointer:coarse) { .c-product-card__media .c-product-card__actions,.c-product-card__media > .c-product-card__cart-bar { opacity:1; transform:none; pointer-events:auto; } }
@media (prefers-reduced-motion:reduce) { .c-product-card__image,.c-product-card__actions,.c-btn,.c-product-card__media > .c-product-card__cart-bar { transition:none; } }

.u-pad-y--xs { padding-block:var(--space-xs); }
.u-margin-y--xs { margin-block:var(--space-xs); }

.u-pad-y--s { padding-block:var(--space-s); }
.u-margin-y--s { margin-block:var(--space-s); }

.u-pad-y--m { padding-block:var(--space-m); }
.u-margin-y--m { margin-block:var(--space-m); }

.u-pad-y--l { padding-block:var(--space-l); }
.u-margin-y--l { margin-block:var(--space-l); }

.u-pad-y--xl { padding-block:var(--space-xl); }
.u-margin-y--xl { margin-block:var(--space-xl); }

.u-gap--s { gap:var(--space-s); }

.u-gap--m { gap:var(--space-m); }

.u-gap--l { gap:var(--space-l); }
