/* ---- rasp (Rasp 39) — warm dust putty, cold steel blue ----------------------
   THE structural move: not one contained column between the header and the
   footer. The split about, the catalogue wall, the repair banner and the split
   contact all give up the 1080px measure and run edge to edge, so scrolling
   reads as turning over full-page plates rather than stepping through centred
   sections. Everything else is left to the shared stylesheet. */
body.t-rasp { background: #dfdbd2; color: #191713; --header-bg: rgba(223, 219, 210, 0.88); --surface: #d7d2c7; --surface-2: #cec8bb; --line: #c3bcae; --heading: #191713; --muted: #6b6558; --text: #33302a; }
body.t-rasp .btn.brand { background: #3f5d70; color: #f1efe9; border-radius: 0; box-shadow: none; text-transform: uppercase; letter-spacing: 0.16em; font-weight: 700; font-size: 11px; padding: 14px 28px; }
body.t-rasp .btn.brand:hover { background: #334b5c; }
body.t-rasp .sc-h2 { text-align: left; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 700; font-size: clamp(12px, 1.4vw, 14px); color: #6b6558; }
/* the opening plate: copy sits low in the frame instead of centred in it */
body.t-rasp .sc-hero { min-height: 88vh; align-items: flex-end; padding-bottom: clamp(44px, 8vh, 104px); }
body.t-rasp .sc-hero h1 { font-size: clamp(26px, 4vw, 46px); letter-spacing: -0.01em; max-width: 19ch; }
/* full bleed 1 — the split about and the split contact drop the measure and
   push their padding onto the halves, so the photograph reaches the edge */
body.t-rasp .sc-about-split, body.t-rasp .sc-contact-split { max-width: none; padding: 0; gap: 0; align-items: stretch; }
body.t-rasp .sc-about-copy, body.t-rasp .sc-contact-lead, body.t-rasp .sc-contact-body { padding: clamp(48px, 7vw, 100px) clamp(24px, 5vw, 84px); }
body.t-rasp .sc-about-media { height: 100%; }
body.t-rasp .sc-about-media img { height: 100%; aspect-ratio: auto; border-radius: 0; }
body.t-rasp .sc-contact-lead { background: #d3cec2; }
/* full bleed 2 — the catalogue wall runs to the edges and closes its gaps */
body.t-rasp .sc-masonry .container { max-width: none; padding: 0 clamp(12px, 2vw, 28px); }
body.t-rasp .sc-mas-grid { column-gap: 8px; }
body.t-rasp .sc-mas-item { margin-bottom: 8px; }
body.t-rasp .sc-mas-media { background: #cec8bb; }
/* full bleed 3 — the repair banner escapes its container entirely */
body.t-rasp .sc-banner { margin: 0 calc(50% - 50vw); width: 100vw; max-width: 100vw; border-radius: 0; min-height: 58vh; }
body.t-rasp .sc-strip-img { aspect-ratio: 3 / 4; border-radius: 0; }
body.t-rasp .product-card, body.t-rasp .product-card .ph, body.t-rasp .pdp .ph,
body.t-rasp .sc-field input, body.t-rasp .sc-field textarea { border-radius: 0; }

/* NIGHT — the shed after the lights go on. The putty goes to soot and the steel
   blue lifts, because #3f5d70 on a dark ground stops reading as an accent. */
html[data-theme="dark"] body.t-rasp { background: #191713; color: #efece4; --header-bg: rgba(25, 23, 19, 0.9); --surface: #211e19; --surface-2: #272319; --line: #35302a; --heading: #efece4; --muted: #948d7e; --text: #c6bfb1; }
html[data-theme="dark"] body.t-rasp .sc-h2 { color: #948d7e; }
html[data-theme="dark"] body.t-rasp .sc-contact-lead, html[data-theme="dark"] body.t-rasp .sc-mas-media { background: #211e19; }
html[data-theme="dark"] body.t-rasp .sc-mas-cat { color: #7fa3bb; }
html[data-theme="dark"] body.t-rasp .btn.brand { background: #7fa3bb; color: #14120f; }
html[data-theme="dark"] body.t-rasp .btn.brand:hover { background: #93b3c8; }
html[data-theme="dark"] body.t-rasp .product-card,
html[data-theme="dark"] body.t-rasp .sc-field input,
html[data-theme="dark"] body.t-rasp .sc-field textarea { background: #211e19; border-color: #35302a; }
