/* Validated.Directory: identity B, "make it big on your block" (DIR law 22, 2026-09-20). Extracted from
   public/concept/b-square.html. One strong colour plus black and white; Bricolage Grotesque for display, Inter
   for body, the system mono for kickers, badges and the door line. No framework, no script. The mark is an
   inline SVG symbol (#vd-mark) the shell writes once per page. Fonts arrive by <link> in the page head for now. */
:root{
  --ink:#0b0b0b; --paper:#ffffff; --brand:#d8431b; --brand-deep:#b8371a; --brand-soft:#ff8a63;
  --grey:#f2f1ee; --mute:#5c5a56; --line:#e2e0db; --pass:#1f6a3a; --fail:#b8371a;
  --display:"Bricolage Grotesque", system-ui, sans-serif;
  --body:"Inter", system-ui, -apple-system, sans-serif;
  --mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --wrap:1200px; --pad:24px; --measure:62ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--display);margin:0;line-height:1;letter-spacing:-0.02em}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--brand);display:block;margin-bottom:20px}
.dark .kicker{color:var(--brand-soft)}
.btn,.act{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:18px;line-height:1;padding:18px 26px;border-radius:999px;background:var(--brand);color:#fff;border:0;cursor:pointer;white-space:nowrap}
.btn:hover,.act:hover{background:var(--brand-deep)}
.btn.ink{background:var(--ink);color:#fff} .btn.ink:hover{background:#2b2a28}
.btn.paper{background:#fff;color:var(--ink)} .btn.paper:hover{background:var(--grey)}
.btn.small,.act.small{font-size:16px;padding:14px 20px}
.dark{background:var(--ink);color:#fff}
.light{background:var(--paper)}
section{padding:96px 0}
h2{font-size:clamp(40px,5.2vw,68px);font-weight:800;max-width:16ch}
.lede{font-size:clamp(18px,1.6vw,22px);max-width:60ch;color:var(--mute)}
.dark .lede{color:rgba(255,255,255,.82)}
code{font-family:var(--mono);font-size:.92em;background:var(--grey);padding:2px 6px;border-radius:5px}
.dark code{background:rgba(255,255,255,.12)}
.mark{display:inline-block;flex:none}
.under{font-size:15px;font-weight:600;color:var(--mute);margin-top:14px}

/* the badge: three states, the text exact (record.md); the dot says which */
.badge{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ink);font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:9px 12px 9px 10px;border-radius:8px;line-height:1;border:2px solid var(--ink);white-space:nowrap}
.badge::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ink);flex:none}
.badge[data-confirmed-at]::before{background:var(--brand)}
.badge.org::before{background:#8a8781}
.badge.pill{border:0;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.tier{display:block;font-size:14px;color:var(--mute);margin-top:8px;max-width:48ch}
.dark .tier{color:rgba(255,255,255,.7)}

/* masthead: mark, wordmark, five links, the button; at 960 the links fold into a details menu */
.masthead{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:28px;height:72px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-0.02em;white-space:nowrap}
.logo .dot{color:var(--brand)}
.links{display:flex;gap:26px;list-style:none;margin:0 0 0 12px;padding:0;font-weight:600;font-size:16px}
.links a:hover{color:var(--brand)}
.nav .spacer{flex:1}
.nav .btn{padding:13px 20px;font-size:16px}
details.menu{display:none;position:relative}
details.menu summary{list-style:none;cursor:pointer;font-family:var(--display);font-weight:700;font-size:16px;padding:12px 4px;display:flex;align-items:center;gap:8px}
details.menu summary::-webkit-details-marker{display:none}
details.menu summary .bars{width:22px;height:2px;background:var(--ink);box-shadow:0 -7px 0 var(--ink),0 7px 0 var(--ink);display:block}
details.menu[open] summary .bars{background:var(--brand);box-shadow:0 -7px 0 var(--brand),0 7px 0 var(--brand)}
details.menu ul{position:absolute;right:0;top:100%;margin:8px 0 0;padding:8px 0;list-style:none;background:#fff;border:1px solid var(--line);border-radius:14px;min-width:240px;box-shadow:0 14px 40px rgba(0,0,0,.14)}
details.menu li a{display:block;padding:14px 20px;font-family:var(--display);font-weight:700;font-size:20px}
details.menu li a:hover{background:var(--grey)}

/* hero */
.hero{padding:0}
.hero .grid{display:grid;grid-template-columns:1.05fr 1fr;min-height:680px}
.hero .copy{padding:88px 48px 88px var(--pad);display:flex;flex-direction:column;justify-content:center;max-width:calc(var(--wrap)/2 + 48px);margin-left:auto;width:100%}
.hero h1{font-size:clamp(64px,8.6vw,124px);font-weight:800;letter-spacing:-0.035em;line-height:.92}
.hero h1 em{font-style:normal;color:var(--brand)}
.hero .pitch{margin-top:28px;font-size:clamp(18px,1.55vw,21px);max-width:44ch;color:#2b2a28}
.hero .pitch strong{color:var(--ink);font-weight:600}
.hero .cta{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.hero .cta small{font-weight:600;color:var(--mute);font-size:15px}
.tag{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:10px}
.tag::before{content:"";width:22px;height:3px;background:var(--brand);display:inline-block;flex:none}
.hero .tag{margin-top:40px}
.photo{position:relative;overflow:hidden;background:#222;color:#fff}
.photo img{width:100%;height:100%;object-fit:cover}
/* every photo black and white by CSS; the badge and the decal keep their colour on top (the one-accent rule) */
.photo img,ul.dir .tile img,.door .glass img{filter:grayscale(1) contrast(1.05)}
/* duotone, available and unused: a red-to-black wash multiplied over the grayscale; positioned, so it paints above the
   image and below the badge, caption and decal that follow it */
.photo.duo::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--brand) 0%,#1a0a05 100%);mix-blend-mode:multiply;pointer-events:none}
.photo .badge{position:absolute;top:20px;left:20px}
.photo .cap{position:absolute;left:0;right:0;bottom:0;padding:28px 24px 22px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.2}
.photo .cap span{display:block;font-family:var(--body);font-weight:500;font-size:14px;opacity:.85;margin-top:3px}
.photo.empty{display:flex;align-items:center;justify-content:center;background:var(--grey);color:var(--line);min-height:320px}
.hero .photo img{object-position:34% 50%}
.hero .photo .decal{position:absolute;right:22px;top:22px}

/* proof strip */
.strip{padding:0;border-bottom:1px solid var(--line)}
.strip .row{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.strip .photo{aspect-ratio:4/3}
.strip .photo.empty{aspect-ratio:4/3;min-height:0}
.strip .head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:22px var(--pad);border-bottom:1px solid var(--line);font-weight:600}
.strip .head b{font-family:var(--display);font-size:20px;font-weight:800}
.strip .head span{color:var(--mute);font-size:15px}

/* three columns */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:56px}
.three h3{font-size:30px;font-weight:800;margin-bottom:14px;letter-spacing:-0.02em}
.three p{color:var(--mute);font-size:17px}
.dark .three p{color:rgba(255,255,255,.75)}
.three .num{font-family:var(--display);font-weight:800;font-size:64px;line-height:1;color:var(--brand);margin-bottom:18px;letter-spacing:-0.04em}
.three .icon{width:44px;height:44px;margin-bottom:22px}
.chips{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-family:var(--mono);font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px;background:rgba(255,255,255,.1);letter-spacing:.04em}
.light .chips li{background:var(--grey)}

/* how AI finds you */
.finds .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-top:56px}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px;max-width:560px}
.steps li{display:flex;gap:18px;align-items:flex-start}
.steps .n{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;font-family:var(--display);font-weight:800;font-size:22px;display:flex;align-items:center;justify-content:center}
.steps p{font-family:var(--display);font-weight:600;font-size:clamp(21px,2vw,27px);line-height:1.25;letter-spacing:-0.01em;padding-top:6px}
.door-line{margin-top:36px;font-family:var(--mono);font-size:14px;line-height:1.6;color:rgba(255,255,255,.85);max-width:560px}
.door-line b{color:var(--brand-soft);font-size:15px;display:block}
.finds .photo{aspect-ratio:4/3;border-radius:20px}
.finds .photo img{object-position:0% 62%}

/* the record: the card on the front, the whole of /b/<slug> */
.record-sec .grid,.record-page .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch;margin-top:56px}
.record-page .grid{margin-top:0}
.record-page + section{padding-top:0}
.card{border:2px solid var(--ink);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:22px;background:#fff}
.card header{display:flex;flex-direction:column;gap:6px}
.card header h1,.card header h2{font-size:44px;font-weight:800;letter-spacing:-0.03em;order:2}
.card header .kind{color:var(--mute);font-size:16px;font-weight:500;order:3}
.card header .badge{order:1;align-self:flex-start;margin-bottom:10px}
.card header .tier{order:4}
.card .example{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600}
.dates{list-style:none;margin:0;padding:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.dates li{display:flex;flex-direction:column;gap:6px}
.dates .k{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--mute);font-weight:600}
.dates .k a{text-decoration:underline;text-underline-offset:.15em}
.dates time{font-family:var(--display);font-size:24px;font-weight:800;letter-spacing:-0.02em}
.card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:16px;line-height:1.5}
.card dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600;padding-top:4px}
.card dd{margin:0;font-weight:500}
.card dd a{text-decoration:underline;text-underline-offset:.15em}
.missing{color:var(--mute);font-weight:400;font-style:italic}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.checks li{font-size:14px;font-weight:600}
.checks .cell,.checks summary{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--grey);cursor:pointer;list-style:none;line-height:1}
.checks summary::-webkit-details-marker{display:none}
.checks .kind{font-weight:600}
.checks .res{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;display:inline-flex;gap:8px;align-items:center}
.checks li.pass .res{color:var(--pass)} .checks li.fail .res{color:var(--fail)}
.checks li.pass summary::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pass)}
.checks li.fail summary::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fail)}
.checks .res time{font-family:var(--mono);font-weight:500;color:var(--mute);letter-spacing:0;text-transform:none}
.checks details[open] summary{background:var(--ink);color:#fff}
.checks details[open] summary .res,.checks details[open] summary time{color:#fff}
.checks .why{margin:8px 0 4px;font-size:15px;font-weight:400;color:var(--mute);max-width:44ch}
.card .btn{align-self:flex-start;margin-top:auto}
.record-sec .photo,.record-page .photo{border-radius:20px;min-height:420px}
.record-sec .photo img,.record-page .photo img{object-position:50% 40%}
details.agent{border:2px solid var(--ink);border-radius:14px;overflow:hidden}
details.agent summary{cursor:pointer;list-style:none;font-family:var(--display);font-weight:700;font-size:20px;padding:18px 22px;display:flex;align-items:center;gap:12px}
details.agent summary::-webkit-details-marker{display:none}
details.agent summary::before{content:"";width:12px;height:12px;border-right:3px solid var(--brand);border-bottom:3px solid var(--brand);transform:rotate(-45deg);flex:none;margin-right:4px}
details.agent[open] summary::before{transform:rotate(45deg)}
details.agent pre{margin:0;padding:22px;background:var(--ink);color:#e8e6e0;font-family:var(--mono);font-size:13px;line-height:1.5;overflow:auto}
details.agent .also{padding:16px 22px;font-size:15px;color:var(--mute);border-top:1px solid var(--line)}
.owner-door{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:40px}
.owner-door p{font-family:var(--display);font-weight:600;font-size:22px;max-width:30ch}

/* the door and the decal */
.door-sec .grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-top:0}
.door{position:relative;margin:0 auto;width:min(100%,440px);aspect-ratio:11/16;border-radius:14px 14px 0 0;background:#2a2723;padding:26px 26px 0;box-shadow:inset 0 0 0 4px #3a3631}
.door .glass{position:relative;height:100%;background:#0d1a22;border:6px solid #1b1815;border-bottom:0;overflow:hidden}
.door .glass img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;opacity:.5;filter:grayscale(1) contrast(1.05)}
.door .glass::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 35%,rgba(255,255,255,0) 60%,rgba(255,255,255,.12) 100%);pointer-events:none}
.door .handle{position:absolute;left:38px;top:52%;width:14px;height:150px;border-radius:8px;background:linear-gradient(90deg,#8b8479,#d8d1c5,#8b8479);box-shadow:0 3px 8px rgba(0,0,0,.5)}
.door .hours{position:absolute;right:16px;bottom:16px;color:rgba(255,255,255,.85);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:1.7;text-align:right}
.decal{position:absolute;width:172px;background:#fff;border-radius:18px;padding:14px 14px 12px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.45),inset 0 0 0 5px var(--brand);color:var(--ink);transform:rotate(-2deg)}
.decal svg{color:var(--brand);margin:0 auto;display:block}
.decal .word{font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:-0.01em;line-height:1.05;margin-top:8px}
.decal .date{font-family:var(--mono);font-size:11px;letter-spacing:.06em;margin-top:6px;font-weight:600;color:var(--brand-deep)}
.door .decal{right:38px;top:22%}
.decal.float{width:132px;padding:12px 10px 10px;transform:rotate(3deg)}
.decal.float .word{font-size:12px} .decal.float .date{font-size:9px;letter-spacing:.02em;text-transform:none}
.door-sec p.big{font-size:20px;color:rgba(255,255,255,.8);margin-top:18px;max-width:40ch}
.door-sec ul.states3{margin:26px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;font-size:17px}
.door-sec ul.states3 li{display:flex;gap:14px;align-items:flex-start}
.door-sec ul.states3 li::before{content:"";width:12px;height:12px;border-radius:50%;flex:none;margin-top:7px;background:var(--brand)}
.door-sec ul.states3 li:nth-child(2)::before{background:#fff} .door-sec ul.states3 li:nth-child(3)::before{background:#8a8781}

/* organisations, pricing, close */
.orgs .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.orgs .photo{aspect-ratio:4/5;border-radius:20px;max-height:560px}
.orgs .photo img{object-position:50% 40%}
.orgs p.one{font-size:clamp(20px,1.8vw,26px);line-height:1.35;margin-top:24px;font-family:var(--display);font-weight:500;max-width:30ch}
.orgs .btn{margin-top:32px}
.pricing .plans{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px}
.plan{border-left:2px solid rgba(255,255,255,.35);padding:8px 0 8px 32px;display:flex;flex-direction:column;gap:18px}
.plan h3{font-size:24px;font-weight:700}
.plan .price{font-family:var(--display);font-weight:800;font-size:clamp(44px,5vw,64px);letter-spacing:-0.03em;line-height:1}
.plan .price small{display:block;font-family:var(--body);font-weight:500;font-size:16px;letter-spacing:0;color:rgba(255,255,255,.7);margin-top:10px}
.plan ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;color:rgba(255,255,255,.85);font-size:16px}
.plan li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--brand);border-radius:50%;margin-right:10px;vertical-align:middle}
.plan .btn{align-self:flex-start;margin-top:8px}
.pricing .note{margin-top:40px;color:rgba(255,255,255,.65);font-size:15px}
.close{text-align:center;padding:120px 0}
.close h2{max-width:none;margin:0 auto;font-size:clamp(52px,8vw,110px);letter-spacing:-0.035em;line-height:.95}
.close .btn{margin-top:40px}
.close .mark{margin-bottom:28px}

/* every state, starting with Montana: the count tiles on the front, the headings on the directory */
.states .state{padding:0;margin-top:40px}
.states .state h3{font-size:30px;font-weight:800;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.states .count{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600}
.states .none{color:var(--mute);margin-top:12px}

/* the directory: the search, then every business by state */
form.search{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-top:32px;max-width:760px}
form.search label{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mute);flex:1 1 220px}
form.search select,form.search input{font:inherit;font-family:var(--body);font-size:17px;padding:14px 16px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);min-width:0;width:100%}
form.search label.state{flex:0 1 200px}
form.search .btn{flex:none}
.directory{padding-top:40px}
.directory .result{margin-bottom:8px}
.directory .result.none{color:var(--brand-deep)}
.directory .state{margin-top:48px}
.directory .state h2{font-size:34px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;max-width:none}
ul.dir{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
ul.dir .row{display:grid;grid-template-columns:64px 1fr auto auto;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
ul.dir .badge{justify-self:start}
ul.dir .tile{width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--grey);display:flex;align-items:center;justify-content:center;color:var(--ink)}
ul.dir .tile.empty{color:var(--brand)}
ul.dir .tile img{width:100%;height:100%;object-fit:cover}
ul.dir .who{display:flex;flex-direction:column;gap:2px;min-width:0}
ul.dir .who a{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-0.01em}
ul.dir .who a:hover{color:var(--brand)}
ul.dir .meta{font-size:15px;color:var(--mute)}
ul.dir .read{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--mute);white-space:nowrap}
.state-counts{list-style:none;margin:32px 0 36px;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.state-counts li a{display:inline-flex;align-items:baseline;gap:12px;padding:16px 20px;border:2px solid var(--ink);border-radius:14px;font-family:var(--display);font-weight:700;font-size:22px}
.state-counts li a:hover{background:var(--ink);color:#fff}
.state-counts .count{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600}
.state-counts li a:hover .count{color:rgba(255,255,255,.7)}
.state-counts .none{font-size:14px;color:var(--mute);margin-top:6px}

/* the static pages: a page head, then prose */
.page-head{padding:80px 0 48px}
.page-head h1{font-size:clamp(44px,6vw,84px);font-weight:800;letter-spacing:-0.035em;line-height:.95;max-width:16ch}
.page-head .lede{margin-top:22px}
.page-head .under{margin-top:18px}
.page-head .btn{margin-top:32px}
.prose{max-width:var(--measure);font-size:18px;line-height:1.6}
.prose h2{font-size:34px;margin:56px 0 16px;max-width:none}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:24px;margin:40px 0 12px;font-weight:800}
.prose h3:first-child{margin-top:0}
.prose p{margin:0 0 14px}
.prose .btn{margin-top:16px}
ul.facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px 40px}
ul.facts h3{font-size:24px;font-weight:800;margin:0 0 8px}
ul.facts p{color:var(--mute);font-size:16px}
.dark ul.facts p{color:rgba(255,255,255,.75)}
dl.kv{margin:0;display:grid;grid-template-columns:minmax(160px,auto) 1fr;gap:14px 28px;font-size:16px}
dl.kv dt{font-family:var(--mono);font-weight:700;padding-top:2px}
dl.kv dd{margin:0;color:var(--mute)}
pre.plain{font-family:var(--mono);font-size:15px;background:var(--ink);color:#e8e6e0;padding:22px;border-radius:14px;margin:0;overflow:auto}
.roots{display:flex;flex-wrap:wrap;gap:10px}
.roots a{font-family:var(--mono);font-weight:700;padding:10px 14px;border:2px solid var(--ink);border-radius:8px}
.roots a:hover{background:var(--ink);color:#fff}
.tiers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}
.dark .badge{border-color:#fff}
.stack{display:flex;flex-direction:column;gap:8px;align-items:flex-start}

/* sign-up: five steps, a form in each; posts nowhere yet */
.step{padding:40px 0;border-top:1px solid var(--line)}
.step .head{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:600;display:block;margin-bottom:12px}
.step h2{font-size:34px;margin-bottom:14px;max-width:none}
.step p{max-width:var(--measure)}
.step form{margin-top:20px;display:flex;flex-direction:column;gap:14px;max-width:440px}
.step label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
.step input{font:inherit;padding:14px 16px;border:2px solid var(--ink);border-radius:12px;background:#fff}
.step .btn,.step .act{align-self:flex-start;margin-top:8px}
ul.found{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;max-width:440px}
ul.found li{display:flex;justify-content:space-between;gap:16px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-size:15px}
ul.found .pass{color:var(--pass);font-weight:700} ul.found .fail{color:var(--fail);font-weight:700}
.ctl{display:inline-flex;gap:10px;margin-left:12px;font-family:var(--mono);font-size:12px}
.ctl a{text-decoration:underline;text-underline-offset:.15em;color:var(--brand-deep)}
.card.confirm dd{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}
.mono{font-family:var(--mono)}

/* footer */
footer{padding:72px 0 40px}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
footer h4{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-soft);margin:0 0 18px}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:16px;font-weight:500}
footer ul a:hover{color:var(--brand-soft)}
footer code{font-family:var(--mono);font-size:14px;background:rgba(255,255,255,.1);padding:3px 7px;border-radius:5px}
footer .by{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-0.02em;display:flex;align-items:center;gap:8px}
footer .by .dot{color:var(--brand)}
footer .tagline{margin-top:16px;color:rgba(255,255,255,.7);max-width:32ch}
footer .base{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:14px;color:rgba(255,255,255,.7)}
footer .base nav{display:flex;gap:22px}

@media (max-width: 960px){
  .links{display:none}
  details.menu{display:block}
  .hero .grid{grid-template-columns:1fr}
  .hero .copy{padding:56px var(--pad) 48px;max-width:none}
  .hero .photo{min-height:460px}
  .three{grid-template-columns:1fr;gap:40px}
  .finds .grid,.record-sec .grid,.record-page .grid,.door-sec .grid,.orgs .grid{grid-template-columns:1fr;gap:40px}
  .pricing .plans{grid-template-columns:1fr;gap:40px}
  footer .cols{grid-template-columns:1fr 1fr;gap:36px}
  .strip .row{grid-template-columns:1fr}
  .strip .photo,.strip .photo.empty{aspect-ratio:16/10}
  section{padding:72px 0}
  .orgs .photo{aspect-ratio:4/3}
  .record-page .photo{min-height:320px}
}
@media (max-width: 480px){
  :root{--pad:18px}
  .nav{gap:10px;height:64px}
  .logo{font-size:16px;gap:7px}
  .logo svg{width:28px;height:28px}
  .nav .btn{padding:10px 12px;font-size:13px}
  details.menu summary{padding:12px 0 12px 2px}
  details.menu summary span.t{display:none}
  .hero h1{font-size:64px}
  .hero .copy{padding:44px var(--pad) 40px}
  .hero .photo{min-height:400px}
  .hero .photo .decal{right:14px;top:auto;bottom:88px;width:118px}
  .hero .photo .badge{top:14px;left:14px}
  h2{font-size:40px}
  .card{padding:24px}
  .card header h1,.card header h2{font-size:36px}
  .dates{grid-template-columns:1fr}
  .card dl{grid-template-columns:1fr;gap:4px 0}
  .card dd{margin-bottom:10px}
  .btn,.act{font-size:17px;padding:16px 22px}
  .door{width:100%;padding:18px 18px 0}
  .door .decal{right:14px;top:18%;width:150px}
  .door .handle{left:26px;height:120px}
  footer .cols{grid-template-columns:1fr}
  .close{padding:88px 0}
  .strip .head{flex-direction:column;gap:6px}
  .page-head{padding:56px 0 36px}
  dl.kv{grid-template-columns:1fr;gap:4px 0} dl.kv dd{margin-bottom:12px}
  ul.dir .row{grid-template-columns:56px 1fr;gap:10px 14px}
  ul.dir .tile{width:56px;height:56px}
  ul.dir .badge{grid-column:2}
  ul.dir .read{grid-column:2}
  form.search label.state{flex:1 1 100%}
}

/* Get found by: the agents, as wordmarks in the site's own type, black band, one accent (DIR 24). Names are nominative; no third-party logo files. */
.foundby{padding:40px 0}.foundby .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:18px 40px}
.foundby .lead{font-family:var(--display);font-weight:800;font-size:22px;margin:0;color:var(--brand)}
.foundby .logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px 36px;flex:1;min-width:60%}
.foundby .logos li{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.01em;color:#fff;opacity:.92}
.foundby .note{flex-basis:100%;margin:10px 0 0;font-size:13px;color:#bbb;max-width:72ch}
@media(max-width:600px){.foundby .logos li{font-size:20px}.foundby .logos{gap:10px 22px}}

/* Pricing as a table (Mark, 2026-09-20): one owner plan on black, three fixed organisation tiers on white, every plan on black. */
.pricing .plans.one{grid-template-columns:minmax(0,560px)}
.pricing .plans.three{grid-template-columns:repeat(3,1fr);gap:24px}
.pricing.light .plan{border:2px solid var(--ink);border-left:2px solid var(--ink);border-radius:20px;padding:28px}
.pricing.light .plan .price small{color:var(--mute)}
.pricing.light .plan ul{color:var(--ink)}
.pricing .larger{margin-top:32px;font-family:var(--display);font-weight:500;font-size:20px;max-width:40ch}
.every{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 40px;font-size:18px;color:rgba(255,255,255,.9)}
.every li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--brand);border-radius:50%;margin-right:12px;vertical-align:middle}
@media(max-width:900px){.pricing .plans.three{grid-template-columns:1fr}.every{grid-template-columns:1fr}}
