:root {
  color-scheme: light;
  font-family: "Bahnschrift", "Arial Narrow", sans-serif;
  color: #252a29;
  background: #e9e6dc;
  --ink: #252a29;
  --muted: #535c58;
  --line: #b9b8ad;
  --paper: #f8f6ee;
  --amber: #f2bc45;
  --safety: #aa422d;
  --display: Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background-image: linear-gradient(90deg, transparent 49.9%, #252a290d 50%, transparent 50.1%); background-size: 48px 48px; }
.shell { width: min(1140px, calc(100% - 48px)); margin: 0 auto; }
header { min-height: 74px; display: flex; align-items: center; justify-content: space-between; border-bottom: 2px solid #252a29; }
header a { color: var(--ink); font-size: .78rem; text-decoration: none; }
.brand { display: flex; align-items: center; gap: 11px; font-weight: 900; letter-spacing: .16em; }
.bolt { display: grid; place-items: center; width: 34px; height: 34px; background: var(--amber); color: #252a29; font-size: 1.3rem; }
.header-link { color: var(--safety); font-weight: 750; }
.hero { min-height: 390px; display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; padding: 35px 6%; border-bottom: 2px solid #252a29; background: linear-gradient(100deg, #dfddd3 0 50%, transparent 50%); }
.hero-copy { grid-column: 2; grid-row: 1; }
.eyebrow { margin: 0 0 13px; color: #6b706a; font: 800 .63rem ui-monospace, monospace; letter-spacing: .16em; }
.hero h1 { margin: 0; color: #252a29; font: 700 clamp(3.5rem, 7vw, 6.5rem)/.9 Georgia, serif; letter-spacing: -.07em; }
.hero h1 em { color: var(--safety); font-style: normal; }
.lede { max-width: 460px; margin: 22px 0; color: #4d5651; font-size: .98rem; line-height: 1.7; }
.hero-art { grid-column: 1; grid-row: 1; height: 265px; position: relative; display: grid; place-items: center; }
.ring { position: absolute; width: 218px; height: 218px; border: 1px dashed #74796f; border-radius: 50%; box-shadow: 0 0 0 16px #dfddd3, 0 0 0 17px #a8a99e; }
.adapter { width: 126px; height: 166px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 2px solid #252a29; border-radius: 9px; background: #252a29; box-shadow: 9px 10px 0 var(--amber); transform: rotate(-7deg); }
.adapter span, .adapter small { color: #e3e2d8; font: 700 .61rem ui-monospace, monospace; letter-spacing: .17em; }
.adapter b { color: var(--amber); font: 700 3.6rem Georgia, serif; line-height: 1.2; }
.bolt-mark { position: absolute; top: 17%; right: 13%; color: var(--safety); font-size: 2.4rem; }
.finder { position: relative; width: min(850px, calc(100% - 22px)); margin: -25px auto 68px; padding: clamp(23px, 5vw, 43px); border: 1px solid #aaa99f; background: var(--paper); box-shadow: 9px 9px 0 #c6c1b3; }
.finder > .eyebrow { padding-bottom: 14px; border-bottom: 1px solid #c7c5b9; color: #70766f; }
.finder > form > label:first-child { display: block; margin: 20px 0 8px; color: #303734; font-size: .78rem; font-weight: 800; }
.search-row { display: flex; gap: 9px; }
.search-row input, .brand-filter select { min-height: 51px; padding: 0 13px; border: 1px solid #989b91; border-radius: 2px; background: #fff; color: #252a29; font: 500 .9rem ui-monospace, monospace; }
.search-row input { flex: 1; min-width: 0; }
.search-row input::placeholder { color: #71776f; }
.search-row input:focus, .brand-filter select:focus { outline: 3px solid #d79d24; outline-offset: 2px; }
.search-row button { min-width: 116px; border: 0; border-radius: 2px; background: var(--amber); color: #252a29; font-weight: 900; text-transform: uppercase; cursor: pointer; }
.search-row button:hover { background: #ffcf5f; }
.search-row button span { margin-left: 10px; }
.brand-filter { display: flex; align-items: center; gap: 10px; margin-top: 14px; color: #505852; font-size: .74rem; font-weight: 700; }
.brand-filter select { min-height: 38px; padding-right: 30px; font: inherit; }
.results { margin-top: 21px; }
.result-card { margin-top: 10px; padding: 20px; border: 1px solid #b8b7aa; border-left: 5px solid var(--amber); background: #fffefa; }
.result-top { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.result-top h2 { margin: 0; color: #252a29; font: 700 1.3rem Georgia, serif; }
.wattage { padding: 7px 10px; background: #252a29; color: var(--amber); font: 800 .74rem ui-monospace, monospace; }
.spec-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 18px 0; background: #b9b8ad; border: 1px solid #b9b8ad; }
.spec { min-height: 85px; padding: 12px; background: #eeece3; }
.spec small { display: block; color: #535c58; font: 700 .59rem ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; }
.spec strong { display: block; margin-top: 8px; color: #252a29; font-size: .8rem; line-height: 1.4; }
.caveat { margin: 11px 0; color: #4d5651; font-size: .78rem; line-height: 1.6; }
.result-source { color: var(--safety); font-size: .75rem; font-weight: 800; text-decoration: none; }
.result-source:hover { text-decoration: underline; }
.no-match { padding: 17px; border-left: 4px solid var(--safety); background: #f3e6df; color: #492a23; font-size: .85rem; line-height: 1.65; }
.catalog-meta { display: flex; justify-content: space-between; gap: 14px; margin-top: 19px; padding-top: 14px; border-top: 1px solid #c7c5b9; color: #535c58; font: 600 .65rem ui-monospace, monospace; }
.safety { max-width: 820px; display: grid; grid-template-columns: 48px 1fr; gap: 20px; margin: 0 auto 70px; padding: 24px; border: 1px solid #c2a27f; background: #f1e5d7; }
.safety-icon { width: 38px; height: 38px; display: grid; place-items: center; background: var(--safety); color: #fffaf0; font: 900 1.1rem ui-monospace, monospace; }
.safety h2 { max-width: 560px; margin: 0 0 14px; color: #252a29; font: 700 clamp(1.6rem, 3vw, 2.3rem)/1.15 Georgia, serif; }
.safety p:not(.eyebrow) { max-width: 700px; color: #4d5651; font-size: .88rem; line-height: 1.75; }
footer { display: flex; justify-content: space-between; gap: 15px; padding: 20px 0 28px; border-top: 2px solid #252a29; color: #535c58; font-size: .68rem; }
:focus-visible { outline: 3px solid #aa6b00; outline-offset: 3px; }
@media (max-width: 900px) {
  .shell { width: calc(100% - 28px); }
  .hero { grid-template-columns: 1fr; gap: 0; padding: 35px 5%; background: transparent; }
  .hero-copy { grid-column: 1; grid-row: 1; }
  .hero-art { grid-column: 1; grid-row: 2; height: 205px; }
  .hero h1 { font-size: clamp(3.7rem, 15vw, 5.6rem); }
  .ring { width: 160px; height: 160px; }
  .adapter { width: 95px; height: 128px; }
  .adapter b { font-size: 2.7rem; }
  .bolt-mark { right: 24%; top: 14%; }
  .finder { margin-top: -20px; }
  .spec-grid { grid-template-columns: 1fr; }
  .result-top, .catalog-meta, footer { flex-direction: column; }
  .safety { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Shared responsive geometry across the utility suite. */
:root { --layout-max: 1180px; --layout-inline-space: clamp(32px, 8vw, 96px); }
.shell { width: min(var(--layout-max), calc(100% - var(--layout-inline-space))); }
.finder { width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: 0; gap: 0; padding: clamp(30px, 6vw, 56px) clamp(20px, 5vw, 56px) 42px; }
  .hero-copy { grid-column: 1; grid-row: 1; }
  .hero-art { grid-column: 1; grid-row: 2; width: min(100%, 380px); justify-self: start; }
  .safety { max-width: none; }
}
@media (max-width: 640px) {
  .hero { padding: 32px 0 38px; }
  .hero h1 { font-size: clamp(3rem, 12vw, 4.5rem); }
  .hero-art { justify-self: center; height: 190px; }
  .finder { margin-top: 24px; padding: 22px clamp(16px, 5vw, 24px); }
  .search-row { flex-wrap: wrap; }
  .search-row input, .search-row button { flex: 1 1 100%; min-height: 48px; }
  .spec-grid { grid-template-columns: 1fr; }
  .result-top, .catalog-meta { align-items: flex-start; flex-direction: column; }
  .safety { grid-template-columns: 36px 1fr; gap: 12px; padding: 18px 0; }
  footer { flex-direction: column; }
}
@media (max-width: 400px) {
  header { min-height: 64px; height: auto; flex-wrap: wrap; row-gap: 8px; padding-block: 12px; }
  .hero h1 { font-size: clamp(2.8rem, 11vw, 3.4rem); }
  .safety { grid-template-columns: 1fr; }
}
