Files
repa-woocommerce/theme/style.css
FrontendDev 9bd61b4236 Fix mobile hamburger menu, designs page template, product tab styling, and stock field (REPA-78)
- Add mobile hamburger toggle button and full-screen nav drawer (≤1024px)
- Fix product tab styles: complete tab CSS without relying on WC parent selectors; explicit wc-single-product enqueue on product pages
- Fix STOCK field: conditionally hide when get_stock_quantity() returns null instead of showing '— units'
- Add page-designs.php template + template_include filter so /designs/ uses themed layout instead of raw WooCommerce output
- Align nav/footer terminology: 'Canvas' → 'Wall Decor' in nav fallback; correct broken category URL slugs (mugs→drinkware, canvas→wall-decor, planners→stationery, blog→the-memo); add 'Bulk / HR' to mobile drawer

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-03 10:58:16 -04:00

1203 lines
42 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Theme Name: RAR Storefront
Theme URI: https://shop.k9stryker.com
Description: Reply All Regrets™ — Retro office aesthetic storefront for WooCommerce. Corporate-mocking parody with manila, ink, stamp red, and olive color palette.
Version: 1.0.0
Author: REPA
Text Domain: rar-storefront
*/
/* ───────── CSS Variables ───────── */
:root {
--manila: #F5F1E8;
--manila-dark: #E8DFC8;
--manila-deep: #D9CDA8;
--ink: #1A1A1A;
--ink-soft: #2B2B2B;
--ink-muted: #5A5249;
--ink-faint: #8A8175;
--paper: #FBF8EF;
--stamp: #C8533C;
--stamp-dark: #9E3F2C;
--olive: #7B8C5A;
--olive-dark: #5F6E45;
--rule: #1A1A1A;
--hairline: rgba(26, 26, 26, 0.18);
--hairline-strong: rgba(26, 26, 26, 0.55);
--serif: "Fraunces", "Playfair Display", Georgia, serif;
--mono: "JetBrains Mono", "Courier Prime", "Courier New", monospace;
--sans: "Inter", -apple-system, system-ui, sans-serif;
}
/* ───────── Base reset ───────── */
*, *::before, *::after { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
font-family: var(--sans);
color: var(--ink);
background: var(--manila);
-webkit-font-smoothing: antialiased;
letter-spacing: -0.005em;
}
body { min-height: 100vh; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; padding: 0; }
/* ───────── Type utilities ───────── */
.rar-mono { font-family: var(--mono); letter-spacing: 0; }
.rar-serif { font-family: var(--serif); letter-spacing: -0.02em; }
.rar-uppercase {
text-transform: uppercase;
letter-spacing: 0.12em;
font-family: var(--mono);
font-weight: 500;
}
/* ───────── Form-label tag (FORM 27-B style) ───────── */
.rar-form-tag {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--ink-muted);
}
.rar-form-tag::before {
content: "";
width: 8px; height: 8px;
background: var(--stamp);
border-radius: 50%;
}
/* ───────── Announcement bar ───────── */
.rar-bar {
background: var(--stamp);
color: var(--manila);
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.22em;
text-transform: uppercase;
text-align: center;
padding: 7px 16px;
border-bottom: 1px solid var(--ink);
}
/* ───────── Navigation ───────── */
.rar-nav {
background: var(--ink);
color: var(--manila);
padding: 10px 32px;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 3px double var(--manila);
position: sticky;
top: 0;
z-index: 100;
}
.rar-nav__logo { display: flex; align-items: baseline; gap: 10px; }
.rar-nav__logo-mark {
font-family: var(--serif);
font-weight: 600;
font-size: 22px;
letter-spacing: -0.02em;
text-decoration: none;
color: var(--manila);
}
.rar-nav__logo-sub {
font-family: var(--mono);
font-size: 9px;
letter-spacing: 0.22em;
text-transform: uppercase;
color: rgba(245, 241, 232, 0.55);
}
.rar-nav__links {
display: flex;
gap: 24px;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.16em;
text-transform: uppercase;
}
.rar-nav__links a {
position: relative;
padding: 4px 0;
cursor: pointer;
transition: color 0.15s;
color: var(--manila);
}
.rar-nav__links a:hover,
.rar-nav__links .current-menu-item > a,
.rar-nav__links .current_page_item > a { color: var(--stamp); }
.rar-nav__icons {
display: flex;
align-items: center;
gap: 16px;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.rar-nav__icons a { color: var(--manila); transition: color 0.15s; }
.rar-nav__icons a:hover { color: var(--stamp); }
.rar-nav__cart {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
background: var(--stamp);
color: var(--manila) !important;
border-radius: 2px;
cursor: pointer;
transition: background 0.15s;
}
.rar-nav__cart:hover { background: var(--stamp-dark) !important; }
.rar-nav__search-btn {
display: inline-flex; align-items: center; gap: 6px;
background: none; border: none; cursor: pointer;
color: var(--manila); font-family: var(--mono); font-size: 11px;
letter-spacing: 0.12em; text-transform: uppercase; padding: 0;
transition: color 0.15s;
}
.rar-nav__search-btn:hover { color: var(--stamp); }
.rar-search-overlay {
position: sticky; top: 0; z-index: 99;
background: var(--paper); border-bottom: 1.5px solid var(--ink);
padding: 12px 40px;
}
.rar-search-form {
display: flex; align-items: center; gap: 10px; max-width: 640px; margin: 0 auto;
}
.rar-search-input {
flex: 1; padding: 10px 14px;
border: 1.5px solid var(--ink); background: transparent;
font-family: var(--mono); font-size: 13px; letter-spacing: 0.04em;
color: var(--ink); outline: none;
}
.rar-search-input:focus { border-color: var(--stamp); }
.rar-search-close {
background: none; border: none; cursor: pointer; font-size: 18px;
color: var(--ink-muted); padding: 4px 8px; line-height: 1;
transition: color 0.15s;
}
.rar-search-close:hover { color: var(--stamp); }
.rar-newsletter-form { display: flex; gap: 8px; width: 100%; }
.rar-newsletter-form input[type=email] {
flex: 1; max-width: 240px; padding: 10px 12px;
background: transparent;
border: 1px solid rgba(245,241,232,0.3);
color: var(--manila); font-family: var(--mono); font-size: 11px;
letter-spacing: 0.06em; outline: none; border-radius: 2px;
}
.rar-newsletter-form input[type=email]::placeholder { color: rgba(245,241,232,0.4); }
/* ───────── Buttons ───────── */
.rar-btn {
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 14px 22px;
border-radius: 2px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
transition: all 0.15s;
border: 1.5px solid var(--ink);
background: var(--ink);
color: var(--manila);
cursor: pointer;
}
.rar-btn:hover { background: var(--stamp); border-color: var(--stamp); }
.rar-btn--ghost { background: transparent; color: var(--ink); }
.rar-btn--ghost:hover { background: var(--ink); color: var(--manila); border-color: var(--ink); }
.rar-btn--stamp { background: var(--stamp); border-color: var(--stamp); }
.rar-btn--stamp:hover { background: var(--stamp-dark); border-color: var(--stamp-dark); }
/* ───────── Rubber stamp ───────── */
.rar-stamp {
display: inline-block;
font-family: var(--mono);
font-weight: 700;
font-size: 14px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--stamp);
border: 2.5px solid var(--stamp);
padding: 6px 14px;
border-radius: 4px;
transform: rotate(-6deg);
opacity: 0.85;
}
.rar-stamp--olive { color: var(--olive-dark); border-color: var(--olive-dark); }
/* ───────── Striped placeholder ───────── */
.rar-placeholder {
position: relative;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0px, var(--manila-deep) 14px, var(--manila-dark) 14px, var(--manila-dark) 28px);
border: 1px solid var(--hairline-strong);
display: flex; align-items: center; justify-content: center;
overflow: hidden;
}
.rar-placeholder__label {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--ink-soft);
background: var(--paper);
padding: 5px 10px;
border: 1px solid var(--ink);
text-align: center;
max-width: 80%;
}
/* ───────── Product Cards ───────── */
.rar-card {
background: var(--paper);
border: 1px solid var(--hairline-strong);
border-radius: 2px;
overflow: hidden;
transition: transform 0.18s, box-shadow 0.18s;
display: block;
}
.rar-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(26, 26, 26, 0.08);
}
.rar-card__media {
aspect-ratio: 1 / 1;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0px, var(--manila-deep) 14px, var(--manila-dark) 14px, var(--manila-dark) 28px);
display: flex; align-items: center; justify-content: center;
position: relative;
overflow: hidden;
}
.rar-card__media img {
width: 100%; height: 100%;
object-fit: cover;
position: absolute; inset: 0;
}
.rar-card__sku {
position: absolute; top: 10px; left: 10px;
font-family: var(--mono);
font-size: 9px;
letter-spacing: 0.16em;
color: var(--ink-muted);
background: var(--paper);
padding: 3px 7px;
border: 1px solid var(--hairline-strong);
z-index: 1;
}
.rar-card__body {
padding: 14px 16px 18px;
border-top: 1px solid var(--hairline);
}
.rar-card__cat {
font-family: var(--mono);
font-size: 9px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--ink-faint);
margin-bottom: 6px;
}
.rar-card__title {
font-family: var(--serif);
font-size: 17px;
font-weight: 500;
line-height: 1.18;
margin-bottom: 10px;
color: var(--ink);
letter-spacing: -0.01em;
}
.rar-card__row {
display: flex;
justify-content: space-between;
align-items: baseline;
font-family: var(--mono);
font-size: 11px;
}
.rar-card__price { font-weight: 600; }
.rar-card__badge {
position: absolute; top: 10px; right: 10px;
padding: 3px 8px;
background: var(--stamp);
color: var(--manila);
font-family: var(--mono);
font-size: 9px;
letter-spacing: 0.16em;
text-transform: uppercase;
z-index: 1;
}
/* ───────── Section header ───────── */
.rar-section-head {
display: flex;
align-items: flex-end;
justify-content: space-between;
border-bottom: 1.5px solid var(--ink);
padding-bottom: 16px;
margin-bottom: 32px;
}
.rar-section-head h2 {
font-family: var(--serif);
font-size: 38px;
font-weight: 500;
letter-spacing: -0.025em;
margin: 0;
line-height: 1;
}
.rar-section-head__meta {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--ink-muted);
text-align: right;
}
/* ───────── Folder tab ───────── */
.rar-folder-tab {
display: inline-block;
background: var(--manila-dark);
border: 1px solid var(--hairline-strong);
border-bottom: none;
padding: 8px 18px 10px;
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--ink-soft);
border-radius: 4px 4px 0 0;
position: relative;
margin-bottom: -1px;
}
/* ───────── Misc ───────── */
.rar-divider { border-top: 1px dashed var(--hairline-strong); margin: 24px 0; }
.rar-tag {
display: inline-block;
font-family: var(--mono); font-size: 9px;
letter-spacing: 0.16em; text-transform: uppercase;
padding: 3px 7px; border: 1px solid var(--ink); background: var(--paper);
}
.rar-lined {
background: repeating-linear-gradient(to bottom, transparent 0, transparent 27px, rgba(26,26,26,0.08) 27px, rgba(26,26,26,0.08) 28px);
background-color: var(--paper);
}
/* ───────── Footer ───────── */
.rar-footer {
background: var(--ink);
color: var(--manila);
padding: 50px 32px 24px;
border-top: 4px double var(--manila);
}
.rar-footer__grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 40px;
margin-bottom: 40px;
}
.rar-footer__col-title {
font-family: var(--mono); font-size: 10px;
letter-spacing: 0.22em; text-transform: uppercase;
color: rgba(245,241,232,0.5); margin-bottom: 14px;
}
.rar-footer__col ul {
list-style: none; padding: 0; margin: 0;
display: flex; flex-direction: column; gap: 8px; font-size: 13px;
}
.rar-footer__col a { cursor: pointer; transition: color 0.15s; color: var(--manila); }
.rar-footer__col a:hover { color: var(--stamp); }
.rar-footer__legal {
border-top: 1px solid rgba(245,241,232,0.18);
padding-top: 18px;
display: flex; justify-content: space-between;
font-family: var(--mono); font-size: 10px;
letter-spacing: 0.16em; text-transform: uppercase;
color: rgba(245,241,232,0.55);
}
.rar-footer__newsletter {
display: flex; gap: 8px; margin-top: 22px;
}
.rar-footer__newsletter input {
flex: 1; max-width: 240px; padding: 10px 12px;
background: transparent;
border: 1px solid rgba(245,241,232,0.3);
color: var(--manila); font-family: var(--mono); font-size: 11px;
letter-spacing: 0.06em; outline: none; border-radius: 2px;
}
.rar-footer__newsletter input::placeholder { color: rgba(245,241,232,0.4); }
/* ───────── Hero Section ───────── */
.rar-hero {
padding: 64px 56px 56px;
border-bottom: 1px solid var(--hairline-strong);
}
.rar-hero__grid {
display: grid;
grid-template-columns: 1.1fr 1fr;
gap: 56px;
align-items: center;
}
.rar-hero h1 {
font-family: var(--serif);
font-size: clamp(52px, 6vw, 88px);
font-weight: 500;
line-height: 0.95;
margin: 0 0 24px;
letter-spacing: -0.03em;
}
.rar-hero__em { color: var(--stamp); font-style: italic; }
.rar-hero__sub {
font-size: 16px; line-height: 1.55; max-width: 480px;
margin: 0 0 32px; color: var(--ink-muted);
}
.rar-hero__cta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.rar-hero__meta {
font-family: var(--mono); font-size: 10px; color: var(--ink-faint);
letter-spacing: 0.16em; text-transform: uppercase; margin-left: 8px;
}
.rar-hero__image {
position: relative;
aspect-ratio: 4 / 5;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0px, var(--manila-deep) 14px, var(--manila-dark) 14px, var(--manila-dark) 28px);
border: 1px solid var(--hairline-strong);
display: flex; align-items: center; justify-content: center;
overflow: hidden;
}
.rar-hero__image img {
width: 100%; height: 100%; object-fit: cover;
position: absolute; inset: 0;
}
.rar-hero__image-label {
position: absolute; top: 16px; left: 16px;
padding: 6px 10px;
background: var(--paper); border: 1px solid var(--ink);
font-family: var(--mono); font-size: 10px;
letter-spacing: 0.18em; text-transform: uppercase;
z-index: 1;
}
.rar-hero__stamp { position: absolute; bottom: 18px; right: 18px; z-index: 1; }
.rar-metrics {
display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
margin-top: 56px; padding-top: 24px;
border-top: 1.5px solid var(--ink);
}
.rar-metrics__item {
padding: 0 24px;
border-right: 1px solid var(--hairline);
}
.rar-metrics__item:last-child { border-right: none; }
.rar-metrics__num {
font-family: var(--serif); font-size: 36px; font-weight: 500; line-height: 1;
}
.rar-metrics__label {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
text-transform: uppercase; color: var(--ink-muted); margin-top: 6px;
}
/* ───────── Category Cards ───────── */
.rar-cats { padding: 72px 56px; background: var(--paper); }
.rar-cats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rar-cat-card {
display: block; padding: 20px 18px 24px;
border: 1px solid var(--hairline-strong);
background: var(--manila);
transition: background 0.18s;
cursor: pointer;
}
.rar-cat-card:hover { background: var(--manila-dark); }
.rar-cat-card__header {
display: flex; justify-content: space-between; align-items: baseline;
}
.rar-cat-card__sku {
font-family: var(--mono); font-size: 9px;
letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-faint);
}
.rar-cat-card__count {
font-family: var(--mono); font-size: 10px; color: var(--ink-muted);
}
.rar-cat-card__name {
font-family: var(--serif); font-size: 32px; font-weight: 500;
margin-top: 14px; margin-bottom: 8px; letter-spacing: -0.02em;
}
.rar-cat-card__desc {
font-size: 12px; color: var(--ink-muted); line-height: 1.5; margin-bottom: 16px;
}
.rar-cat-card__browse {
font-family: var(--mono); font-size: 10px;
letter-spacing: 0.18em; text-transform: uppercase;
display: inline-flex; align-items: center; gap: 6px;
}
/* ───────── Products grid ───────── */
.rar-products { padding: 72px 56px; }
.rar-products__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
/* ───────── Designs section ───────── */
.rar-designs { padding: 72px 56px; border-top: 1px solid var(--hairline-strong); }
.rar-designs__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.rar-design-card__artwork {
display: flex; flex-direction: column; align-items: center; justify-content: center;
padding: 10px;
font-family: var(--serif); font-style: italic; font-weight: 500;
font-size: 20px; line-height: 1.15; text-align: center;
}
/* ───────── Editorial / Quote ───────── */
.rar-editorial {
padding: 80px 56px;
background: var(--ink); color: var(--manila);
position: relative; overflow: hidden;
}
.rar-editorial__memo {
position: absolute; top: 28px; right: 56px;
font-family: var(--mono); font-size: 10px; letter-spacing: 0.22em;
color: rgba(245,241,232,0.4); text-transform: uppercase;
}
.rar-editorial__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.rar-editorial__as-seen {
font-family: var(--serif); font-size: 12px; letter-spacing: 0.4em;
text-transform: uppercase; color: var(--stamp); margin-bottom: 32px;
}
.rar-editorial__quote {
font-family: var(--serif); font-size: 40px; font-weight: 400;
line-height: 1.2; font-style: italic;
letter-spacing: -0.015em; margin: 0;
}
.rar-editorial__attr {
font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
text-transform: uppercase; margin-top: 36px; color: rgba(245,241,232,0.7);
}
.rar-editorial__press {
margin-top: 56px; display: flex; gap: 64px; justify-content: center;
font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em;
text-transform: uppercase; color: rgba(245,241,232,0.5);
flex-wrap: wrap;
}
/* ───────── Blog teasers ───────── */
.rar-blog-section { padding: 72px 56px; background: var(--paper); }
.rar-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rar-blog-card { cursor: pointer; display: block; }
.rar-blog-card__thumb {
width: 100%; aspect-ratio: 16/9;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0px, var(--manila-deep) 14px, var(--manila-dark) 14px, var(--manila-dark) 28px);
overflow: hidden; position: relative;
}
.rar-blog-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rar-blog-card__tag {
padding-top: 18px;
font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em;
text-transform: uppercase; color: var(--stamp); margin-bottom: 10px;
}
.rar-blog-card__title {
font-family: var(--serif); font-size: 22px; font-weight: 500;
line-height: 1.2; letter-spacing: -0.015em;
}
/* ───────── Category / Archive Page ───────── */
.rar-breadcrumb {
padding: 14px 56px;
border-bottom: 1px solid var(--hairline-strong);
background: var(--manila-dark);
font-family: var(--mono); font-size: 10px;
letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-muted);
}
.rar-breadcrumb span { color: var(--ink); }
.rar-cat-hero { padding: 32px 56px 24px; }
.rar-cat-hero__inner {
border: 1.5px solid var(--ink); background: var(--paper);
padding: 36px 36px 28px;
display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: flex-end;
}
.rar-cat-hero h1 {
font-family: var(--serif); font-size: clamp(40px, 5vw, 76px);
font-weight: 500; line-height: 0.95; margin: 0; letter-spacing: -0.03em;
}
.rar-cat-hero__stats {
display: flex; gap: 18px; font-family: var(--mono); font-size: 10px;
letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-muted);
}
.rar-toolbar {
display: flex; align-items: center; justify-content: space-between;
padding: 16px 56px;
border-top: 1px solid var(--hairline-strong);
border-bottom: 1px solid var(--hairline-strong);
background: var(--manila);
position: sticky; top: 0; z-index: 4;
}
.rar-toolbar__left {
font-family: var(--mono); font-size: 11px;
letter-spacing: 0.16em; text-transform: uppercase;
}
.rar-toolbar__right { display: flex; gap: 14px; align-items: center; }
.rar-view-toggle { display: flex; border: 1px solid var(--ink); }
.rar-view-toggle__btn {
padding: 7px 14px; font-family: var(--mono); font-size: 10px;
letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; border: none;
}
.rar-view-toggle__btn.active { background: var(--ink); color: var(--manila); }
.rar-view-toggle__btn:not(.active) { background: transparent; color: var(--ink); }
.rar-sort-wrap { position: relative; }
.rar-sort-btn {
padding: 7px 14px; font-family: var(--mono); font-size: 10px;
letter-spacing: 0.16em; text-transform: uppercase;
border: 1px solid var(--ink); background: var(--paper);
display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
}
.rar-sort-menu {
position: absolute; top: calc(100% + 4px); right: 0; z-index: 10;
background: var(--paper); border: 1px solid var(--ink); min-width: 180px;
display: none;
}
.rar-sort-menu.open { display: block; }
.rar-sort-menu button {
display: block; width: 100%; text-align: left;
padding: 10px 14px; font-family: var(--mono); font-size: 10px;
letter-spacing: 0.16em; text-transform: uppercase;
border: none; background: transparent; cursor: pointer;
}
.rar-sort-menu button:hover { background: var(--manila-dark); }
.rar-sort-menu button.active { background: var(--manila-dark); }
.rar-cat-layout {
display: grid; grid-template-columns: 240px 1fr; gap: 48px;
padding: 40px 56px;
}
.rar-filter-sidebar { }
.rar-filter-group {
padding: 18px 0; border-top: 1px solid var(--hairline-strong);
}
.rar-filter-group__label {
font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
text-transform: uppercase; margin-bottom: 10px;
display: flex; justify-content: space-between; align-items: center;
}
.rar-filter-item {
display: flex; align-items: center; gap: 10px;
padding: 6px 0; cursor: pointer; font-size: 13px;
}
.rar-filter-item input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--ink); }
.rar-filter-apply { border-top: 1px solid var(--hairline-strong); padding-top: 18px; }
.rar-filter-apply .rar-btn { width: 100%; }
.rar-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.rar-product-grid.list-view { grid-template-columns: 1fr; gap: 14px; }
.rar-product-grid.list-view .rar-card { display: grid; grid-template-columns: 180px 1fr; }
.rar-product-grid.list-view .rar-card__media { aspect-ratio: 1/1; }
.rar-pagination {
margin-top: 48px; padding-top: 24px;
border-top: 1px solid var(--hairline-strong);
display: flex; justify-content: space-between; align-items: center;
}
.rar-page-btns { display: flex; gap: 6px; }
.rar-page-btn {
width: 36px; height: 36px;
border: 1px solid var(--ink);
background: var(--paper); color: var(--ink);
font-family: var(--mono); font-size: 12px; cursor: pointer;
display: flex; align-items: center; justify-content: center;
}
.rar-page-btn.active, .rar-page-btn:hover { background: var(--ink); color: var(--manila); }
/* ───────── Product Detail ───────── */
.rar-product-detail { padding: 40px 56px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; }
.rar-gallery { display: grid; grid-template-columns: 72px 1fr; gap: 16px; }
.rar-gallery__thumbs { display: flex; flex-direction: column; gap: 10px; }
.rar-gallery__thumb {
aspect-ratio: 1/1; border: 1px solid var(--hairline-strong);
background: repeating-linear-gradient(135deg, var(--manila-deep) 0 6px, var(--manila-dark) 6px 12px);
cursor: pointer; overflow: hidden;
}
.rar-gallery__thumb.active { border: 2px solid var(--ink); }
.rar-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rar-gallery__main {
aspect-ratio: 1/1; position: relative;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0 14px, var(--manila-dark) 14px 28px);
border: 1px solid var(--hairline-strong); overflow: hidden;
display: flex; align-items: center; justify-content: center;
}
.rar-gallery__main img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.rar-gallery__label {
position: absolute; top: 16px; left: 16px;
padding: 6px 10px; background: var(--paper); border: 1px solid var(--ink);
font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
z-index: 1;
}
.rar-product-info { }
.rar-product-info h1 {
font-family: var(--serif); font-size: 52px; font-weight: 500;
line-height: 0.98; margin: 0 0 14px; letter-spacing: -0.025em;
}
.rar-product-subtitle {
font-family: var(--serif); font-style: italic; font-size: 18px;
color: var(--ink-muted); margin: 0 0 24px;
}
.rar-product-price {
font-family: var(--serif); font-size: 36px; font-weight: 500;
margin-bottom: 4px;
}
.rar-product-price-sub {
font-family: var(--mono); font-size: 11px; color: var(--ink-faint);
letter-spacing: 0.08em; margin-bottom: 28px;
}
.rar-product-desc { font-size: 14px; line-height: 1.6; color: var(--ink-muted); margin: 0 0 28px; }
.rar-variant-label {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
text-transform: uppercase; margin-bottom: 10px;
display: flex; justify-content: space-between;
}
.rar-color-swatches { display: flex; gap: 10px; margin-bottom: 22px; }
.rar-swatch {
width: 44px; height: 44px; border: 1px solid var(--hairline-strong);
padding: 4px; background: var(--paper); cursor: pointer;
}
.rar-swatch.active { border: 2px solid var(--ink); padding: 3px; }
.rar-swatch__inner { width: 100%; height: 100%; border-radius: 1px; }
.rar-size-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 28px; }
.rar-size-btn {
padding: 14px 12px; text-align: left;
border: 1px solid var(--hairline-strong); background: var(--paper); cursor: pointer;
}
.rar-size-btn.active { border: 2px solid var(--ink); background: var(--manila-dark); }
.rar-size-btn__label { font-family: var(--serif); font-size: 18px; font-weight: 500; }
.rar-size-btn__sub { font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-muted); margin-top: 2px; }
.rar-qty-cart { display: flex; gap: 10px; margin-bottom: 24px; }
.rar-qty {
display: flex; align-items: stretch; border: 1.5px solid var(--ink);
}
.rar-qty__btn {
padding: 0 14px; border: none; background: none; cursor: pointer;
font-size: 16px; display: flex; align-items: center;
}
.rar-qty__btn:first-child { border-right: 1px solid var(--ink); }
.rar-qty__btn:last-child { border-left: 1px solid var(--ink); }
.rar-qty__val {
padding: 0 18px; display: inline-flex; align-items: center;
font-family: var(--mono); font-size: 14px; min-width: 50px; justify-content: center;
}
.rar-add-to-cart { flex: 1; }
.rar-spec-list {
border-top: 1px solid var(--ink); padding-top: 20px; margin-top: 24px;
}
.rar-spec-list__label {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
text-transform: uppercase; margin-bottom: 14px;
}
.rar-spec-list ul { list-style: none; padding: 0; margin: 0; font-size: 13px; line-height: 1.6; }
.rar-spec-list li {
display: flex; gap: 12px; padding: 8px 0;
border-bottom: 1px dashed var(--hairline);
}
.rar-spec-list li:last-child { border-bottom: none; }
.rar-spec-num { font-family: var(--mono); color: var(--stamp); font-size: 11px; flex-shrink: 0; }
.rar-shipping-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
.rar-shipping-item__key {
font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em;
text-transform: uppercase; color: var(--ink-faint); margin-bottom: 4px;
}
.rar-shipping-item__val { font-size: 13px; }
/* ───────── Reviews ───────── */
.rar-reviews { background: var(--paper); padding: 64px 56px; border-top: 1px solid var(--hairline-strong); }
.rar-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rar-review {
background: var(--manila); border: 1px solid var(--hairline-strong);
padding: 22px 22px 24px;
}
.rar-review__stars { color: var(--stamp); font-size: 14px; margin-bottom: 14px; }
.rar-review__text {
font-family: var(--serif); font-style: italic; font-size: 16px;
line-height: 1.45; margin: 0 0 18px;
}
.rar-review__meta {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;
text-transform: uppercase; color: var(--ink-muted);
display: flex; justify-content: space-between;
}
/* ───────── Blog styles ───────── */
.rar-blog-header {
padding: 56px 56px 36px; border-bottom: 1px solid var(--hairline-strong);
}
.rar-blog-masthead {
font-family: var(--serif); font-size: clamp(48px, 6vw, 84px);
font-weight: 500; line-height: 0.97; margin: 0; letter-spacing: -0.03em;
}
.rar-blog-subtitle {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.22em;
text-transform: uppercase; color: var(--ink-muted); margin-top: 18px;
}
.rar-blog-body { padding: 48px 56px; }
.rar-blog-archive { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 48px; }
.rar-blog-thumb {
aspect-ratio: 16/9; width: 100%;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0px, var(--manila-deep) 14px, var(--manila-dark) 14px, var(--manila-dark) 28px);
overflow: hidden;
}
.rar-blog-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rar-post-meta {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em;
text-transform: uppercase; color: var(--stamp); margin: 12px 0 8px;
}
.rar-post-title {
font-family: var(--serif); font-size: 22px; font-weight: 500;
line-height: 1.2; letter-spacing: -0.015em;
}
/* ───────── Single post ───────── */
.rar-post-header { padding: 56px 56px 36px; border-bottom: 1px solid var(--hairline-strong); }
.rar-post-header h1 {
font-family: var(--serif); font-size: clamp(32px, 4vw, 60px);
font-weight: 500; line-height: 1.1; margin: 16px 0 0; letter-spacing: -0.025em;
}
.rar-post-content { max-width: 720px; margin: 0 auto; padding: 48px 56px; }
.rar-post-content p { font-size: 17px; line-height: 1.7; margin-bottom: 24px; }
.rar-post-content h2 { font-family: var(--serif); font-size: 32px; font-weight: 500; margin: 48px 0 16px; }
.rar-post-content h3 { font-family: var(--serif); font-size: 24px; font-weight: 500; margin: 32px 0 12px; }
.rar-post-content blockquote {
border-left: 4px solid var(--stamp); padding-left: 24px; margin: 32px 0;
font-family: var(--serif); font-style: italic; font-size: 22px; line-height: 1.4;
color: var(--ink-muted);
}
/* ───────── About page ───────── */
.rar-about-hero {
padding: 80px 56px;
display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
border-bottom: 1px solid var(--hairline-strong);
}
.rar-about-hero h1 {
font-family: var(--serif); font-size: clamp(40px, 5vw, 72px);
font-weight: 500; line-height: 0.97; margin: 0 0 24px; letter-spacing: -0.03em;
}
.rar-about-manifesto {
font-size: 16px; line-height: 1.7; color: var(--ink-muted);
}
.rar-about-body { padding: 64px 56px; }
.rar-about-stats {
display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
border: 1.5px solid var(--ink); margin: 48px 0;
}
.rar-about-stat {
padding: 32px 24px; border-right: 1px solid var(--hairline-strong);
}
.rar-about-stat:last-child { border-right: none; }
.rar-about-stat__num { font-family: var(--serif); font-size: 48px; font-weight: 500; line-height: 1; }
.rar-about-stat__label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-muted); margin-top: 8px; }
/* ───────── Cart / Checkout ───────── */
.rar-cart-page { padding: 48px 56px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; }
.rar-cart-header {
padding: 32px 56px; border-bottom: 1px solid var(--hairline-strong);
}
.rar-cart-header h1 {
font-family: var(--serif); font-size: 52px; font-weight: 500;
margin: 0; letter-spacing: -0.025em;
}
.rar-cart-item {
display: grid; grid-template-columns: 80px 1fr auto;
gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--hairline);
align-items: start;
}
.rar-cart-item__thumb {
width: 80px; aspect-ratio: 1;
background: repeating-linear-gradient(135deg, var(--manila-deep) 0 10px, var(--manila-dark) 10px 20px);
overflow: hidden;
}
.rar-cart-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rar-cart-item__title { font-family: var(--serif); font-size: 18px; font-weight: 500; }
.rar-cart-item__meta { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; color: var(--ink-muted); margin-top: 4px; }
.rar-cart-item__price { font-family: var(--mono); font-size: 14px; font-weight: 600; }
.rar-cart-summary {
background: var(--paper); border: 1px solid var(--hairline-strong);
padding: 28px; position: sticky; top: 80px;
}
.rar-cart-summary__title {
font-family: var(--mono); font-size: 10px; letter-spacing: 0.22em;
text-transform: uppercase; margin-bottom: 20px; color: var(--ink-muted);
}
.rar-cart-line {
display: flex; justify-content: space-between; align-items: baseline;
padding: 8px 0; font-size: 14px;
border-bottom: 1px dashed var(--hairline);
}
.rar-cart-total {
display: flex; justify-content: space-between; align-items: baseline;
padding-top: 16px; margin-top: 8px;
font-family: var(--serif); font-size: 26px; font-weight: 500;
}
/* ───────── WooCommerce Overrides ───────── */
.woocommerce-page .woocommerce, .woocommerce { max-width: none !important; }
.woocommerce ul.products { margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products li.product { margin: 0 !important; list-style: none; }
.woocommerce-product-gallery__wrapper { gap: 0 !important; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
font-family: var(--mono) !important;
font-size: 11px !important;
letter-spacing: 0.18em !important;
text-transform: uppercase !important;
padding: 14px 22px !important;
border-radius: 2px !important;
border: 1.5px solid var(--ink) !important;
background: var(--ink) !important;
color: var(--manila) !important;
transition: all 0.15s !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover {
background: var(--stamp) !important;
border-color: var(--stamp) !important;
}
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce input.button.alt, .woocommerce #respond input#submit.alt {
background: var(--stamp) !important;
border-color: var(--stamp) !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
border: 1.5px solid var(--ink) !important;
border-radius: 2px !important;
font-family: var(--sans) !important;
padding: 12px 14px !important;
background: var(--paper) !important;
color: var(--ink) !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
border-color: var(--stamp) !important;
outline: none !important;
box-shadow: none !important;
}
.woocommerce-checkout .woocommerce-checkout-payment {
background: var(--paper) !important;
border: 1px solid var(--hairline-strong) !important;
border-radius: 2px !important;
}
.woocommerce .woocommerce-error, .woocommerce .woocommerce-info, .woocommerce .woocommerce-message {
border-top: 3px solid var(--stamp) !important;
border-radius: 2px !important;
font-family: var(--mono) !important;
}
/* Price styling */
.woocommerce span.price, .woocommerce ins .amount {
font-family: var(--serif) !important;
font-size: 16px !important;
font-weight: 500 !important;
color: var(--ink) !important;
}
.woocommerce del { color: var(--ink-faint) !important; }
/* Star ratings */
.woocommerce .star-rating span::before { color: var(--stamp) !important; }
.woocommerce .star-rating { color: var(--stamp) !important; }
/* Pagination */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
font-family: var(--mono) !important;
border: 1px solid var(--ink) !important;
padding: 8px 12px !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
background: var(--ink) !important;
color: var(--manila) !important;
}
/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
font-family: var(--mono) !important;
font-size: 11px !important;
letter-spacing: 0.16em !important;
text-transform: uppercase !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
background: var(--paper) !important;
border-bottom-color: var(--paper) !important;
}
/* Cart table */
.woocommerce table.cart, .woocommerce-cart table.cart {
font-family: var(--sans) !important;
}
.woocommerce table.cart td { border-bottom: 1px solid var(--hairline) !important; }
.woocommerce table.cart .product-name a { font-family: var(--serif) !important; font-size: 16px !important; }
/* Notices */
.woocommerce-store-notice { background: var(--stamp) !important; color: var(--manila) !important; }
/* ───────── Mobile nav hamburger ───────── */
.rar-nav__toggle {
display: none;
align-items: center;
justify-content: center;
background: none;
border: 1px solid rgba(245, 241, 232, 0.35);
color: var(--manila);
cursor: pointer;
padding: 6px 10px;
border-radius: 2px;
transition: border-color 0.15s;
}
.rar-nav__toggle:hover { border-color: var(--stamp); color: var(--stamp); }
.rar-nav__toggle svg { display: block; }
/* hamburger → × swap */
.rar-nav__toggle .icon-close { display: none; }
.rar-nav.is-open .rar-nav__toggle .icon-open { display: none; }
.rar-nav.is-open .rar-nav__toggle .icon-close { display: block; }
/* Mobile drawer */
.rar-nav__drawer {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: var(--ink);
z-index: 99;
flex-direction: column;
padding: 80px 32px 40px;
overflow-y: auto;
}
.rar-nav__drawer.is-open { display: flex; }
.rar-nav__drawer a {
font-family: var(--mono);
font-size: 14px;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--manila);
text-decoration: none;
padding: 18px 0;
border-bottom: 1px solid rgba(245, 241, 232, 0.12);
transition: color 0.15s;
}
.rar-nav__drawer a:hover { color: var(--stamp); }
.rar-nav__drawer .rar-nav__drawer-close {
position: absolute;
top: 16px;
right: 20px;
background: none;
border: none;
color: var(--manila);
cursor: pointer;
font-size: 22px;
padding: 8px;
line-height: 1;
}
/* ───────── WooCommerce product tabs ───────── */
.woocommerce-tabs.wc-tabs-wrapper { padding: 0; }
.woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
list-style: none !important;
padding: 0 !important;
margin: 0 0 0 !important;
display: flex !important;
border-bottom: 2px solid var(--hairline-strong) !important;
}
.woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: none !important; }
.woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li {
background: transparent !important;
border: none !important;
border-bottom: 3px solid transparent !important;
margin-bottom: -2px !important;
padding: 0 !important;
border-radius: 0 !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
border-bottom-color: var(--stamp) !important;
background: transparent !important;
}
.woocommerce-tabs ul.tabs li a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
font-family: var(--mono) !important;
font-size: 11px !important;
letter-spacing: 0.16em !important;
text-transform: uppercase !important;
color: var(--ink-soft) !important;
padding: 12px 20px !important;
display: block !important;
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--stamp) !important; }
.woocommerce-Tabs-panel,
.woocommerce div.product .woocommerce-Tabs-panel {
padding: 28px 0 !important;
border: none !important;
font-size: 14px !important;
line-height: 1.7 !important;
color: var(--ink-soft) !important;
}
/* ───────── Responsive ───────── */
@media (max-width: 1024px) {
.rar-hero__grid, .rar-product-detail, .rar-cart-page { grid-template-columns: 1fr; }
.rar-cats__grid, .rar-products__grid, .rar-designs__grid { grid-template-columns: repeat(2, 1fr); }
.rar-footer__grid { grid-template-columns: 1fr 1fr; }
.rar-cat-layout { grid-template-columns: 1fr; }
.rar-filter-sidebar { display: none; }
.rar-nav__links { display: none; }
.rar-nav__toggle { display: flex; }
.rar-editorial__press { gap: 24px; }
.rar-metrics { grid-template-columns: repeat(2, 1fr); }
.rar-about-hero { grid-template-columns: 1fr; }
.rar-review-grid { grid-template-columns: 1fr; }
.rar-blog-grid, .rar-blog-archive { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
.rar-hero, .rar-cats, .rar-products, .rar-designs, .rar-editorial,
.rar-blog-section, .rar-breadcrumb, .rar-toolbar, .rar-cat-hero,
.rar-cat-layout, .rar-reviews, .rar-blog-header, .rar-blog-body,
.rar-post-header, .rar-post-content, .rar-about-hero, .rar-about-body,
.rar-cart-header, .rar-cart-page { padding-left: 20px; padding-right: 20px; }
.rar-cats__grid, .rar-products__grid, .rar-designs__grid,
.rar-blog-grid, .rar-blog-archive, .rar-review-grid { grid-template-columns: 1fr; }
.rar-nav { padding: 10px 16px; }
.rar-footer { padding: 40px 20px 20px; }
.rar-footer__grid { grid-template-columns: 1fr; gap: 24px; }
.rar-metrics { grid-template-columns: repeat(2, 1fr); }
.rar-editorial__quote { font-size: 26px; }
.rar-about-stats { grid-template-columns: repeat(2, 1fr); }
.rar-gallery { grid-template-columns: 1fr; }
.rar-gallery__thumbs { flex-direction: row; }
}