/* TLK Source — public site. Navy and hi-vis yellow from the work-site world; wide Archivo headings. No inline styles (the site's security policy blocks them). */
:root{
  --ink:#0F1720;
  --ink-2:#1B2733;
  --steel:#4E5D69;
  --line:#D5DAD8;
  --paper:#F5F6F4;
  --white:#FFFFFF;
  --hivis:#F2C230;
  --hivis-hover:#FFD34D;
  --hivis-deep:#C99A0A;
  --hivis-text:#8A6A00;   /* yellow for small text on white: meets WCAG AA */
  --muted-dk:#C9D1D6;     /* body text on navy ONLY. On white or paper it is 1.4:1 — invisible.
                             For muted text on a light background use --steel. This is what made
                             the step cards and the stat tiles look washed out; found by
                             tools/lint-contrast.mjs on 29 September 2026. */
  --err:#B42318;
  /* The launch designs' greys (docs/briefs/launch-design/, 29 September 2026). Named here, in the one
     :root block tools/lint-contrast.mjs reads, so every rule that uses them is contrast-checked. A
     second :root further down would leave its tokens unresolved and the lint would skip those rules
     without saying so. */
  --l-line:#E3E6EA;
  --l-muted:#626B77;   /* the design's #6B7480 is 4.37:1 on --paper; this is the nearest that passes AA */
  --l-body:#3D4652;
  --l-paper:#F6F7F8;
  --l-grey:#C9D1D6;
  --l-soft:#9AA4AE;
  --l-ink3:#16212D;
  --l-ink4:#2A3542;
  --l-green:#1E6B45;
  --l-green-bg:#EAF5EF;
  /* The company page designs' two greys (directory brief v2, section 3): the page behind the cards,
     and the "New service" tag. */
  --l-page:#EEF0F2;
  --l-tag:#FBF3D6;
  --maxw:1180px;
  --display:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--display);font-size:17px;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--hivis);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
/* Reading measure on a phone; the grid sections override it where they need the room. */
@media (max-width:767px){.wrap{max-width:640px}}
.skip{position:absolute;left:-999px;padding:.5rem 1rem}.skip:focus{left:1rem;top:1rem;background:var(--white);z-index:10}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{font-weight:800;font-stretch:115%;letter-spacing:-.015em;line-height:1.08}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Buttons */
.btn{display:inline-block;text-decoration:none;font-weight:700;padding:.85rem 1.3rem;border-radius:4px;border:2px solid transparent;font-size:1rem;line-height:1.2;cursor:pointer;font-family:inherit;text-align:center}
@media (max-width:767px){.btn{display:block;width:100%;min-height:52px;padding:0 1.3rem;display:flex;align-items:center;justify-content:center}.btn-row{flex-direction:column;align-items:stretch;gap:.6rem}}
.btn-hivis{background:var(--hivis);color:var(--ink)}
.btn-hivis:hover{background:var(--hivis-hover)}
.btn-ink{background:var(--ink);color:var(--white)}
.btn-ink:hover{background:var(--ink-2)}
.btn-line{border-color:currentColor;background:transparent}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* Header */
.site-head{background:var(--ink);color:var(--white);position:sticky;top:0;z-index:5;border-bottom:1px solid #26323C}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:66px}
.brand{font-weight:800;font-stretch:120%;text-decoration:none;font-size:1.25rem;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem 0;white-space:nowrap}
.brand::before{content:"";width:.8rem;height:.8rem;background:var(--hivis);border-radius:2px;display:inline-block}
.nav{display:flex;gap:1.4rem;align-items:center}
.nav a{text-decoration:none;font-size:.95rem;color:var(--muted-dk)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--white);text-decoration:underline;text-underline-offset:4px}
.nav .btn{color:var(--ink);padding:.55rem 1rem;font-size:.92rem}
.nav .btn:hover{color:var(--ink);text-decoration:none}
@media (max-width:860px){.nav .hide-sm{display:none}.nav{gap:1rem}}
@media (max-width:480px){.hide-xs{display:none}.site-head .wrap{flex-wrap:wrap;row-gap:.35rem;padding-block:.6rem;min-height:0}.nav{width:100%;justify-content:space-between;gap:.75rem}.nav a{font-size:.95rem}.nav .btn{padding:.5rem .9rem}}

/* Home hero */
.hero{background:var(--ink);color:var(--white);padding:3.25rem 0 2.5rem}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0 0 1rem;color:var(--hivis)}
.eyebrow::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--hivis);box-shadow:0 0 0 4px rgba(242,194,48,.25)}
.hero h1{font-stretch:120%;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1;margin:0 0 1rem;max-width:15ch}
.hero .lede{font-size:clamp(1.1rem,2vw,1.3rem);color:var(--muted-dk);max-width:52ch;margin:0 0 2rem}

/* Photo ribbon */
.ribbon{background:var(--ink)}
.ribbon img{width:100%;height:auto;max-height:460px;object-fit:cover;object-position:center 28%}
@media (max-width:620px){.ribbon img{height:220px}}

/* Sections */
.block{padding:4.25rem 0}
.block.white{background:var(--white)}
.block.dark{background:var(--ink);color:var(--white)}
.block h2{font-size:clamp(1.8rem,3.6vw,2.7rem);margin:0 0 .75rem;max-width:24ch}
.block .intro{max-width:62ch;color:var(--steel);margin:0 0 2.25rem;font-size:1.12rem}
.block.dark .intro{color:var(--muted-dk)}
.section-cta{margin-top:2.25rem}
.section-cta .note{margin:.75rem 0 0;font-weight:600}
.block.dark .note{color:var(--hivis)}

/* Urgency band */
.urgency{background:var(--hivis);color:var(--ink);padding:3.25rem 0}
.urgency h2{font-size:clamp(1.7rem,3.4vw,2.5rem);margin:0 0 1.5rem;max-width:26ch}
.urgency-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.urgency-card{background:var(--white);border-radius:4px;padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;border-left:6px solid var(--ink)}
.urgency-card .who{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--hivis-text)}
.urgency-card p{margin:0 0 .5rem;font-size:1.05rem}
.urgency-card .btn{align-self:flex-start;margin-top:auto}
@media (max-width:760px){.urgency-grid{grid-template-columns:1fr}}

/* Steps */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
@media (max-width:820px){.two-col{grid-template-columns:1fr}}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:0;border-top:3px solid var(--ink)}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.6rem 1fr;gap:.5rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);font-weight:800;font-stretch:120%;font-size:1.7rem;line-height:1;color:var(--hivis-deep)}
.steps-title{font-size:1.2rem;margin:0 0 .75rem}
.steps.wide{grid-template-columns:repeat(4,1fr);gap:1.25rem;border-top:0}
.steps.wide li{grid-template-columns:1fr;border-top:3px solid var(--ink);border-bottom:0;padding-top:.8rem}
@media (max-width:900px){.steps.wide{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps.wide{grid-template-columns:1fr}}

/* Checks list */
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--line);position:relative}
.checks li::before{content:"";position:absolute;left:0;top:1.05rem;width:.9rem;height:.9rem;background:var(--hivis);border:2px solid var(--ink)}

/* Inner page header */
.page-head{background:var(--ink);color:var(--white);padding:3rem 0 3.25rem}
.page-head h1{font-stretch:118%;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.04;margin:0 0 .8rem;max-width:22ch}
.page-head p{color:var(--muted-dk);font-size:1.15rem;max-width:58ch;margin:0}
.page-head .btn-row{margin-top:1.5rem}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:1rem 0}
.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem}
.faq details p{margin:.7rem 0 0;color:var(--steel);max-width:66ch}
.faq h2{margin-top:2.5rem}

/* Forms */
.forms{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;align-items:start}
@media (max-width:900px){.forms{grid-template-columns:1fr}}
.card{background:var(--white);border:1px solid var(--line);border-top:6px solid var(--hivis);border-radius:4px;padding:1.6rem;scroll-margin-top:84px}
.card h2{font-size:1.6rem;margin:0 0 .35rem}
.card .pitch{color:var(--steel);margin:0 0 1.25rem}
.field{margin:0 0 1rem}
label,.group-label{display:block;font-weight:600;font-size:.95rem;margin:0 0 .35rem}
.hint{font-weight:400;color:var(--steel)}
input,select,textarea{width:100%;font:inherit;font-size:1rem;padding:.7rem .8rem;border:1.5px solid #AEB7BC;border-radius:4px;background:var(--white);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}
textarea{min-height:96px;resize:vertical}
.group{border:0;margin:0;padding:0;min-width:0}
.group-label{padding:0}
.checks-in{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.checks-in label{font-weight:400;display:flex;gap:.5rem;align-items:center;margin:0}
.checks-in input{width:1.15rem;height:1.15rem;padding:0;margin:0;flex:none;accent-color:var(--ink)}
.small{font-size:.9rem;color:var(--steel);margin:.9rem 0 0}
.error{display:block;color:var(--err);font-size:.9rem;font-weight:600;margin-top:.3rem}
[aria-invalid="true"]{border-color:var(--err)}
.notice{border-left:5px solid var(--hivis-deep);background:var(--white);padding:.8rem 1rem;margin:1rem 0;border-radius:4px}
.notice.err{border-left-color:var(--err)}
.notice ul{margin:.4rem 0 0;padding-left:1.2rem}
.cf-turnstile{margin:.25rem 0 1rem;min-height:140px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* Legal and simple pages */
.prose{max-width:72ch}
.prose h2{font-size:1.45rem;margin:2rem 0 .6rem}
.prose h3{font-size:1.1rem;margin:1.25rem 0 .4rem}
.prose ul{padding-left:1.25rem}
.prose p{margin:0 0 1rem}
.draft{display:inline-block;background:var(--hivis);font-weight:700;padding:.3rem .8rem;border-radius:3px}
.muted{color:var(--steel)}
.mt-2{margin-top:2rem}

/* Footer */
.site-foot{background:var(--ink);color:#AEB8BE;padding:3rem 0 2rem;font-size:.95rem}
.site-foot .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr .8fr 1fr;gap:1.75rem}
.site-foot .brand{color:var(--white)}
.site-foot h3{color:var(--white);font-size:.95rem;font-stretch:100%;margin:0 0 .6rem}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin:.35rem 0}
.site-foot a{text-decoration:none}
.site-foot a:hover{text-decoration:underline;color:var(--white)}
.site-foot .legal{margin-top:2.5rem;font-size:.85rem;border-top:1px solid #26323C;padding-top:1.25rem}
@media (max-width:900px){.site-foot .cols{grid-template-columns:1fr 1fr}}

/* Breadcrumbs */
.crumbs ol{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.88rem;color:var(--muted-dk)}
.crumbs li+li::before{content:"›";margin-right:.35rem;color:var(--hivis)}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline;color:var(--white)}
.crumbs [aria-current]{color:var(--white)}

/* ==========================================================================
   Buyer Briefings (22 September 2026)
   Additions go in this block. No new palette, no new fonts — everything below
   is built from the tokens at the top of this file.
   ========================================================================== */

/* Brand lock-up: "Buyer Briefings by TLK Source" in the header, TLK Source in footers */
.brand-by{font-weight:400;font-stretch:100%;opacity:.72}
@media (max-width:560px){.brand-by{display:none}}
.site-head .who{font-size:.9rem;color:var(--muted-dk);max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inline-form{display:inline}

/* Buttons the product needs beyond the three it started with */
.btn-lg{padding:1rem 1.6rem;font-size:1.05rem}
.btn-sm{padding:.45rem .85rem;font-size:.88rem}
.btn-ghost{background:transparent;border-color:transparent;padding:.5rem .6rem;text-decoration:underline;text-underline-offset:3px}
.btn-danger{background:var(--err);color:var(--white)}
.btn-danger:hover{background:#991B13}
.btn-dark{background:var(--hivis);color:var(--ink)}
.page-head .btn-line,.hero .btn-line{color:var(--white)}

/* Badges. Tone carries meaning: live is open, warn is waiting, bad has stopped. */
.badge{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:.2rem .55rem;border-radius:3px;background:#E3E8E5;color:var(--ink);white-space:nowrap}
.badge.live{background:var(--hivis);color:var(--ink)}
.badge.warn{background:#F0E4C4;color:#6B5200}
.badge.bad{background:#F6DAD7;color:var(--err)}
.badge-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 1.25rem}

/* Opportunity cards */
.opp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem}
@media (max-width:1000px){.opp-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){.opp-grid{grid-template-columns:1fr}}
.opp{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--hivis);border-radius:4px;
  padding:1.25rem;display:flex;flex-direction:column;gap:.6rem}
.opp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}
.opp-meta{margin:0;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--hivis-text)}
.opp-badges{display:flex;gap:.35rem;flex-wrap:wrap}
.opp-title{margin:0;font-size:1.25rem;line-height:1.2}
.opp-title a{text-decoration:none}
.opp-title a:hover{text-decoration:underline;text-decoration-color:var(--hivis-deep);text-decoration-thickness:2px;text-underline-offset:3px}
.opp-when{margin:0;color:var(--steel);font-size:.95rem}
.opp-foot{margin:auto 0 0;padding-top:.75rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:baseline;gap:.75rem;flex-wrap:wrap}
.places{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.85rem;color:var(--steel);font-variant-numeric:tabular-nums}
.go{font-weight:700;text-decoration:none;color:var(--ink);text-decoration:underline;text-decoration-color:var(--hivis-deep);
  text-decoration-thickness:2px;text-underline-offset:3px}

/* The three requirements inside a card */
.reqs{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.req{border-left:3px solid var(--line);padding-left:.75rem}
.req-what{margin:0;font-weight:700;font-size:.98rem}
.req-bands{margin:.15rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem .75rem;font-size:.88rem;color:var(--steel)}
.req-bands span::after{content:"·";margin-left:.75rem;color:var(--line)}
.req-bands span:last-child::after{content:""}
.reqs-detail{gap:1.1rem;margin-top:1.5rem}
.reqs-detail .req{border-left-color:var(--hivis);border-left-width:5px;padding-left:1rem}
.reqs-detail .req-what{font-size:1.15rem}

/* Filters, view toggle and counts */
.filters{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:1rem;align-items:end;margin-bottom:1.25rem}
.filters .field{margin:0}
.filter-go{display:flex;gap:.5rem}
@media (max-width:820px){.filters{grid-template-columns:1fr 1fr}.filter-go{grid-column:1/-1}}
@media (max-width:520px){.filters{grid-template-columns:1fr}}
.view-toggle{display:flex;gap:.5rem;margin-bottom:1rem}
.result-count{font-weight:700;margin:0}
.divider{border:0;border-top:1px solid var(--line);margin:3rem 0 2rem}

/* Calendar: a month grid drawn from the briefings themselves */
.cal{width:100%;border-collapse:collapse;margin-bottom:2rem;table-layout:fixed;min-width:640px}
.cal caption{text-align:left;font-weight:800;font-stretch:115%;font-size:1.3rem;padding:0 0 .6rem}
.cal th{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--steel);padding:.4rem;text-align:left;border-bottom:2px solid var(--ink)}
.cal td{border:1px solid var(--line);vertical-align:top;height:5.5rem;padding:.35rem;background:var(--white)}
.cal td.cal-empty{background:transparent;border-color:transparent}
.cal td.cal-has{background:#FFFCF0}
.cal-day{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.82rem;color:var(--steel)}
.cal-item{display:block;margin-top:.25rem;font-size:.8rem;font-weight:700;line-height:1.2;text-decoration:none;
  border-left:3px solid var(--hivis);padding-left:.35rem}
.cal-item:hover{text-decoration:underline}

/* The pack structure block on the home page */
.pack{background:var(--ink-2);border:1px solid #33414C;border-radius:4px;padding:1.5rem;max-width:760px}
.pack-head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;border-bottom:1px solid #33414C;padding-bottom:.9rem;margin-bottom:.4rem}
.pack-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;background:var(--hivis);color:var(--ink);padding:.2rem .5rem;border-radius:3px}
.pack-title{margin:0;font-weight:800;font-stretch:115%;font-size:1.3rem}
.pack-list{list-style:none;counter-reset:pk;margin:0;padding:0}
.pack-list li{counter-increment:pk;display:grid;grid-template-columns:2rem 1fr;gap:.25rem .5rem;padding:.8rem 0;border-bottom:1px solid #33414C}
.pack-list li:last-child{border-bottom:0}
.pack-list li::before{content:counter(pk,decimal-leading-zero);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.85rem;color:var(--hivis);grid-row:span 2}
.pack-list strong{font-size:1rem}
.pack-list span{color:var(--muted-dk);font-size:.93rem}
@media (max-width:520px){.pack{padding:1.1rem}}

/* Choices: checkbox and radio rows, used by every form in the product */
.choices{display:grid;gap:.5rem}
.choice{display:flex;gap:.65rem;align-items:flex-start;font-weight:400;margin:0;padding:.6rem .7rem;
  background:var(--white);border:1.5px solid var(--line);border-radius:4px;cursor:pointer}
.choice:hover{border-color:var(--hivis-deep)}
.choice input{width:1.15rem;height:1.15rem;flex:none;margin:.2rem 0 0;padding:0;accent-color:var(--ink)}
.choice span{display:block}
.choice span strong{display:block}
.choice .hint{display:block;font-size:.88rem}
.choice:has(input:checked){border-color:var(--ink);background:#FFFCF0}
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
@media (max-width:820px){.check-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.check-grid{grid-template-columns:1fr}}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:560px){.row2{grid-template-columns:1fr}}

/* Category picker: a collapsible category with its sub-categories inside */
.picker{display:grid;gap:.6rem}
.pick{border:1.5px solid var(--line);border-radius:4px;background:var(--white)}
.pick>summary{list-style:none;cursor:pointer;padding:.15rem}
.pick>summary::-webkit-details-marker{display:none}
.pick>summary .choice{border:0;background:transparent;padding:.55rem .65rem}
.pick>summary::after{content:"▸";float:right;padding:.6rem .8rem;color:var(--steel)}
.pick[open]>summary::after{content:"▾"}
.pick-subs{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;padding:0 .75rem .75rem}
.pick-subs .choice{padding:.4rem .55rem;font-size:.93rem}
.pick-none{margin:0;padding:0 .75rem .75rem;color:var(--steel);font-size:.9rem}
@media (max-width:820px){.pick-subs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.pick-subs{grid-template-columns:1fr}}

/* Registration progress */
.step-count{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--hivis-text);margin:0 0 .5rem}
.step-dots{list-style:none;display:flex;gap:.4rem;padding:0;margin:0 0 1.75rem}
.step-dots li{height:.4rem;flex:1;background:var(--line);border-radius:2px}
.step-dots li.done{background:var(--hivis-deep)}
.step-dots li.now{background:var(--hivis)}

/* Notices */
.notice.ok{border-left-color:#1B7F5A}
.notice strong{font-weight:700}

/* The supplier portal */
.app-nav{background:var(--ink-2);border-bottom:1px solid #33414C;overflow-x:auto}
.app-nav .wrap{display:flex;gap:1.75rem}
.app-nav a{color:var(--muted-dk);text-decoration:none;font-size:.95rem;font-weight:600;padding:.85rem 0;
  border-bottom:3px solid transparent;white-space:nowrap}
.app-nav a:hover{color:var(--white)}
.app-nav a[aria-current="page"]{color:var(--white);border-bottom-color:var(--hivis)}
.app-main{background:var(--paper);min-height:60vh}
.app-head{background:var(--ink);color:var(--white);padding:2.25rem 0 2rem}
.app-head h1{font-size:clamp(1.7rem,4vw,2.6rem);margin:0}
.app-head .lede{color:var(--muted-dk);margin:.5rem 0 0;max-width:60ch}
.app-body{padding:2.25rem 0 4rem}
.app-body h2{font-size:1.5rem;margin:2rem 0 .5rem}
.app-body h2:first-child{margin-top:0}
.empty-state{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:2.5rem;text-align:center}
.empty-state p{max-width:52ch;margin:0 auto 1.25rem;color:var(--steel)}

/* The purchase block */
.buy{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--hivis);border-radius:4px;padding:1.5rem;margin-top:2rem}
.buy h2{margin-top:0}
.buy .price{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:2rem;font-weight:700;margin:0 0 1rem}
.price-note{font-size:.95rem;font-weight:400;color:var(--steel);font-family:var(--display)}

/* Tables */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--white)}
th,td{text-align:left;padding:.7rem .75rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--steel);border-bottom:2px solid var(--ink)}
td.r,th.r{text-align:right}
td.empty{text-align:center;color:var(--steel);padding:2rem}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}

/* Pagination and meters, shared with the console */
.pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem}
.meter{height:.5rem;background:var(--line);border-radius:3px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--hivis-deep)}

/* Slim footer for the portal */
.site-foot.slim{padding:2rem 0 1.5rem}
.site-foot .footer-links{display:flex;flex-wrap:wrap;gap:1.25rem}
.site-foot .footer-links a{text-decoration:none}
.site-foot.slim .legal{margin-top:1.25rem}
.site-foot .small{margin:.6rem 0 0;max-width:34ch}
.meter .w-0{width:0%}
.meter .w-5{width:5%}
.meter .w-10{width:10%}
.meter .w-15{width:15%}
.meter .w-20{width:20%}
.meter .w-25{width:25%}
.meter .w-30{width:30%}
.meter .w-35{width:35%}
.meter .w-40{width:40%}
.meter .w-45{width:45%}
.meter .w-50{width:50%}
.meter .w-55{width:55%}
.meter .w-60{width:60%}
.meter .w-65{width:65%}
.meter .w-70{width:70%}
.meter .w-75{width:75%}
.meter .w-80{width:80%}
.meter .w-85{width:85%}
.meter .w-90{width:90%}
.meter .w-95{width:95%}
.meter .w-100{width:100%}

/* ==========================================================================
   Site copy v2 (22 September 2026) — short, sell first, mobile first.
   One idea per screen. Nothing above the fold but a headline, a line, a button.
   ========================================================================== */

/* Header: wordmark + Register + menu under 768px. Sign in lives in the menu and the footer. */
.site-head .nav .sign-in{display:inline}
@media (max-width:767px){
  .site-head .wrap{min-height:60px;flex-wrap:nowrap;gap:.6rem;padding-block:0;min-width:0}
  .site-head .brand{font-size:1.05rem;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .site-head .nav{width:auto;gap:.5rem;flex:0 0 auto}
  .site-head .nav a:not(.btn):not(.menu-link){display:none}
  .site-head .nav .btn{padding:0 .95rem;min-height:40px;width:auto;display:inline-flex}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 .7rem;
    background:transparent;border:1.5px solid #3A4854;border-radius:4px;color:var(--white);font:inherit;font-size:.9rem;cursor:pointer}
  .site-menu[hidden]{display:none}
  .site-menu{background:var(--ink-2);border-bottom:1px solid #33414C}
  .site-menu a{display:block;padding:.9rem 0;color:var(--muted-dk);text-decoration:none;border-bottom:1px solid #33414C;font-weight:600}
  .site-menu a:last-child{border-bottom:0}
}
@media (min-width:768px){.menu-toggle,.site-menu{display:none}}

/* Screen 1 — hero. Full viewport on a phone, photo behind, navy at 70% over it. */
.hero-full{position:relative;display:flex;align-items:center;min-height:min(720px,85vh);background:var(--ink);color:var(--white);overflow:hidden}
.hero-full>.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-full::after{content:"";position:absolute;inset:0;background:rgba(15,23,32,.7)}
/* A flex item sizes to its content unless told otherwise, and a long headline then pushes the page
   wider than the phone. width:100% and min-width:0 keep it to the screen. */
.hero-full>.wrap{position:relative;z-index:1;padding-block:3rem;width:100%;min-width:0;flex:1 1 auto}
.hero-full h1,.hero-full .lede{overflow-wrap:break-word}
.hero-full h1{font-stretch:118%;font-size:clamp(2rem,8vw,3.25rem);line-height:1.04;margin:0 0 .9rem;max-width:16ch}
.hero-full .lede{font-size:1.1rem;color:var(--white);margin:0 0 1.75rem;max-width:34ch}
.hero-full .under{margin:1rem 0 0;font-size:1rem}
.hero-full .under a{color:var(--hivis);font-weight:700;text-decoration:none}
.hero-full .under a:hover{text-decoration:underline}
/* On a phone a full-height hero puts the headline at the bottom of an empty screen. The photo stays
   behind; the section is only as tall as the words and the button it holds. */
@media (max-width:767px){
  .hero-full{min-height:auto;align-items:stretch}
  .hero-full>.wrap{padding-block:64px 40px}
  .hero-bottom>.wrap{padding-block:64px 40px}
}

/* Screen 2 — three benefits, one line each */
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:820px){.benefits{grid-template-columns:1fr;gap:1.1rem}}
.benefit{border-top:4px solid var(--hivis);padding-top:1rem}
.benefit p{margin:0;font-size:1.05rem}
.benefit strong{display:block;font-size:1.15rem;margin-bottom:.15rem}

/* Screen 3 — opportunity cards, one line per opportunity. Scroll-snap on a phone. */
.opp-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media (max-width:820px){
  .opp-rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
    margin-inline:-20px;padding:0 20px 1rem;-webkit-overflow-scrolling:touch}
  .opp-rail>*{flex:0 0 82%;scroll-snap-align:start}
}
.card-opp{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--hivis);border-radius:4px;
  padding:1.15rem;display:flex;flex-direction:column;gap:.55rem;text-decoration:none;color:inherit}
.card-opp:hover{border-color:var(--hivis-deep)}
.card-opp .eyebrow-line{margin:0;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--hivis-text);line-height:1.35}
.card-opp .scale{margin:0;font-size:1.12rem;font-weight:700;line-height:1.25}
.card-opp .when{margin:0;color:var(--steel);font-size:.95rem}
.card-opp .confirmed{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--hivis-text);display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start}
.card-opp .confirmed::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--hivis-deep)}
/* Three lines on the home page carry a bold lead-in and a normal line under it. */
.step-lines.wide li{display:block;font-weight:400;font-size:1.05rem}
.step-lines.wide li strong{display:block;font-size:1.2rem;font-weight:700;margin-bottom:.15rem}
.step-lines.wide li::before{float:left;margin-right:.75rem}
.card-opp .foot{margin:auto 0 0;padding-top:.7rem;border-top:1px solid var(--line);display:flex;
  justify-content:space-between;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.card-opp .view{font-weight:700;color:var(--ink);text-decoration:underline;
  text-decoration-color:var(--hivis-deep);text-decoration-thickness:2px;text-underline-offset:3px}

/* Screen 4 — how it works, four lines */
.step-lines{list-style:none;counter-reset:sl;margin:0;padding:0;display:grid;gap:0;border-top:2px solid var(--ink)}
.step-lines li{counter-increment:sl;display:grid;grid-template-columns:2.4rem 1fr;align-items:baseline;gap:.75rem;
  padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.15rem;font-weight:600}
.step-lines li::before{content:counter(sl);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:1.3rem;
  font-weight:700;color:var(--hivis-deep)}

/* Screen 5 — for buyers band */

/* Filter chips */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;list-style:none;padding:0}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 .9rem;border-radius:999px;
  border:1.5px solid var(--line);background:var(--white);text-decoration:none;font-size:.92rem;font-weight:600;color:var(--ink)}
.chip:hover{border-color:var(--hivis-deep)}
.chip[aria-current="true"]{background:var(--ink);color:var(--white);border-color:var(--ink)}
.chip-clear{border-style:dashed}
.chip-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin-bottom:1.25rem}
.chip-form .field{margin:0;flex:1 1 180px}
.chip-form .btn{width:auto;flex:0 0 auto}
@media (max-width:767px){.chip-form .btn{width:100%}}

/* Buyer cards on an opportunity page */
.buyer-cards{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:900px){.buyer-cards{grid-template-columns:1fr}}
.buyer-card{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--hivis);border-radius:4px;padding:1.1rem}
.buyer-card p{margin:0 0 .35rem}
.buyer-card .band{font-weight:700}
.buyer-card .meta{color:var(--steel);font-size:.95rem;margin:0}

/* The boundary line, once, at the bottom of an opportunity */
.boundary{margin:2rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--steel);font-size:.95rem}

/* Registration: progress bar and big buttons */
.progress{height:.4rem;background:var(--line);border-radius:2px;overflow:hidden;margin:0 0 1.5rem}
.progress span{display:block;height:100%;background:var(--hivis)}
.p-14{width:14%}.p-28{width:28%}.p-42{width:42%}.p-57{width:57%}.p-71{width:71%}.p-85{width:85%}.p-100{width:100%}

/* Sections: tighter on a phone */
@media (max-width:767px){
  .block{padding:2.75rem 0}
  .page-head{padding:2.25rem 0 2.5rem}
  .page-head h1{font-size:clamp(1.8rem,7.5vw,2.6rem)}
  .buyer-band{padding:2.75rem 0}
  h1,h2{text-wrap:balance}
}

/* ==========================================================================
   Buyer-led events (brief v6, 23 September 2026)
   ========================================================================== */

/* Hero variants: content at the bottom on the home page, split on an industry page */
.hero-bottom{align-items:flex-end}
.hero-bottom>.wrap{padding-block:3rem 3.5rem}
.hero-split{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}
@media (max-width:900px){.hero-split{grid-template-columns:1fr;align-items:stretch}}
.hero-event{min-height:60vh}
.hero-brief{min-height:46vh}
.hero-brief .lede{margin-bottom:1.5rem}

/* The "next event" card on an industry hero */
.next-card{background:var(--hivis);color:var(--ink);border-radius:4px;padding:1.4rem;min-width:280px}
.next-label{margin:0 0 .3rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.next-when{margin:0 0 .2rem;font-size:1.25rem;font-weight:800;font-stretch:112%;line-height:1.2}
.next-meta{margin:0 0 1rem;font-weight:600}
.next-card .btn{width:100%}

/* Split band: photo one side, words the other */
.split-band{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--white)}
.split-photo img{width:100%;height:100%;object-fit:cover;min-height:320px}
.split-words{display:flex;align-items:center;padding:3rem 1.5rem}
.split-inner{max-width:30rem;margin:0 auto}
.split-words h2{font-size:clamp(1.9rem,4.5vw,3rem);margin:0 0 1.5rem}
.listen{list-style:none;margin:0;padding:0;border-top:1px solid #33414C}
.listen li{padding:1rem 0;border-bottom:1px solid #33414C;font-size:clamp(1.05rem,2.4vw,1.35rem);font-weight:700}
@media (max-width:900px){.split-band{grid-template-columns:1fr}.split-photo img{min-height:220px}.split-words{padding:2.5rem 20px}}

/* Big figures */
.figures{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:760px){.figures{grid-template-columns:1fr;gap:1.1rem}}
.figure{border-top:4px solid var(--hivis);padding-top:.9rem}
.figure-n{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:clamp(2.2rem,6vw,3.2rem);
  font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.figure-l{display:block;margin-top:.35rem;color:var(--steel)}
.block.dark .figure-l,.buyer-band .figure-l{color:var(--muted-dk)}
.source-line{margin:1.25rem 0 0;font-size:.88rem;color:var(--steel)}

/* Industry tiles */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
@media (max-width:900px){.ind-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.ind-grid{grid-template-columns:1fr}}
.ind-tile{display:flex;flex-direction:column;gap:.4rem;background:var(--ink);color:var(--white);
  border-radius:4px;padding:1.3rem;text-decoration:none;border:1px solid #33414C;min-height:110px}
.ind-tile:hover{border-color:var(--hivis)}
.ind-name{font-size:1.2rem;font-weight:800;font-stretch:112%;line-height:1.2}

/* Speakers: role and organisation type, never a person */
.speaker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:1.5rem}
@media (max-width:1000px){.speaker-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.speaker-grid{grid-template-columns:1fr}}
.speaker{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--hivis);border-radius:4px;padding:1rem}
.speaker-role{margin:0 0 .25rem;font-weight:700;line-height:1.25}
.speaker-org{margin:0;color:var(--steel);font-size:.93rem}

/* Count your buyers */
.count-panel{background:var(--hivis);color:var(--ink);border-radius:4px;padding:1.6rem;margin:1.5rem 0}
.count-n{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:clamp(2.8rem,10vw,4.5rem);
  font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.count-sentence{margin:.4rem 0 1rem;font-size:1.1rem;font-weight:600}
.count-est{margin:0;padding-top:1rem;border-top:2px solid rgba(15,23,32,.25);font-size:1.05rem}
.bars{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.5rem}
.bars li{display:grid;grid-template-columns:7.5rem 1fr 4rem;gap:.75rem;align-items:center}
.bar-label{font-size:.93rem}
.bar{background:var(--line);border-radius:3px;height:1.1rem;overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--hivis-deep)}
.bar-n{font-family:"IBM Plex Mono",ui-monospace,monospace;text-align:right;font-variant-numeric:tabular-nums;font-size:.93rem}
@media (max-width:560px){.bars li{grid-template-columns:5.5rem 1fr 3.5rem}}

/* Seats */
.seat-row{border:0;padding:0;margin:0 0 1rem}
.seat-row legend{font-weight:700;font-size:.95rem;padding:0 0 .35rem}
.buy-price{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:1.8rem;font-weight:700;margin:1rem 0}
.bar-fill.w-1{width:1%}
.bar-fill.w-2{width:2%}
.bar-fill.w-3{width:3%}
.bar-fill.w-4{width:4%}
.bar-fill.w-5{width:5%}
.bar-fill.w-6{width:6%}
.bar-fill.w-7{width:7%}
.bar-fill.w-8{width:8%}
.bar-fill.w-9{width:9%}
.bar-fill.w-10{width:10%}
.bar-fill.w-11{width:11%}
.bar-fill.w-12{width:12%}
.bar-fill.w-13{width:13%}
.bar-fill.w-14{width:14%}
.bar-fill.w-15{width:15%}
.bar-fill.w-16{width:16%}
.bar-fill.w-17{width:17%}
.bar-fill.w-18{width:18%}
.bar-fill.w-19{width:19%}
.bar-fill.w-20{width:20%}
.bar-fill.w-21{width:21%}
.bar-fill.w-22{width:22%}
.bar-fill.w-23{width:23%}
.bar-fill.w-24{width:24%}
.bar-fill.w-25{width:25%}
.bar-fill.w-26{width:26%}
.bar-fill.w-27{width:27%}
.bar-fill.w-28{width:28%}
.bar-fill.w-29{width:29%}
.bar-fill.w-30{width:30%}
.bar-fill.w-31{width:31%}
.bar-fill.w-32{width:32%}
.bar-fill.w-33{width:33%}
.bar-fill.w-34{width:34%}
.bar-fill.w-35{width:35%}
.bar-fill.w-36{width:36%}
.bar-fill.w-37{width:37%}
.bar-fill.w-38{width:38%}
.bar-fill.w-39{width:39%}
.bar-fill.w-40{width:40%}
.bar-fill.w-41{width:41%}
.bar-fill.w-42{width:42%}
.bar-fill.w-43{width:43%}
.bar-fill.w-44{width:44%}
.bar-fill.w-45{width:45%}
.bar-fill.w-46{width:46%}
.bar-fill.w-47{width:47%}
.bar-fill.w-48{width:48%}
.bar-fill.w-49{width:49%}
.bar-fill.w-50{width:50%}
.bar-fill.w-51{width:51%}
.bar-fill.w-52{width:52%}
.bar-fill.w-53{width:53%}
.bar-fill.w-54{width:54%}
.bar-fill.w-55{width:55%}
.bar-fill.w-56{width:56%}
.bar-fill.w-57{width:57%}
.bar-fill.w-58{width:58%}
.bar-fill.w-59{width:59%}
.bar-fill.w-60{width:60%}
.bar-fill.w-61{width:61%}
.bar-fill.w-62{width:62%}
.bar-fill.w-63{width:63%}
.bar-fill.w-64{width:64%}
.bar-fill.w-65{width:65%}
.bar-fill.w-66{width:66%}
.bar-fill.w-67{width:67%}
.bar-fill.w-68{width:68%}
.bar-fill.w-69{width:69%}
.bar-fill.w-70{width:70%}
.bar-fill.w-71{width:71%}
.bar-fill.w-72{width:72%}
.bar-fill.w-73{width:73%}
.bar-fill.w-74{width:74%}
.bar-fill.w-75{width:75%}
.bar-fill.w-76{width:76%}
.bar-fill.w-77{width:77%}
.bar-fill.w-78{width:78%}
.bar-fill.w-79{width:79%}
.bar-fill.w-80{width:80%}
.bar-fill.w-81{width:81%}
.bar-fill.w-82{width:82%}
.bar-fill.w-83{width:83%}
.bar-fill.w-84{width:84%}
.bar-fill.w-85{width:85%}
.bar-fill.w-86{width:86%}
.bar-fill.w-87{width:87%}
.bar-fill.w-88{width:88%}
.bar-fill.w-89{width:89%}
.bar-fill.w-90{width:90%}
.bar-fill.w-91{width:91%}
.bar-fill.w-92{width:92%}
.bar-fill.w-93{width:93%}
.bar-fill.w-94{width:94%}
.bar-fill.w-95{width:95%}
.bar-fill.w-96{width:96%}
.bar-fill.w-97{width:97%}
.bar-fill.w-98{width:98%}
.bar-fill.w-99{width:99%}
.bar-fill.w-100{width:100%}
.next-second{margin:.7rem 0 0;font-size:.95rem;text-align:center}
.next-second a{color:var(--ink)}

/* Count your buyers v2 */
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0}
@media (max-width:900px){.stat-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.stat-cards{grid-template-columns:1fr}}
.stat{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--hivis);border-radius:4px;padding:1.1rem}
.stat-n{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:1.8rem;font-weight:700;
  line-height:1.05;font-variant-numeric:tabular-nums}
.stat-l{display:block;margin-top:.35rem;color:var(--steel);font-size:.93rem}
.tag-event{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:var(--hivis);color:var(--ink);padding:.1rem .4rem;border-radius:3px;text-decoration:none;margin-left:.4rem}
.tag-event:hover{background:var(--hivis-hover)}
.bar-fill.dim{background:var(--line-dim,#C2CAC6)}
td .bar{display:block;min-width:90px}
/* On a phone the bar is the least useful column; the count in your state is the most. */
@media (max-width:700px){.buyers-table .col-bar{display:none}}
.buyers-table td:first-child{min-width:9rem}
/* A portrait photograph in a wide hero: pull the crop up so the face survives. */
.hero-photo.portrait{object-position:center 22%}
/* Photographs below a hero, with nothing written over them: no overlay, full brightness. */
.ribbon img{max-height:300px}
/* The six-trade strip is six narrow panels. Cropping it cuts heads off, so on a phone it keeps its
   own proportions and simply gets shorter. */
.ribbon.strip img{object-position:center}
@media (max-width:767px){.ribbon.strip img{max-height:none}.ribbon img{max-height:200px}}
/* A portrait photograph in a wide ribbon: crop to the upper body, not the floor. */
.ribbon img.tall{object-position:center 18%}

/* Two ways to get in front of buyers */
.offers{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.5rem;align-items:start}
@media (max-width:860px){.offers{grid-template-columns:1fr}}
.offer{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--line);
  border-radius:4px;padding:1.4rem;display:flex;flex-direction:column;gap:.7rem}
.offer h3{margin:0;font-size:1.3rem;line-height:1.2}
.offer p{margin:0}
.offer-eyebrow{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--hivis-text)}
.offer-note{font-weight:700}
.offer .btn{align-self:flex-start;margin-top:auto}
/* The buyer brief is the scarcer thing, so it carries the weight. */
.offer-heavy{background:var(--ink);color:var(--white);border-color:var(--hivis);border-top-color:var(--hivis)}
.offer-heavy .offer-eyebrow{color:var(--hivis)}
@media (max-width:767px){.offer .btn{align-self:stretch}}

.stat-cards.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.stat-cards.three{grid-template-columns:1fr}}

/* ==========================================================================
   Copy & layout fixes v8 (23 September 2026)
   ========================================================================== */

/* Header: Sign in is a visible text link on a phone, not buried in the menu. The wordmark gives up
   the room for it — it is the one thing on the bar nobody needs to read to get somewhere. */
@media (max-width:767px){
  /* Beats `.site-head .nav a:not(.btn):not(.menu-link){display:none}` above, which is (0,4,1);
     this is (0,5,1) and later, so the link shows rather than silently losing the cascade. */
  .site-head .nav a.sign-in:not(.btn):not(.menu-link){display:inline-flex;align-items:center;min-height:40px;
    color:var(--white);font-size:.9rem;font-weight:600;text-decoration:none;white-space:nowrap}
  .site-head .nav .btn{padding:0 .75rem;font-size:.9rem}
  .site-head .brand{font-size:.95rem}
  .site-head .wrap{gap:.45rem}
}
/* At 375 the bar is 6px short of the full wordmark once Sign in joins it. The header gives up some
   of its side padding rather than clipping its own name; measured, not guessed. */
@media (max-width:389px){ .site-head .wrap{padding-left:13px;padding-right:13px} }
@media (max-width:339px){ .site-head .brand{font-size:.85rem} .site-head .nav a.sign-in{font-size:.85rem} }

/* The home page asks the explorer's two questions instead of showing three figures out of context. */
.home-ask{margin-top:1.25rem}

/* Checkout summary: the GST line and the total, so the number at Stripe is never a surprise. */
.buy-sum{margin:1.25rem 0;padding:0;border-top:1px solid var(--line)}
.buy-sum>div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line)}
.buy-sum dt{margin:0;color:var(--steel)}
.buy-sum dd{margin:0;font-variant-numeric:tabular-nums}
.buy-sum .buy-total dt,.buy-sum .buy-total dd{font-weight:700;color:inherit;font-size:1.1rem}

/* The other way in, given the same weight as the form above it rather than a footnote. */
.alt-action{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.alt-label{margin:0 0 .6rem;color:var(--steel)}
.btn-block{display:flex;width:100%}
.alt-top{margin:0 0 1.25rem;color:var(--steel)}
.btn-row-even .btn{flex:1 1 0;min-width:11rem}

/* Workspace switcher and team (v9 accounts). Existing tokens only. */
.ws-chip{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--muted-dk);border:1px solid #33414C;border-radius:4px;padding:.3rem .6rem}
.ws-chip:hover{color:var(--white);border-color:var(--hivis)}
.ws-side{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--hivis);border-radius:3px;padding:.1rem .4rem}
.ws-list{list-style:none;margin:0;padding:0}
.ws-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.85rem 0;border-bottom:1px solid var(--line)}
.ws-row .badge{margin-left:.5rem}
.badge-buyer{background:var(--ink);color:var(--white)}
.badge-warn{background:#FDF1DC;color:#7A4B00}
@media (max-width:480px){.ws-row{align-items:flex-start;flex-direction:column;gap:.5rem}}

/* Hotfix, 27 September 2026 — two bugs found on a phone after go-live.
   Existing tokens only; no new palette, no restyle. */

/* 1. The hero photo stopped filling the hero when images were wrapped in <picture> for AVIF and
      WebP: `.hero-full>.hero-photo` is a direct-child rule, and the wrapper broke it. The photo
      became an ordinary flex item taking most of the width, squeezing the text into a narrow
      column that wrapped mid-word. `display:contents` puts the image back in the hero's own flow,
      and the extra selector matches it there. */
.hero-full>picture{display:contents}
.hero-full>picture>.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* 2. The fee table was invisible on the home page: the generic `table` rule paints a white
      background, and inside `.offer-heavy` the text is white. White on white. The table sits on the
      dark card, so it should carry no background of its own. */
.offer-heavy .price-table{background:transparent}
.offer-heavy .price-table th,.offer-heavy .price-table td{color:var(--white);border-bottom-color:rgba(255,255,255,.22)}
.offer-heavy .price-table td{text-align:right;font-weight:700}
.offer-heavy .price-table th{text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--white);border-bottom-width:1px}

/* 3. A numbered step rendered one word per line on a phone. Each <li> was a two-column grid —
      2.6rem for the number, the rest for the text — and the body text sat beside the <strong> as a
      bare text node. CSS Grid wraps a run of text in an anonymous grid item, so the body was
      auto-placed into the next free cell, which is the 2.6rem number column. At 390px that column
      is about four characters wide.
      The number is a marker, not a column the text can fall into, so it is positioned out of the
      flow and the text keeps the whole line. This also fixes the 2FA setup list, whose <li>s mix
      text and <strong> the same way. `.steps.wide` stacks its number instead and is left alone. */
.steps:not(.wide) li{display:block;position:relative;padding-left:2.6rem}
.steps:not(.wide) li::before{position:absolute;left:0;top:.85rem}
.steps .step-body{display:block;margin-top:.15rem}

/* 4. The admin dashboard and the meeting flow. Brief of 28 September 2026, Part B.
      Phone first, because the brief asks for it and because the dashboard is the thing most likely
      to be opened standing up: the tiles are a single column until there is room for two. */
.tiles{display:grid;grid-template-columns:1fr;gap:.75rem;margin:.75rem 0 0}
@media (min-width:560px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.tiles{grid-template-columns:repeat(4,1fr)}}
.tile{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.1rem;background:var(--white);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}
a.tile:hover{border-color:var(--ink)}
.tile-n{font-size:2rem;font-stretch:118%;font-weight:800;line-height:1}
.tile-l{font-size:.95rem;color:var(--steel)}
.tile-note{font-size:.8rem;color:var(--steel)}
/* Something needing a decision is the only thing that gets colour. If everything is highlighted,
   nothing is. */
.tile-warn{border-left:4px solid var(--hivis-deep)}

/* A label-and-value list, for the detail panes. */
.kv{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:.5rem 0 0}
.kv dt{color:var(--steel);font-size:.9rem}
.kv dd{margin:0}

/* Text a person typed, kept as they typed it. */
.pre{white-space:pre-wrap}

/* The seller's list of offers and meetings. */
.opp-list{list-style:none;padding:0;margin:.5rem 0 0}
.opp-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid var(--line)}

.mt-l{margin-top:2rem}

/* Backup codes, shown once. Monospaced and widely spaced, because these get read out loud and
   written on paper — see src/services/backup-codes.ts for why the alphabet excludes 0/O and 1/I. */
.codes{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:1fr;gap:.4rem}
@media (min-width:480px){.codes{grid-template-columns:1fr 1fr}}
.codes li{font-family:var(--mono,ui-monospace,monospace);font-size:1.05rem;letter-spacing:.06em;padding:.5rem .7rem;background:var(--paper,#F4F6F7);border:1px solid var(--line);border-radius:6px}

/* "What else does your business buy?" (build queue items 7 and 8). */
.else-buy { margin-top: 1.5rem; }

/* The public directory (build queue item 13). */
.dir-search { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: .75rem; align-items: end; margin-bottom: 1rem; }
.dir-layout { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; align-items: start; }
.dir-filters fieldset { border: 0; margin: 0; padding: 1.25rem 0; border-top: 1px solid var(--line); }
.dir-filters legend { padding: 0 0 .5rem; font-weight: 600; }
.facets { list-style: none; margin: 0; padding: 0; }
.facets a { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; text-decoration: none; color: inherit; }
.facets a:hover { text-decoration: underline; }
.facets a.on { font-weight: 600; }
.facets .cnt { margin-left: auto; font-size: .8rem; color: var(--steel); }
.dir-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .75rem; border-bottom: 1px solid var(--line); padding-bottom: .6rem; }
.dir-sort { display: flex; gap: .75rem; align-items: baseline; flex-wrap: wrap; }
.dir-sort .sort { font-size: .9rem; }
.dir-sort .sort.on { font-weight: 600; text-decoration: underline; }
.dir-list { list-style: none; margin: 0; padding: 0; }
.dir-row { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); align-items: flex-start; }
.dir-init { flex: 0 0 40px; height: 40px; border-radius: 4px; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 700; }
.dir-body { flex: 1 1 auto; min-width: 0; }
.dir-name { margin: 0 0 .2rem; font-size: 1.05rem; }
.dir-sum { margin: .2rem 0; }
.dir-act { flex: 0 0 auto; text-align: right; }
.tag-checked { display: inline-block; padding: .05rem .4rem; border: 1px solid var(--line); border-radius: 3px; font-size: .75rem; font-weight: 500; }
.dir-elsewhere a { display: inline-block; margin: 0 .75rem .4rem 0; }
@media (max-width: 800px) {
  .dir-search { grid-template-columns: 1fr; }
  .dir-layout { grid-template-columns: 1fr; }
  .dir-row { flex-wrap: wrap; }
  .dir-act { text-align: left; width: 100%; }
}

/* The Business Profile editor and the claim flow (build queue items 16 and 20).
   Named .prog, not .steps: .steps is the public numbered-steps component defined at the top of this
   file, and a second rule for it down here silently overrode the numbering on /how-it-works. Found
   in Andrew's copy review, 28 September 2026. tools/lint-css.mjs now fails on a redefinition. */
.prog { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; padding: 0; font-size: .85rem; }
.prog li { padding: .25rem .6rem; border: 1px solid var(--line); border-radius: 4px; color: var(--steel); }
.prog li.on { border-color: var(--ink); color: var(--ink); font-weight: 600; }
.prog li.done { color: var(--steel); border-color: var(--line); }
.lockish { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--steel); border: 1px solid var(--line); border-radius: 3px; padding: 0 .3rem; }
.code-block { background: var(--paper, #F4F6F7); border: 1px solid var(--line); padding: .75rem; overflow-x: auto; font-size: .85rem; }
.cat-list { list-style: none; margin: 0; padding: 0; }
.cat-list li { padding: .4rem 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; }
.cat-label { font-size: .75rem; padding: 0 .35rem; border: 1px solid var(--line); border-radius: 3px; color: var(--steel); }
.cat-label.on { border-color: var(--ink); color: var(--ink); }
.linkish { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.prose h2 { margin-top: 1.5rem; }

/* The two-step buyer form and the new home/for-suppliers sections.
   Andrew's copy review, 28 September 2026, items 11-13. Built from the existing tokens; no new
   palette, fonts or icons. `.spend-row` had no rule at all before this — the label and its select
   sat on one line and wrapped badly at 375px. */
.spend-rows { display: grid; gap: .75rem; margin-top: .5rem; }
.spend-row { display: grid; gap: .25rem; }
.spend-row select { width: 100%; }
.tick-label { font-weight: 600; }
@media (min-width: 620px) {
  .spend-row { grid-template-columns: 1fr minmax(12rem, 18rem); align-items: center; gap: .75rem; }
}
.next-step { margin: 1rem 0 .75rem; padding-left: .75rem; border-left: 3px solid var(--hivis); font-weight: 600; }

/* The home page as Andrew set it out on 29 September 2026: a search box, two doors, and a tile row
   of the categories we broker. `.who-grid` had no rule at all before today — the value cards on
   home, /for-buyers and /for-suppliers were stacking instead of sitting side by side, on the live
   site, and nothing in the markup could show it. */
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.who-grid.three{grid-template-columns:repeat(3,1fr)}
.who-grid h3{margin:0 0 .4rem;font-size:1.15rem}
.who-grid p{margin:0 0 .5rem}
@media (max-width:860px){.who-grid,.who-grid.three{grid-template-columns:1fr;gap:1.5rem}}

.home-search{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end;margin:0 0 .75rem}
.home-search .field{margin:0}
.home-search .field span{display:block;font-weight:700;font-size:1.05rem;margin-bottom:.35rem}
@media (max-width:520px){.home-search{grid-template-columns:1fr}}

.doors{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.door{display:flex;flex-direction:column;gap:.4rem;padding:1.5rem;background:var(--white);
  border:1px solid var(--line);border-left:6px solid var(--hivis);border-radius:4px;text-decoration:none;color:var(--ink)}
.door:hover{border-left-color:var(--hivis-deep)}
.door strong{font-size:1.2rem;font-stretch:115%}
.door span{color:var(--steel)}
@media (max-width:620px){.doors{grid-template-columns:1fr}}

.cat-tiles{margin-bottom:1.25rem}

/* Progressive disclosure on the buyer form, without JavaScript.
   Andrew's instruction, 29 September 2026, point 7: ticking a category reveals its spend and timing
   directly beneath it. `:has()` does the whole job, so there is no script here at all — not even an
   enhancement. A browser too old for `:has()` simply shows every field, which is the form as it was
   yesterday: longer, but complete and submittable. Failing towards visible is the only safe
   direction; failing towards hidden would put fields out of reach. */
.reveals{display:grid;gap:.25rem}
.reveal-row{padding:.5rem .6rem;border:1px solid transparent;border-radius:4px}
.reveal-row:has(input[type="checkbox"]:checked){border-color:var(--line);background:var(--white)}
.reveal{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.5rem 0 .25rem 1.9rem}
.reveal-row:has(input[type="checkbox"]:not(:checked)) .reveal{display:none}
@media (max-width:620px){.reveal{grid-template-columns:1fr;margin-left:1.9rem}}

/* The example company page's sections (29 September 2026, point 3): a cover band, a logo, the
   per-category detail lines and the checked panel. Built from the existing components — .ribbon is
   the same photo band the home page uses, and .card is the same card as everywhere else. */
.profile-cover img{width:100%;height:auto;max-height:320px;object-fit:cover}
.profile-logo{margin:0 0 1rem}
.profile-logo img{width:96px;height:96px;object-fit:cover;border:1px solid var(--line);border-radius:4px}
.cat-detail{display:block;font-size:.92rem;color:var(--steel);margin-top:.2rem}
.checked-panel{margin:1.5rem 0}
.checked-panel h2{margin:0 0 .75rem;font-size:1.15rem}
.checked-panel .kv{margin:0}

/* "Describe what you need" (29 September 2026, point 8). Same shape as the plain search below it,
   one field wider, so the two read as a pair rather than as two different ideas. */
.describe-search{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end;margin:0 0 .5rem}
.describe-search .field{margin:0}
.describe-search .field span{display:block;font-weight:700;margin-bottom:.35rem}
@media (max-width:520px){.describe-search{grid-template-columns:1fr}}


/* ==========================================================================
   Directory launch — brief v1 and docs/briefs/launch-design/, 29 September 2026.
   The shell (header, menu, footer) and the shared pieces the nine screens are built from.
   Mobile first: the phone layout is the base, and the desktop design is layered on at 900px.
   ========================================================================== */
.lw{max-width:1280px;margin:0 auto;padding:0 20px}
.disp{font-family:var(--display);font-stretch:118%;font-weight:700;letter-spacing:-.025em;margin:0;line-height:1.02}
.lmono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.lcard{background:var(--white);border:1px solid var(--l-line);border-radius:10px}
.lbtn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:6px;font-weight:600;font-size:16px;text-decoration:none;border:0;cursor:pointer;font-family:var(--display)}
.lbtn-hivis{background:var(--hivis);color:var(--ink)}
.lbtn-hivis:hover{background:var(--hivis-hover);color:var(--ink)}
.lbtn-ink{background:var(--ink);color:var(--white)}
.lbtn-ink:hover{background:var(--ink-2);color:var(--white)}
.lbtn-line{border:1.5px solid var(--ink);color:var(--ink);background:transparent}
.lbtn-line:hover{background:var(--l-paper)}
.lbtn-block{display:flex;width:100%}
.ltick{color:var(--l-green);font-weight:700}
.lmuted{color:var(--l-muted)}
.lchecked{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--l-green);background:var(--l-green-bg);border-radius:4px;padding:6px 10px}

/* Header. Light by default; `.dark` on the home page only, where it runs into the navy hero. */
.pub-head{background:var(--white);color:var(--ink);border-bottom:1px solid var(--l-line);position:sticky;top:0;z-index:5}
.pub-head .lw{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px}
.pub-head .brand{color:var(--ink);font-size:17px}
.pub-nav{display:none}
.pub-nav a{text-decoration:none;font-size:15px;color:var(--l-body);padding-bottom:4px;border-bottom:2px solid transparent}
.pub-nav a:hover{color:var(--ink)}
.pub-nav a[aria-current="page"]{color:var(--ink);font-weight:700;border-bottom-color:var(--hivis)}
.pub-actions{display:flex;align-items:center;gap:14px}
.pub-signin{text-decoration:none;font-size:15px;color:var(--ink)}
.pub-claim{display:none}
.pub-menu-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--l-grey);border-radius:6px;color:var(--ink);cursor:pointer}
.pub-head.dark{background:var(--ink);color:var(--white);border-bottom-color:#1F2A36}
.pub-head.dark .brand,.pub-head.dark .pub-signin{color:var(--white)}
.pub-head.dark .pub-nav a{color:var(--l-line)}
.pub-head.dark .pub-nav a:hover,.pub-head.dark .pub-nav a[aria-current="page"]{color:var(--white)}
.pub-head.dark .pub-menu-btn{border-color:#56616D;color:var(--white)}
.pub-menu{background:var(--ink);border-bottom:1px solid var(--l-ink4)}
.pub-menu[hidden]{display:none}
.pub-menu a{display:block;padding:14px 0;color:var(--white);text-decoration:none;font-weight:600;border-bottom:1px solid var(--l-ink4)}
.pub-menu a:last-child{border-bottom:0}
@media (min-width:900px){
  .pub-head .lw{min-height:76px}
  .pub-head .brand{font-size:20px}
  .pub-nav{display:flex;gap:36px;align-items:center}
  .pub-menu-btn,.pub-menu{display:none}
  .pub-head.dark .pub-claim{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid #56616D;border-radius:6px;color:var(--white);font-size:15px;font-weight:600;text-decoration:none}
  .pub-head.dark .pub-claim:hover{border-color:var(--l-grey)}
}

/* Footer, four columns on a desktop, two on a phone. */
.pub-foot{background:var(--ink);color:var(--l-soft);padding:48px 0 28px;font-size:14px}
.pub-foot a{color:var(--l-soft);text-decoration:none}
.pub-foot a:hover{color:var(--white);text-decoration:underline}
.pub-foot-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px}
.pub-foot-brand{grid-column:1/-1}
.pub-foot-brand .brand{color:var(--white);font-size:18px}
.pub-foot-brand p{margin:12px 0 0;max-width:320px;line-height:1.6}
.pub-foot-col{display:flex;flex-direction:column;gap:10px}
.pub-foot-col h2{color:var(--white);font-size:14px;font-weight:600;font-stretch:100%;letter-spacing:0;margin:0 0 2px}
.pub-foot-drafts{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:28px;font-size:13px}
.pub-foot-base{border-top:1px solid var(--l-ink4);margin-top:36px;padding-top:22px;font-size:13px;display:flex;flex-direction:column;gap:8px}
.pub-foot-base p{margin:0}
@media (min-width:900px){
  .pub-foot{padding:64px 0 32px}
  .pub-foot-cols{grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
  .pub-foot-brand{grid-column:auto}
  .pub-foot-base{flex-direction:row;justify-content:space-between;gap:24px}
}

/* Show-on-one-size helpers: where the phone and desktop designs say different things. */
.only-phone{display:inline}
.only-desk{display:none}
section.only-desk,div.only-desk{display:none}
@media (min-width:900px){.only-phone{display:none}.only-desk{display:inline}section.only-desk,div.only-desk{display:block}}

/* ---- Home: Main.dc.html (desktop), HomeMobile.dc.html (phone) ---- */
.h-hero{position:relative;background:var(--ink);color:var(--white);overflow:hidden}
.h-hero>picture{display:contents}
.h-hero>picture>.h-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* The design's gradient: strong navy under the words, lighter on the right where the photo shows. */
.h-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,32,.97) 0%,rgba(15,23,32,.9) 46%,rgba(15,23,32,.62) 100%)}
.h-hero-grid{position:relative;z-index:1;padding-top:36px;padding-bottom:40px}
.h-hero-copy{display:flex;flex-direction:column;gap:20px;min-width:0}
.h-eyebrow{color:var(--l-soft);display:flex;align-items:center;gap:10px;margin:0;font-size:11px}
.h-eyebrow-count{display:none}
.h-dot{width:8px;height:8px;border-radius:50%;background:var(--hivis);flex:0 0 auto}
.h-title{font-size:46px;line-height:1;color:var(--white);overflow-wrap:break-word}
.h-title-hi{color:var(--hivis)}
.h-sub{margin:0;font-size:16px;line-height:1.55;color:var(--l-grey);max-width:560px}
.h-search{display:flex;flex-direction:column;gap:6px;background:var(--white);border-radius:8px;padding:6px}
.h-search label{display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--l-muted)}
.h-search input,.h-search select{border:0;outline:none;font:inherit;font-size:16px;color:var(--ink);background:transparent;width:100%;min-height:48px;padding:0}
.h-search input:focus-visible,.h-search select:focus-visible{outline:3px solid var(--hivis);outline-offset:2px}
.h-search-where{display:none!important}
.h-search-go{min-height:48px;width:100%}
.h-actions{display:flex;flex-direction:column;gap:16px;align-items:stretch;text-align:center}
.h-example-link{color:var(--white);font-size:15px;font-weight:500;text-decoration:none}
.h-example-link:hover{color:var(--hivis)}
.h-small{margin:0;font-size:14px;color:var(--l-soft);line-height:1.55}
.h-small a{color:var(--white);text-decoration:none;border-bottom:1px solid #56616D}
.h-comp{display:none}

.h-phone-example{padding-top:20px;padding-bottom:8px}
.h-pe{display:block;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 16px 30px rgba(15,23,32,.10)}
.h-pe-cover{display:block;height:84px;background:#2F5D50}
.h-pe-cover img{width:100%;height:100%;object-fit:cover}
.h-pe-body{display:flex;flex-direction:column;gap:8px;padding:0 18px 18px}
.h-pe-body strong{font-size:18px}
.h-pe-line{font-size:13px}
.h-pe-checked{font-size:12px;font-weight:600;color:var(--l-green)}
.h-pe-tag{font-size:9px;color:var(--l-muted)}
.h-pe-mark{margin-top:-26px}

.h-proof{background:var(--white);border-bottom:1px solid var(--l-line)}
.h-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.h-proof-grid>div{padding:22px 16px 22px 0;display:flex;flex-direction:column;gap:6px}
.h-proof-grid>div:nth-child(even){border-left:1px solid var(--l-line);padding-left:16px}
.h-proof-grid p{margin:0}
.h-proof-grid .disp{font-size:26px}
.h-proof-grid p:not(.disp){font-size:13px;color:var(--l-muted);line-height:1.45}

.h-why{background:var(--white);padding:28px 0}
.h-why-head{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}
.h-why-head h2{font-size:32px;line-height:1.05;max-width:640px}
.h-why-head p{margin:0;font-size:15px;line-height:1.6;color:var(--l-body);max-width:420px;display:none}
.h-why-grid{display:grid;grid-template-columns:1fr;gap:14px}
.h-why-card{padding:20px;display:flex;flex-direction:column;gap:8px}
.h-why-card h3{font-size:19px;font-weight:700;font-stretch:110%;line-height:1.2;margin:0;letter-spacing:0}
.h-why-card>p:not(.h-why-num){margin:0;font-size:14px;line-height:1.55;color:var(--l-body)}
.h-why-num{margin:0;color:var(--hivis-text)}
.h-why-dark{background:var(--ink);border-color:var(--ink);color:var(--white)}
.h-why-dark>p:not(.h-why-num){color:var(--l-grey)}
.h-why-dark .h-why-num{color:var(--hivis)}
.h-facts,.h-review,.h-complete{display:none}
.h-facts{list-style:none;margin:auto 0 0;padding:16px;background:var(--l-paper);border-radius:8px;flex-direction:column;gap:10px;font-size:14px}
.h-facts li{display:flex;justify-content:space-between}
.h-review{margin-top:auto;background:var(--l-ink3);border:1px solid var(--l-ink4);border-radius:8px;padding:16px;flex-direction:column;gap:10px}
.h-review p{margin:0}
.h-review-top{display:flex;justify-content:space-between;color:var(--l-soft)}
.h-review-top .lmono{font-size:10px}
.h-review-open{color:var(--hivis)}
.h-review-title{font-size:15px;font-weight:600}
.h-review-meta{font-size:13px;color:var(--l-soft)}
.h-review-note{font-size:13px;color:var(--l-grey);border-top:1px solid var(--l-ink4);padding-top:10px}
.h-complete{margin-top:auto;background:var(--l-paper);border-radius:8px;padding:16px;flex-direction:column;gap:12px}
.h-complete p{margin:0;font-size:13px}
.h-complete-top{display:flex;justify-content:space-between;font-size:14px!important}
.lbar{display:block;height:8px;background:var(--l-line);border-radius:4px;overflow:hidden}
.lbar-fill{display:block;height:8px;background:var(--ink)}

.h-fvp{background:var(--l-paper);padding:110px 0}
.h-fvp-grid{display:grid;grid-template-columns:460px 1fr;gap:80px;align-items:center}
.h-fvp-copy{display:flex;flex-direction:column;gap:24px}
.h-fvp-copy p{margin:0}
.h-fvp-copy h2{font-size:52px;line-height:1.03}
.h-fvp-copy>p:not(.lmono){font-size:17px;line-height:1.6;color:var(--l-body)}
.h-ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:15px}
.h-ticks li::before{content:"✓";font-weight:700;margin-right:12px}
.h-underline{font-size:16px;font-weight:600;border-bottom:2px solid var(--hivis);align-self:flex-start;padding-bottom:3px;text-decoration:none;color:var(--ink)}
.h-minis{display:grid;grid-template-columns:300px 1fr;gap:24px;align-items:end}
.h-mini{display:flex;flex-direction:column;gap:12px}
.h-mini>p{margin:0}
.h-mini-free{padding:20px;display:flex;flex-direction:column;gap:12px}
.h-mini-free strong{font-size:17px}
.h-mini-free .lmuted{font-size:13px}
.h-mini-checked{font-size:12px;font-weight:600;color:var(--l-green)}
.h-mini-rule{display:block;height:1px;background:var(--l-line)}
.h-mini-line{display:block;height:10px;background:#EEF0F2;border-radius:3px}
.h-mini-line.w80{width:80%}.h-mini-line.w60{width:60%}
.h-mini-btn{display:flex;align-items:center;justify-content:center;height:36px;border-radius:6px;border:1px solid var(--l-grey);font-size:13px;font-weight:600}
.h-mini-btn-ink{height:40px;background:var(--ink);color:var(--white);border-color:var(--ink);font-size:14px}
.h-mini-profile{overflow:hidden;box-shadow:0 20px 40px rgba(15,23,32,.10)}
.h-mini-cover{display:block;height:120px;background:var(--l-ink3)}
.h-mini-cover img{width:100%;height:100%;object-fit:cover}
.h-mini-body{display:flex;flex-direction:column;gap:12px;padding:0 22px 22px}
.h-mini-body strong{font-size:20px}
.h-mini-mark{margin-top:-29px}
.h-mini-summary{font-size:13px;color:var(--l-body);line-height:1.55}
.h-mini-chips{display:flex;flex-wrap:wrap;gap:6px}
.h-mini-chips span{font-size:12px;background:var(--l-paper);border:1px solid var(--l-line);border-radius:4px;padding:4px 8px}
.h-mini-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.h-mini-photos img{height:64px;width:100%;object-fit:cover;border-radius:6px}

.h-steps{background:var(--l-paper);padding:28px 0}
.h-steps h2{font-size:28px;margin-bottom:14px}
.h-steps-grid{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink);display:flex;flex-direction:column}
.h-steps-grid li{display:grid;grid-template-columns:30px 1fr;column-gap:14px;padding:16px 0;border-bottom:1px solid var(--l-line)}
.h-steps-grid li:last-child{border-bottom:0}
.h-steps-grid strong{grid-column:2;font-size:16px}
.h-steps-grid li>span:not(.h-step-n){grid-column:2;font-size:15px;line-height:1.55;color:var(--l-body)}
.h-step-n{grid-row:1/3;font-size:26px;color:var(--hivis);-webkit-text-stroke:1px var(--ink)}

.h-cats{background:var(--white);padding:28px 0}
.h-cats-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.h-cats-head h2{font-size:26px}
.h-cats-head a{font-size:15px;font-weight:600;text-decoration:none;color:var(--ink)}
.h-cats-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.h-cat{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:var(--ink);height:100%}
.h-cat>picture{display:block}
.h-cat-photo{height:96px;width:100%;object-fit:cover;display:block}
.h-cat-name{padding:12px 14px 2px;font-size:15px;font-weight:600}
.h-cat-count{padding:0 14px 14px;color:var(--l-muted);font-size:10px}
.h-cat:hover .h-cat-name{text-decoration:underline}

.h-found{background:var(--ink);color:var(--white);padding:36px 0}
.h-found-grid{display:flex;flex-direction:column;gap:24px}
.h-found-copy{display:flex;flex-direction:column;gap:14px}
.h-found-copy p{margin:0}
.h-found-eyebrow{color:var(--hivis)}
.h-found-copy h2{font-size:34px;line-height:1.02}
.h-found-copy>p:not(.lmono){font-size:15px;line-height:1.55;color:var(--l-grey);max-width:620px}
.h-found-actions{display:flex;flex-direction:column;gap:14px}
.h-found-note{font-size:14px;color:var(--l-soft)}
.h-found-card{border:1px solid var(--l-ink4);border-radius:10px;padding:24px;display:flex;flex-direction:column;gap:14px;background:var(--l-ink3)}
.h-found-card p{margin:0}
.h-found-price{display:flex;align-items:baseline;gap:8px}
.h-found-price .disp{font-size:40px}
.h-found-price span:not(.disp){color:var(--l-soft)}
.h-found-inc{font-size:14px;color:var(--l-soft);margin-top:-8px!important;padding-bottom:14px;border-bottom:1px solid var(--l-ink4)}
.h-found-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--l-line)}

.h-buyers{background:var(--white);padding:32px 0;border-bottom:1px solid var(--l-line)}
.h-buyers-row{display:flex;flex-direction:column;gap:16px}
.h-buyers-row p{margin:0}
.h-buyers-row h2{font-size:22px;margin:8px 0}
.h-buyers-row div>p:not(.lmono){font-size:15px;line-height:1.55;color:var(--l-body)}

/* Company marks: a logo, or the initial tile. */
.mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:800;border-radius:10px;overflow:hidden;border:3px solid var(--white)}
.mark-sm{width:44px;height:44px;border-radius:8px;font-size:17px;border-width:0}
.mark-md{width:56px;height:56px;font-size:20px}
.mark-lg{width:68px;height:68px;font-size:24px}
.mark-xl{width:96px;height:96px;font-size:32px;border-radius:14px;border-width:4px}
.mark-profile{background:var(--ink);color:var(--hivis)}
.mark-claimed{background:var(--l-line);color:var(--l-body)}
.mark-listed{background:var(--l-paper);color:var(--l-muted);border:1px solid var(--l-line)}
.mark-img{background:var(--white)}
.mark-img img{width:100%;height:100%;object-fit:contain}

@media (min-width:620px){
  .h-actions{flex-direction:row;align-items:center;gap:26px;text-align:left}
  .h-cats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
  .h-hero{min-height:760px}
  .h-hero-grid{padding-top:88px;padding-bottom:40px}
  .h-hero-copy{gap:30px}
  .h-eyebrow{font-size:12px}
  .h-eyebrow-count{display:inline}
  .h-title{font-size:clamp(64px,6.7vw,96px);line-height:.96}
  .h-sub{font-size:20px}
  .h-search{flex-direction:row;height:64px;align-items:stretch;max-width:620px}
  .h-search label{padding:0 14px}
  .h-search-what{flex:1 1 auto}
  .h-search-where{display:flex!important;width:190px;border-left:1px solid var(--l-line);margin:8px 0;padding-left:14px!important}
  .h-search-where select{min-height:0;color:var(--l-body);font-size:15px;cursor:pointer}
  .h-search-go{width:auto;min-height:52px;padding:0 24px;font-size:15px}
  .h-example-link{font-size:16px;border-bottom:1px solid #56616D;padding-bottom:3px}
  .h-comp p{margin:0}
  .h-comp-review{align-self:flex-end;width:330px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;background:var(--l-ink3);border-color:var(--l-ink4)}
  .h-comp-review-top{color:var(--hivis);display:flex;align-items:center;gap:8px}
  .h-comp-review-title{color:var(--white);font-size:17px;font-weight:600}
  .h-comp-review-meta{color:var(--l-soft);font-size:14px}
  .h-comp-profile{align-self:flex-start;width:100%;max-width:470px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);color:var(--ink)}
  .h-comp-cover{display:block;height:110px;position:relative;background:var(--l-ink3)}
  .h-comp-cover img{width:100%;height:100%;object-fit:cover}
  .h-comp-tag{position:absolute;top:14px;right:14px;background:var(--white);color:var(--ink);padding:4px 8px;border-radius:4px;font-size:10px}
  .h-comp-body{padding:0 24px 24px;display:flex;flex-direction:column;gap:14px}
  .h-comp-mark{margin-top:-34px;background:#2F5D50;color:var(--white)}
  .h-comp-name{font-size:22px;font-weight:700;font-stretch:110%}
  .h-comp-line{font-size:14px;margin-top:4px!important}
  .h-comp-body .lchecked{align-self:flex-start}
  .h-comp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--l-line);border-bottom:1px solid var(--l-line)}
  .h-comp-stats div{padding:12px 0;display:flex;flex-direction:column}
  .h-comp-stats div+div{border-left:1px solid var(--l-line);padding-left:14px}
  .h-comp-stats strong{font-size:20px}
  .h-comp-stats span{font-size:12px;color:var(--l-muted)}
  .h-comp-buttons{display:flex;gap:10px}
  .h-comp-buttons span{flex:1 1 0;height:42px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}
  .h-comp-btn-ink{background:var(--ink);color:var(--white)}
  .h-comp-btn-line{border:1px solid var(--l-grey)}
  .h-comp-ai{align-self:flex-end;width:380px;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 50px rgba(0,0,0,.35);color:var(--ink)}
  .h-comp-ai-tag{font-size:10px}
  .h-comp-ai-q{font-size:14px;color:var(--l-body);background:var(--l-paper);border-radius:6px;padding:10px 12px}
  .h-comp-ai-a{font-size:14px;line-height:1.55}
  .h-comp-ai-src{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;font-size:12px;color:var(--l-body);border:1px solid var(--l-line);border-radius:20px;padding:4px 10px}
  .h-comp-ai-sq{width:10px;height:10px;background:var(--hivis);border-radius:2px}

  .h-proof-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .h-proof-grid>div{min-height:150px;justify-content:center;padding:0 30px}
  .h-proof-grid>div:first-child{padding-left:0}
  .h-proof-grid>div+div{border-left:1px solid var(--l-line)}
  .h-proof-grid .disp{font-size:34px}
  .h-proof-grid p:not(.disp){font-size:14px}

  .h-why{padding:120px 0 110px}
  .h-why-head{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-bottom:60px}
  .h-why-head h2{font-size:56px}
  .h-why-head p{display:block;font-size:17px}
  .h-why-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .h-why-card{padding:30px;gap:18px}
  .h-why-card h3{font-size:24px}
  .h-why-card>p:not(.h-why-num){font-size:15px;line-height:1.6}
  .h-facts,.h-review,.h-complete{display:flex}

  .h-steps{background:var(--white);padding:120px 0 100px}
  .h-steps h2{font-size:52px;margin-bottom:56px}
  .h-steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
  .h-steps-grid li{display:flex;flex-direction:column;gap:12px;padding:28px 0 0;border-bottom:0}
  .h-steps-grid strong{font-size:22px}
  .h-steps-grid li>span:not(.h-step-n){font-size:16px;line-height:1.6}
  .h-step-n{font-size:44px}

  .h-cats{padding:20px 0 120px}
  .h-cats-head{margin-bottom:36px}
  .h-cats-head h2{font-size:40px}
  .h-cats-head a{font-size:16px}
  .h-cats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
  .h-cat-photo{height:150px}
  .h-cat-name{padding:16px 18px 4px;font-size:18px}
  .h-cat-count{padding:0 18px 18px;font-size:11px}

  .h-found{padding:100px 0}
  .h-found-grid{display:grid;grid-template-columns:1fr 460px;gap:80px;align-items:center}
  .h-found-copy{gap:22px}
  .h-found-copy h2{font-size:60px;line-height:1}
  .h-found-copy>p:not(.lmono){font-size:18px;line-height:1.6}
  .h-found-actions{flex-direction:row;align-items:center;gap:20px}
  .h-found-card{padding:30px}
  .h-found-price .disp{font-size:48px}

  .h-buyers{padding:90px 0}
  .h-buyers-row{flex-direction:row;justify-content:space-between;align-items:center}
  .h-buyers-row>div{max-width:760px;display:flex;flex-direction:column;gap:12px}
  .h-buyers-row h2{font-size:40px;margin:0}
  .h-buyers-row div>p:not(.lmono){font-size:17px;line-height:1.6}
}
/* The cover is positioned (for its "Example page" tag), which lifts it above an unpositioned body —
   so the mark pulled up over it disappeared behind the photo. Positioning the body puts it back on top. */
.h-comp-body,.h-pe-body,.h-mini-body{position:relative}

/* Free month and billing (launch brief section 2)
   The Start-your-free-month screen, from docs/briefs/launch-design/TrialSignup.dc.html: the form on the
   left, the navy "What happens next" timeline on the right, one column on a phone. The two panel
   greys (#16212D, #2A3542) are the ones the launch designs use for a card and a rule on navy. */
.fm{display:grid;grid-template-columns:minmax(0,1fr) 560px;min-height:1000px;background:var(--white)}
.fm-main{padding:56px 100px;display:flex;flex-direction:column;gap:30px}
.fm-head{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.fm-eyebrow{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}
.fm-head h1{margin:0;font-size:50px;line-height:1.02;font-stretch:118%;font-weight:700;letter-spacing:-.025em;max-width:none}
.fm-lede{margin:0;font-size:17px;line-height:1.6;color:var(--steel);max-width:560px}
.fm-summary{border:1px solid #E3E6EA;border-radius:10px;padding:22px 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:700px}
.fm-summary>div{display:flex;flex-direction:column;gap:4px}
.fm-summary-l{font-size:12px;color:var(--steel)}
.fm-summary-v{font-size:20px;font-weight:700}
.fm-summary-note{font-size:13px;font-weight:400;color:var(--steel)}
.fm-form{display:flex;flex-direction:column;gap:18px;max-width:700px}
.fm-field{display:flex;flex-direction:column;gap:8px}
.fm-field-l{display:block;font-size:14px;font-weight:600}
.fm-field input{height:50px;border:1px solid #C9D1D6;border-radius:6px;padding:0 16px;font-size:16px}
.fm-card-note{display:flex;flex-direction:column;gap:8px}
.fm-card-note p{margin:0;min-height:50px;border:1px solid #C9D1D6;border-radius:6px;padding:13px 16px;font-size:15px;color:var(--steel)}
.fm-agree{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:var(--steel);background:var(--paper);border-radius:8px;padding:16px}
.fm-agree input{width:20px;height:20px;margin-top:2px;flex-shrink:0}
.fm-agree strong{color:var(--ink)}
.fm-submit{height:56px;font-size:17px;font-weight:700;width:100%}
.fm-fine{margin:0;font-size:13px;line-height:1.5;color:var(--steel)}
.fm-fine a{text-decoration:underline}
.fm-next{background:var(--ink);color:var(--white);padding:120px 64px 56px;display:flex;flex-direction:column;gap:34px}
.fm-next .fm-next-h{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--hivis)}
.fm-timeline{list-style:none;margin:0;padding:0}
.fm-timeline li{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:20px 0;border-top:1px solid #2A3542}
.fm-timeline li:last-child{border-bottom:1px solid #2A3542}
.fm-next .fm-when{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9AA4AE}
.fm-next .fm-sub{color:var(--muted-dk)}
.fm-change{border:1px solid #2A3542;border-radius:10px;padding:22px;background:#16212D;display:flex;flex-direction:column;gap:8px}
.fm-change p{margin:0;font-size:14px;line-height:1.55;color:var(--muted-dk)}
@media (max-width:1100px){.fm{grid-template-columns:1fr;min-height:0}.fm-next{padding:48px 40px}}
@media (max-width:620px){.fm-main{padding:32px 16px}.fm-head h1{font-size:36px}.fm-summary{grid-template-columns:1fr;gap:12px}.fm-next{padding:36px 16px}.fm-timeline li{grid-template-columns:70px 1fr}}
/* Billing: the invoice table. */
.bill-table{width:100%;border-collapse:collapse}
.bill-table th,.bill-table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line)}
/* Uploaded pictures in the owner's editor and the admin review queue (launch brief 0B). */
.img-grid{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}
.img-tile{display:flex;flex-direction:column;gap:.5rem}
.img-thumb{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:var(--paper)}
.img-meta{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
.img-upload{margin:0 0 1.25rem}
.img-review{display:block;max-width:320px;max-height:200px;object-fit:contain;border:1px solid var(--line);margin:0 0 .5rem}
/* /find — docs/briefs/launch-design/Search.dc.html (launch brief v1, section 4). One What + Where bar
   on paper, category chips with a Filters panel (a <details>, so it works without script), result
   cards in one bordered list, and a right rail. One column on a phone, the rail after the results. */
.fd-top{background:var(--l-paper);border-bottom:1px solid var(--l-line);padding:28px 0 20px}
.fd-form{display:flex;flex-direction:column;gap:16px}
.fd-bar{display:grid;grid-template-columns:1fr;gap:6px;background:var(--white);border:1px solid var(--l-grey);border-radius:8px;padding:6px}
.fd-what,.fd-where{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:52px;color:var(--l-muted)}
.fd-what input,.fd-where select{border:0;outline:none;background:transparent;font:inherit;font-size:17px;color:var(--ink);width:100%;min-height:48px;padding:0}
.fd-what:focus-within,.fd-where:focus-within{box-shadow:inset 0 -2px 0 var(--hivis)}
.fd-where{border-top:1px solid var(--l-line)}
.fd-where select{font-size:16px;appearance:none;cursor:pointer}
.fd-ico{flex:0 0 auto}
.fd-go{min-height:52px;font-size:15px}
.fd-chips{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.fd-chip-list{display:flex;gap:10px;list-style:none;margin:0;padding:0;overflow-x:auto;flex:1 1 100%;scrollbar-width:none}
.fd-chip-list li{flex:0 0 auto}
.fd-chip{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:19px;border:1px solid var(--l-grey);font-size:14px;color:var(--l-body);background:var(--white);text-decoration:none;white-space:nowrap;cursor:pointer}
.fd-chip:hover{border-color:var(--ink);color:var(--ink)}
.fd-chip.on{background:var(--ink);color:var(--white);border-color:var(--ink)}
.fd-filters{flex:1 1 100%}
.fd-filters>summary{list-style:none;font-weight:600;color:var(--ink);border-color:var(--ink)}
.fd-filters>summary::-webkit-details-marker{display:none}
.fd-panel{margin-top:12px;background:var(--white);border:1px solid var(--l-line);border-radius:10px;padding:20px;display:grid;grid-template-columns:1fr;gap:16px}
.fd-field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink);border:0;margin:0;padding:0;min-width:0}
.fd-field select,.fd-field input{height:46px;border:1px solid var(--l-grey);border-radius:6px;padding:0 12px;font:inherit;font-weight:400;font-size:15px;background:var(--white);color:var(--ink)}
.fd-checks legend{padding:0;margin-bottom:6px}
.fd-checks label{display:flex;align-items:center;gap:10px;font-weight:400;min-height:32px}
.fd-checks input{width:18px;height:18px}
.fd-cnt{color:var(--l-muted);font-size:13px}
.fd-apply{min-height:46px;font-size:15px}
.fd-describe{margin-top:14px;font-size:14px}
.fd-describe>summary{cursor:pointer;color:var(--l-body);text-decoration:underline;text-underline-offset:3px}
.fd-describe-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px}
.fd-describe-form .fd-field{flex:1 1 260px}
.fd-describe-form .lbtn{min-height:46px;font-size:15px}
.fd-read{margin:10px 0 0;font-size:14px;color:var(--l-body)}
.fd-applied{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;font-size:14px}
.fd-applied-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:16px;background:var(--white);border:1px solid var(--l-line);color:var(--ink);text-decoration:none}
.fd-underline{font-weight:600;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);align-self:flex-start}
.fd-main{padding:24px 0 56px;background:var(--white)}
.fd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:start}
.fd-results{display:flex;flex-direction:column;gap:16px;min-width:0}
.fd-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px}
.fd-count{margin:0}
.fd-count .disp{font-size:26px}
.fd-for{font-size:15px;color:var(--l-muted);margin-left:8px}
.fd-sort{margin:0;font-size:14px;color:var(--l-body)}
.fd-sort a{color:var(--l-body)}
.fd-list{list-style:none;margin:0;padding:0;border:1px solid var(--l-line);border-radius:10px;overflow:hidden}
.fd-res{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px 18px;align-items:start;padding:20px 16px;border-bottom:1px solid var(--l-line);background:var(--white)}
.fd-res:last-child{border-bottom:0}
.fd-mark{border:0}
.fd-mark.mark-listed{border:1px solid var(--l-line)}
.fd-res-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.fd-res-name{margin:0;font-size:18px;font-weight:700;line-height:1.3;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;overflow-wrap:anywhere}
.fd-res-name a{color:var(--ink);text-decoration:none}
.fd-res-name a:hover{text-decoration:underline}
.fd-tag{font-size:12px;font-weight:600;border-radius:4px;padding:4px 8px;white-space:nowrap}
.fd-tag-checked{background:var(--l-green-bg);color:var(--l-green)}
.fd-tag-name{background:var(--l-paper);color:var(--l-muted);border:1px solid var(--l-line)}
.fd-res-sum{margin:0;font-size:14px;line-height:1.5;color:var(--l-body)}
.fd-res-meta{margin:0;font-size:13px;color:var(--l-muted)}
.fd-res-act{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.fd-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:6px;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.fd-btn-ink{background:var(--ink);color:var(--white)}
.fd-btn-ink:hover{background:var(--ink-2);color:var(--white)}
.fd-btn-line{border:1px solid var(--l-grey);color:var(--ink);background:var(--white)}
.fd-btn-line:hover{border-color:var(--ink)}
.fd-btn-quiet{color:var(--l-body);padding:0 12px}
.fd-btn-quiet:hover{color:var(--ink);text-decoration:underline}
.fd-none{margin:0;padding:24px;border:1px solid var(--l-line);border-radius:10px;color:var(--l-body)}
.fd-pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:14px;color:var(--l-muted)}
.fd-pages{display:flex;gap:8px}
.fd-rank{margin:0;font-size:13px;line-height:1.55;color:var(--l-muted)}
.fd-rank a{color:var(--l-muted);text-decoration:underline}
.fd-rail{display:flex;flex-direction:column;gap:20px}
.fd-example{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:var(--ink)}
.fd-example-cover{display:block;position:relative;height:120px;background:var(--ink)}
.fd-example-cover picture,.fd-example-photo{display:block;width:100%;height:100%;object-fit:cover}
.fd-example-mark{position:absolute;left:20px;bottom:-22px;width:48px;height:48px;border:3px solid var(--white)}
.fd-example-body{display:flex;flex-direction:column;gap:6px;padding:32px 20px 20px}
.fd-example-body strong{font-size:16px}
.fd-example-body span{font-size:14px;color:var(--l-muted)}
.fd-example:hover strong{text-decoration:underline}
.fd-claim{background:var(--ink);color:var(--white);border-radius:10px;padding:24px;display:flex;flex-direction:column;gap:12px}
.fd-claim .lmono{margin:0;color:var(--hivis);font-size:11px}
.fd-claim-t{margin:0;font-size:20px;font-weight:700;line-height:1.25}
.fd-claim .lbtn{min-height:46px;font-size:16px}
.fd-rail-card{padding:24px;display:flex;flex-direction:column;gap:10px}
.fd-rail-t{margin:0;font-weight:700}
.fd-rail-p{margin:0;font-size:14px;line-height:1.55;color:var(--l-body)}
.fd-demand-h{margin:0;color:var(--l-muted);font-size:11px}
.fd-demand-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fd-demand-list li{display:flex;align-items:baseline;gap:10px;font-size:14px;color:var(--l-body)}
.fd-demand-list strong{font-size:24px;color:var(--ink)}
@media (min-width:760px){
  .fd-bar{grid-template-columns:minmax(0,1fr) 260px auto;height:64px;align-items:stretch}
  .fd-where{border-top:0;border-left:1px solid var(--l-line);margin:8px 0;min-height:0}
  .fd-what{min-height:0}
  .fd-go{padding:0 28px}
  .fd-chips{flex-wrap:nowrap;align-items:flex-start}
  .fd-chip-list{flex:1 1 auto;flex-wrap:wrap;overflow:visible}
  .fd-filters{flex:0 0 auto;position:relative}
  .fd-panel{position:absolute;right:0;top:100%;z-index:5;width:360px;box-shadow:0 12px 32px rgba(15,23,32,.14)}
  .fd-res{grid-template-columns:56px minmax(0,1fr) auto;padding:22px 24px;align-items:center}
  .fd-res-act{grid-column:auto}
}
@media (min-width:1100px){
  .fd-top{padding:44px 0 30px}
  .fd-main{padding:32px 0 72px}
  .fd-grid{grid-template-columns:minmax(0,1fr) 360px;gap:40px}
  .fd-count .disp{font-size:30px}
  .fd-for{margin-left:12px}
}

/* ---- /list-your-business (ListYourBusiness.dc.html) and /pricing (Pricing.dc.html) ----
   Launch brief v1 section 4. Mobile first; the desktop layouts come in at 900px. */
/* The launch designs are white pages; the site body is paper. */
.lp-page{background:var(--white)}
.lp-hero{background:var(--white);border-bottom:1px solid var(--l-line)}
.lp-hero-grid{display:grid;gap:32px;padding-top:40px;padding-bottom:40px}
.lp-hero-copy{display:flex;flex-direction:column;gap:18px;min-width:0}
.lp-hero-copy p{margin:0}
.lp-title{font-size:46px;line-height:1;color:var(--ink)}
.lp-lede{font-size:17px;line-height:1.6;color:var(--l-body);max-width:620px}
.lp-sub{font-size:16px;line-height:1.6;color:var(--l-body);max-width:620px}
.lp-find{padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 50px rgba(15,23,32,.08)}
.lp-find-title{font-size:20px;font-weight:700;font-stretch:100%;letter-spacing:0;margin:0;font-family:var(--display);color:var(--ink)}
.lp-find-form{display:flex;flex-direction:column;gap:12px}
.lp-find-form label{font-size:14px;font-weight:600;color:var(--ink)}
.lp-find-form input{min-height:52px;border:1px solid var(--l-grey);border-radius:6px;padding:0 16px;font:inherit;font-size:16px;color:var(--ink);background:var(--white);width:100%}
.lp-small{margin:0;font-size:13px;line-height:1.5}
.lp-example{display:flex;align-items:center;gap:14px;border-top:1px solid var(--l-line);padding-top:18px;color:var(--ink);text-decoration:none}
.lp-example picture{display:contents}
.lp-example-img{width:56px;height:40px;border-radius:6px;object-fit:cover;flex:0 0 auto}
.lp-example-text{display:flex;flex-direction:column;gap:2px;font-size:15px}
.lp-example-text .lmuted{font-size:13px}
.lp-example>span[aria-hidden]{margin-left:auto}
.lp-h2{font-size:34px;line-height:1.05;color:var(--ink)}
.lp-h3{font-size:22px;margin:0 0 8px}
.lp-kicker{margin:0;color:#8A6A00}
.lp-reasons{display:grid;gap:20px;padding-top:56px;padding-bottom:56px}
.lp-reason{padding:28px;display:flex;flex-direction:column;gap:14px}
.lp-reason p{margin:0;font-size:16px;line-height:1.65;color:var(--l-body)}
.lp-reason-title{font-size:28px;line-height:1.1;color:var(--ink)}
.lp-facts{display:flex;gap:12px;margin-top:8px}
.lp-fact{flex:1 1 0;background:var(--l-paper);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:6px}
.lp-fact .lmono{font-size:10px;color:var(--l-muted)}
.lp-reason .lp-fact-body{font-size:14px;line-height:1.45;color:var(--ink);font-weight:600}
.lp-fact-pro{background:var(--ink)}
.lp-fact-pro .lmono{color:var(--hivis)}
.lp-reason .lp-fact-pro .lp-fact-body{color:var(--white)}
.lp-reason-dark{background:var(--ink);border-color:var(--ink)}
.lp-reason-dark .lp-kicker{color:var(--hivis)}
.lp-reason-dark .lp-reason-title{color:var(--white)}
.lp-reason-dark p{color:var(--l-grey)}
.lp-reason-dark a{color:var(--white)}
.lp-reason-dark .lp-flow{list-style:none;counter-reset:lpf;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--white)}
.lp-flow li{counter-increment:lpf;display:flex;gap:12px;align-items:baseline}
.lp-reason-dark .lp-flow li::before{content:counter(lpf);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;color:var(--hivis);width:22px;flex:0 0 auto}
.lp-compare,.pr-compare{display:flex;flex-direction:column;gap:24px;padding-bottom:56px}
.pr-compare{padding-top:56px}

/* The comparison table: brief section 3, on both pages. */
.cmp-wrap{overflow:hidden}
.cmp{width:100%;border-collapse:collapse;background:var(--white);font-size:14px}
.cmp th,.cmp td{padding:12px 10px;border-bottom:1px solid var(--l-line);text-align:left;vertical-align:top;font-size:14px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:400}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp thead th,.cmp thead td{background:var(--l-paper);border-bottom:1px solid var(--l-line)}
.cmp thead .cmp-pro{background:var(--ink)}
.cmp-plan{display:block;font-weight:700;font-size:15px;color:var(--ink)}
.cmp-sub{display:block;font-size:13px;color:var(--l-muted);margin-top:2px}
.cmp thead .cmp-pro .cmp-plan{color:var(--white)}
.cmp thead .cmp-pro .cmp-sub{color:var(--hivis)}
.cmp-yes{color:var(--ink);font-weight:700}
.cmp-no{color:var(--l-muted)}

.lp-steps{background:var(--l-paper);padding:56px 0}
.lp-steps .lw{display:flex;flex-direction:column;gap:28px}
.lp-step-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.lp-step-list li{padding:24px;display:flex;flex-direction:column;gap:10px}
.lp-step-list h3{margin:0;font-size:21px;font-weight:700;font-stretch:100%;letter-spacing:0;color:var(--ink)}
.lp-step-list p{margin:0;font-size:15px;line-height:1.6;color:var(--l-body)}
.lp-faq,.pr-faq{display:grid;gap:28px;padding-top:56px;padding-bottom:56px}
.lp-qa{margin:0;display:flex;flex-direction:column}
.lp-qa>div{padding:20px 0;border-top:1px solid var(--l-line)}
.lp-qa>div:last-child{border-bottom:1px solid var(--l-line)}
.lp-qa dt{font-size:18px;font-weight:700;color:var(--ink)}
.lp-qa dd{margin:8px 0 0;font-size:15px;line-height:1.6;color:var(--l-body)}
.lp-band{background:var(--ink);color:var(--white);padding:56px 0}
.lp-band-row{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.lp-band-row p{margin:0}
.lp-band .lp-band-kicker{color:var(--hivis)}
.lp-band .lp-band-title{font-size:34px;color:var(--white);margin:12px 0}
.lp-band .lp-band-sub{font-size:17px;line-height:1.55;color:var(--l-grey)}

.pr-hero{padding:48px 0 32px;text-align:center}
.pr-hero .lw{display:flex;flex-direction:column;align-items:center;gap:18px}
.pr-hero p{margin:0}
.pr-title{font-size:42px;line-height:1;color:var(--ink);max-width:980px}
.pr-lede{font-size:17px;line-height:1.6;color:var(--l-body);max-width:700px}
.pr-plans{display:grid;gap:28px 24px;padding-top:24px;padding-bottom:56px}
.pr-plan{padding:28px;display:flex;flex-direction:column;gap:16px;position:relative}
.pr-plan p{margin:0}
.pr-plan-price{font-size:44px;color:var(--ink)}
.pr-plan-lede{font-size:15px;line-height:1.55;color:var(--l-body)}
.pr-list{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--l-line);display:flex;flex-direction:column;gap:12px}
.pr-list li{display:flex;gap:10px;font-size:15px;line-height:1.45;color:var(--ink)}
.pr-list li::before{content:"\2713";color:var(--l-green);font-weight:700;flex:0 0 auto}
.pr-plan-cta{margin-top:auto}
.pr-plan-pro{background:var(--ink);border-color:var(--ink)}
.pr-plan-pro .pr-tag{position:absolute;top:-14px;left:28px;background:var(--hivis);color:var(--ink);border-radius:4px;padding:5px 10px;font-size:11px}
.pr-plan-pro .pr-pro-kicker{color:var(--hivis)}
.pr-plan-pro .pr-pro-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:var(--white)}
.pr-plan-pro .pr-pro-price .disp{font-size:56px;color:var(--white)}
.pr-plan-pro .pr-pro-price span:last-child{font-size:17px;color:var(--l-grey)}
.pr-plan-pro .pr-pro-lede{font-size:15px;line-height:1.55;color:var(--l-grey)}
.pr-list-pro{border-top-color:var(--l-ink4)}
.pr-plan-pro .pr-list-pro li{color:var(--white)}
.pr-plan-pro .pr-list-pro li::before{color:var(--hivis)}
.pr-plan-pro .pr-note{font-size:13px;color:var(--l-soft);text-align:center}
.pr-meet{background:var(--l-paper);padding:56px 0}
.pr-meet-grid{display:grid;gap:32px}
.pr-meet-copy{display:flex;flex-direction:column;gap:16px}
.pr-meet-copy p{margin:0;font-size:16px;line-height:1.65;color:var(--l-body)}
.pr-meet-copy .lmono{color:var(--l-muted)}
.pr-fees{overflow:hidden;align-self:start}
.pr-fees .price-table{margin:0;background:var(--white)}
.pr-fees .price-table th,.pr-fees .price-table td{padding:14px 12px;font-size:15px;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--l-line);color:var(--ink)}
.pr-fees .price-table thead th{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--l-muted)}
.pr-fees .price-table tbody tr:last-child th,.pr-fees .price-table tbody tr:last-child td{border-bottom:0}
.pr-fees .price-table tbody th{font-weight:400}
.pr-fees .pr-fee{font-weight:700}
.pr-fees .price-table td.lmuted{color:var(--l-muted)}
.pr-pass{padding-top:48px}
.pr-pass p{margin:0;font-size:16px;line-height:1.65;color:var(--l-body);max-width:760px}
.pr-foot-note{margin:0;font-size:15px}

@media (min-width:900px){
  .lp-hero-grid{grid-template-columns:minmax(0,1fr) 520px;gap:80px;align-items:center;padding-top:100px;padding-bottom:90px}
  .lp-title{font-size:76px}
  .lp-lede{font-size:19px}
  .lp-find{padding:32px}
  .lp-h2{font-size:48px}
  .lp-reasons{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding-top:110px;padding-bottom:110px}
  .lp-reason{padding:40px}
  .lp-reason-title{font-size:36px}
  .lp-compare,.pr-compare{gap:36px;padding-bottom:110px}
  .cmp th,.cmp td{padding:16px 20px;font-size:15px}
  .cmp tbody th{width:44%}
  .cmp-plan{font-size:18px}
  .cmp-sub{font-size:14px}
  .lp-steps{padding:110px 0}
  .lp-steps .lw{gap:48px}
  .lp-step-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .lp-step-list li{padding:30px}
  .lp-faq{grid-template-columns:400px minmax(0,1fr);gap:80px;padding-top:110px;padding-bottom:110px}
  .lp-band{padding:90px 0}
  .lp-band-row{flex-direction:row;justify-content:space-between;align-items:center}
  .lp-band-title{font-size:52px}
  .pr-hero{padding:100px 0 60px}
  .pr-title{font-size:72px}
  .pr-lede{font-size:19px}
  .pr-plans{grid-template-columns:1fr 1fr 1.25fr;align-items:stretch;padding-top:20px;padding-bottom:100px}
  .pr-plan{padding:34px}
  .pr-plan-pro .pr-tag{left:34px}
  .pr-compare{padding-top:100px}
  .pr-meet{padding:100px 0}
  .pr-meet-grid{grid-template-columns:460px minmax(0,1fr);gap:80px}
  .pr-meet-copy .lp-h2{font-size:46px}
  .pr-fees .price-table th,.pr-fees .price-table td{padding:20px 24px;font-size:17px}
  .pr-fees .price-table thead th{padding:16px 24px;font-size:12px}
  .pr-pass{padding-top:80px}
  .pr-faq{padding-top:80px;padding-bottom:100px}
  .pr-qa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:60px}
  .pr-qa>div:last-child{border-bottom:0}
}

/* Public company page, laid out like a LinkedIn company page (directory brief v2, section 3;
   docs/briefs/launch-design/CompanyProfile.dc.html, CompanyMobile.dc.html, CompanyBasic.dc.html).
   Grey page, white cards, a 784px main column and a 320px rail on desktop; one column on a phone,
   tabs that scroll sideways, and a sticky Enquire bar. */
.co{background:var(--l-page);padding:16px 0 96px}
.co-grid{max-width:1128px;margin:0 auto;padding:0 12px;display:flex;flex-direction:column;gap:16px}
.co-main,.co-rail{display:flex;flex-direction:column;gap:12px;min-width:0}
.co-card{background:var(--white);border:1px solid var(--l-line);border-radius:10px;color:var(--ink)}
.co-note{margin:0;font-size:14px;color:var(--l-muted);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.co-note .lmono{color:var(--ink)}
/* Header card */
.co-head{overflow:hidden}
.co-cover{display:block;height:110px;background:var(--ink);cursor:zoom-in}
.co-cover img{display:block;width:100%;height:100%;object-fit:cover}
.co-cover-plain{background:linear-gradient(135deg,var(--ink) 0%,var(--ink-2) 100%);cursor:default}
.co-head-body{padding:0 16px;display:flex;flex-direction:column;gap:12px}
.co-head-top{display:flex;flex-direction:column;gap:12px}
.co-logo{margin-top:-40px;position:relative;width:80px;height:80px;font-size:26px;border-radius:12px;border-width:3px}
.co-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.co-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap}
.co-btn-yellow{background:var(--hivis);color:var(--ink)}
.co-btn-yellow:hover{background:var(--hivis-hover)}
.co-btn-line{border:1.5px solid var(--ink);color:var(--ink);background:var(--white)}
.co-btn-grey{border:1px solid var(--l-grey);color:var(--l-body);background:var(--white)}
.co-id{display:flex;flex-direction:column;gap:6px}
.co-name{margin:0;font-family:var(--display);font-size:22px;font-weight:700;font-stretch:110%;line-height:1.15;letter-spacing:-.01em}
.co-headline{margin:0;font-size:15px;line-height:1.45;color:var(--l-body)}
.co-meta{font-size:13px;color:var(--l-muted);line-height:1.5}
.co-meta-note{color:var(--l-muted)}
.co-inline{display:inline;margin:0}
.co-linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--l-body);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.co-badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.co-badges a.lchecked{text-decoration:none;border-radius:999px}
.co-chip{font-size:13px;background:var(--l-paper);border:1px solid var(--l-line);border-radius:999px;padding:5px 12px;color:var(--ink)}
.co-chip-quiet{color:var(--l-muted)}
.co-recent{background:var(--white);border-color:var(--hivis-deep)}
.co-tabs{display:flex;gap:22px;overflow-x:auto;border-top:1px solid var(--l-line);margin:0 -16px;padding:0 16px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.co-tabs::-webkit-scrollbar{display:none}
.co-tab{padding:12px 0;font-size:14px;font-weight:600;color:var(--l-muted);white-space:nowrap;text-decoration:none}
.co-tab.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}
.co-head-body>:last-child:not(.co-tabs){margin-bottom:18px}
/* Sections */
.co-sec{padding:20px 16px;display:flex;flex-direction:column;gap:14px}
.co-sec-tight{gap:4px}
.co-h2{margin:0;font-family:var(--display);font-size:20px;font-weight:700;font-stretch:108%}
.co-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.co-sec-tight .co-row{padding-bottom:10px}
.co-link{font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--l-grey)}
.co-small{font-size:13px}
.co-muted{color:var(--l-muted)}
.co-ok{color:var(--l-green);font-weight:600}
.co-lede{margin:0;font-size:16px;line-height:1.6;color:var(--ink)}
.co-text{margin:0;font-size:15px;line-height:1.65;color:var(--l-body)}
.co-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.co-chips li{font-size:13px;background:var(--l-paper);border:1px solid var(--l-line);border-radius:999px;padding:5px 12px;color:var(--ink)}
.co-chips .co-chip-more{color:var(--l-muted)}
.co-inline-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.co-inline-chips .lmono{margin-right:6px}
.co-tag{font-size:12px;font-weight:600;color:var(--hivis-text);background:var(--l-tag);border-radius:4px;padding:2px 7px}
.co-facts{margin:0;display:flex;flex-direction:column}
.co-facts div{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:9px 0;border-bottom:1px solid var(--l-page)}
.co-facts div:last-child{border-bottom:0}
.co-facts dt{color:var(--l-muted)}
.co-facts dd{margin:0;text-align:right;color:var(--ink)}
.co-facts-wide dt{color:var(--l-muted)}
.co-rows{list-style:none;margin:0;padding:0}
.co-rows li{padding:10px 0;border-top:1px solid var(--l-page);font-size:15px}
.co-rows li:first-child{border-top:0}
.co-ghost{margin:0;border:1.5px dashed var(--l-grey);border-radius:8px;padding:18px;color:var(--l-muted);font-size:14px}
.co-more{margin:0;border-top:1px solid var(--l-page);padding-top:14px;text-align:center}
.co-back{margin:0}
/* Updates */
.co-post{display:flex;flex-direction:column;gap:12px}
.co-post-next{border-top:1px solid var(--l-line);padding-top:18px}
.co-post-head{display:flex;gap:12px;align-items:center}
.co-post-head p{margin:0}
.co-post-org{font-size:15px;font-weight:700}
.co-post-head a{color:inherit;text-decoration:none}
.co-post-body{margin:0;font-size:15px;line-height:1.6;color:var(--ink);white-space:pre-line}
.co-post-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.co-post-foot{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;font-weight:600;border-top:1px solid var(--l-page);padding-top:12px}
.co-post-foot a{color:var(--l-body);text-decoration:none}
.co-post-svc{font-weight:400;margin-left:auto}
.co-quote{margin:0;padding:12px 14px;background:var(--l-paper);border-left:3px solid var(--hivis);font-size:14px;line-height:1.55;color:var(--l-body)}
.co-quote .lmono{display:block;margin-bottom:4px}
/* Photos: small thumbnails that open the lightbox */
.co-ph{position:relative;display:block;overflow:hidden;border-radius:6px;background:var(--l-line);cursor:zoom-in}
.co-ph img{display:block;width:100%;height:100%;object-fit:cover}
.co-zoom{position:absolute;right:6px;bottom:6px;width:22px;height:22px;border-radius:4px;background:rgba(15,23,32,.7);color:var(--white);font-size:12px;display:flex;align-items:center;justify-content:center}
.co-ph-post{height:80px}
.co-grid-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.co-ph-grid{height:100px}
.co-ph-more{position:absolute;inset:0;background:rgba(15,23,32,.62);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.co-lb-only{display:none}
.co-ph-blank{display:block;border-radius:6px;background:var(--l-paper);border:1px solid var(--l-line)}
/* Services and projects */
.co-svcs{list-style:none;margin:0;padding:0}
.co-svc{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--l-page)}
.co-ph-svc{width:56px;height:44px}
.co-svc p{margin:0}
.co-svc-name{font-size:15px;font-weight:700}
.co-svc-line{font-size:14px;color:var(--l-body);margin-top:3px}
.co-svc-date{grid-column:2}
.co-proj{grid-template-columns:72px minmax(0,1fr)}
.co-ph-proj{width:72px;height:54px}
/* Rail */
.co-rail-card{padding:20px;display:flex;flex-direction:column;gap:8px}
.co-rail-h{margin:0 0 4px;font-size:16px;font-weight:700;font-family:inherit}
.co-similar{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.co-similar a{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none}
.co-similar a>span:last-child{display:flex;flex-direction:column;gap:2px;font-size:14px}
.co-claim{background:var(--ink);border-color:var(--ink);color:var(--white);gap:12px}
.co-claim-h{margin:0;font-size:18px;font-weight:700;font-family:inherit;color:var(--white)}
.co-claim p{margin:0;font-size:14px;line-height:1.55;color:var(--muted-dk)}
.co-claim .co-btn{align-self:flex-start}
.co-foot{margin:0;padding:0 6px;font-size:12px;line-height:1.7;color:var(--l-muted)}
.co-foot a{color:var(--l-muted)}
/* The sticky Enquire bar, on a phone only */
.co-sticky{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--white);border-top:1px solid var(--l-line);padding:12px 16px}
.co-sticky .co-btn{width:100%;min-height:46px}
@media (min-width:700px){
  .co-grid{padding:0 24px}
  .co-cover{height:196px}
  .co-head-body{padding:0 28px}
  .co-head-top{flex-direction:row;justify-content:space-between;align-items:flex-end}
  .co-logo{width:124px;height:124px;margin-top:-62px;font-size:40px;border-radius:14px;border-width:4px}
  .co-actions{padding-bottom:4px;justify-content:flex-end}
  .co-name{font-size:30px}
  .co-headline{font-size:17px}
  .co-meta{font-size:14px}
  .co-tabs{gap:30px;margin:4px -28px 0;padding:0 28px}
  .co-tab{padding:14px 2px;font-size:15px}
  .co-sec{padding:24px 28px}
  .co-post-photos{display:flex;gap:8px}
  .co-ph-post{width:132px;height:96px}
  .co-grid-photos{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
  .co-ph-grid{height:112px}
  .co-svc{grid-template-columns:72px minmax(0,1fr) auto;gap:16px;padding:14px 0}
  .co-ph-svc{width:72px;height:56px}
  .co-svc-date{grid-column:auto}
  .co-proj{grid-template-columns:88px minmax(0,1fr)}
  .co-ph-proj{width:88px;height:66px}
  .co-rail-card{padding:22px 24px}
  .co-sticky{display:none}
  .co{padding:24px 0 72px}
}
@media (min-width:1100px){
  .co-grid{display:grid;grid-template-columns:minmax(0,784px) 320px;gap:24px;align-items:start;justify-content:center}
  .co-main,.co-rail{gap:16px}
}
/* The lightbox (PhotoLightbox.dc.html), drawn by public/assets/company.js. */
html.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;z-index:100;background:rgba(15,23,32,.94);color:var(--white);display:flex;flex-direction:column;padding:16px;gap:12px}
.lb[hidden]{display:none}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lb-who p{margin:0}
.lb-org{font-size:15px;font-weight:700;color:var(--white)}
.lb-src{font-size:13px;color:var(--muted-dk)}
.lb-right{display:flex;gap:16px;align-items:center;font-size:14px;color:var(--muted-dk)}
.lb-count{font-family:"IBM Plex Mono",ui-monospace,monospace}
.lb button{font:inherit;cursor:pointer;border:0}
.lb-close{width:40px;height:40px;border-radius:999px;background:var(--l-ink4);color:var(--white);font-size:18px}
.lb-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:16px}
.lb-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;min-width:0}
.lb-arrow{flex:0 0 auto;width:44px;height:44px;border-radius:999px;background:var(--l-ink4);color:var(--white);font-size:24px;display:none}
.lb-cap{margin:0;text-align:center;font-size:15px;color:var(--white)}
.lb-strip{display:flex;gap:8px;overflow-x:auto;justify-content:flex-start;padding:4px}
.lb-thumb{flex:0 0 auto;width:64px;height:46px;padding:0;border-radius:4px;overflow:hidden;opacity:.55;background:none}
.lb-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.lb-thumb.on{opacity:1;outline:2px solid var(--hivis);outline-offset:2px}
.lb button:focus-visible{outline:2px solid var(--hivis);outline-offset:2px}
@media (min-width:700px){
  .lb{padding:24px 40px 34px}
  .lb-arrow{display:flex;align-items:center;justify-content:center;width:52px;height:52px}
  .lb-stage{gap:40px}
  .lb-strip{justify-content:center}
  .lb-thumb{width:76px;height:54px}
}

/* Owner screens (launch brief section 4; OwnerFreePage.dc.html, Dashboard.dc.html).
   A sidebar and a main column inside the site page. Bar widths are classes, not inline styles. */
.ow{background:var(--l-paper);padding:0}
.ow-grid{display:grid;grid-template-columns:260px 1fr;min-height:70vh}
.ow-side{background:var(--white);border-right:1px solid var(--l-line);padding:28px 18px;display:flex;flex-direction:column;gap:24px}
.ow-org{display:flex;gap:12px;align-items:center;padding:0 14px}
.ow-org p{margin:0}
.ow-org-name{font-size:15px;font-weight:700;line-height:1.2}
.ow-org-tier{font-size:12px;color:var(--l-muted)}
.ow-nav{display:flex;flex-direction:column;gap:2px}
.ow-nav a{display:block;padding:10px 14px;border-radius:6px;font-size:15px;color:var(--l-body);text-decoration:none}
.ow-nav a:hover{background:var(--l-paper);color:var(--ink)}
.ow-nav a[aria-current="page"]{background:var(--l-paper);color:var(--ink);font-weight:600}
.ow-main{padding:40px 48px 64px;display:flex;flex-direction:column;gap:24px;min-width:0}
.ow-two{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start}
.ow-two-dash{grid-template-columns:minmax(0,1fr) 380px}
.ow-col{display:flex;flex-direction:column;gap:24px;min-width:0}
.ow-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.ow-title p{margin:0 0 8px}
.ow-title h1{font-size:46px}
.ow-underline{font-weight:600;color:var(--ink);border-bottom:1.5px solid var(--ink);text-decoration:none;padding-bottom:2px;white-space:nowrap}
.ow-card{padding:24px 28px;display:flex;flex-direction:column;gap:14px}
.ow-card p{margin:0}
.ow-card-h,.ow-done-h{color:var(--l-muted);font-size:11px}
.ow-done-h{color:var(--l-green)}
.ow-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ow-h2{margin:0;font-family:var(--display);font-size:20px;font-weight:700}
.ow-bar-line{display:flex;justify-content:space-between;gap:24px;font-size:14px;color:var(--l-body)}
.ow-done{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.ow-done-item{background:var(--l-paper);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.ow-done-item strong{font-size:15px}
.ow-todo{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:15px}
.ow-locks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ow-lock{border:1.5px dashed var(--l-grey);border-radius:8px;padding:16px 20px;display:flex;align-items:center;gap:14px;color:var(--l-muted);font-size:14px;background:var(--l-paper)}
.ow-lock strong{color:var(--ink)}
.ow-sub{font-size:13px;color:var(--l-muted)}
.ow-sub-b{color:var(--ink);font-weight:600}
.ow-now{display:flex;gap:12px;align-items:center;border:1px solid var(--l-line);border-radius:8px;padding:14px}
.ow-now div{display:flex;flex-direction:column;font-size:15px}
.ow-now .lmuted{font-size:13px}
.ow-preview{border:1.5px solid var(--ink);border-radius:8px;overflow:hidden}
.ow-preview-cover{display:block;height:56px;background:var(--ink)}
.ow-preview-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.ow-preview-body strong{font-size:16px}
.ow-preview-mark{margin-top:-22px}
.ow-preview-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ow-preview-photos span{display:block;height:40px;border-radius:4px;background:var(--l-grey)}
.ow-fair{margin-top:4px}
.ow-dark{background:var(--ink);color:var(--white);border-radius:10px;border:1px solid var(--ink)}
.ow-dark h2{font-size:32px}
.ow-dark p{color:var(--muted-dk);line-height:1.55}
.ow-dark .ow-hivis{color:var(--hivis)}
.ow-counts{margin:0;display:flex;flex-direction:column;gap:6px}
.ow-counts div{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.ow-counts dd{margin:0;font-weight:700}
.ow-banner{background:var(--ink);color:var(--white);border-radius:10px;padding:22px 28px;display:flex;align-items:center;gap:22px}
.ow-banner div{flex:1 1 200px}
.ow-banner p{margin:4px 0 0;color:var(--muted-dk);font-size:14px}
.ow-banner a{color:var(--white);font-weight:600}
.ow-ring{flex:0 0 auto;width:56px;height:56px;border-radius:50%;border:3px solid var(--hivis);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.ow-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ow-tile{padding:20px 24px;display:flex;flex-direction:column;gap:6px}
.ow-tile p{margin:0}
.ow-tile-l{font-size:13px;color:var(--l-muted)}
.ow-dark .ow-tile-l,.ow-dark .ow-tile-s{color:var(--muted-dk)}
.ow-dark .ow-tile-v{color:var(--hivis)}
.ow-tile-v{font-size:40px}
.ow-tile-s{font-size:13px;color:var(--l-muted)}
.ow-tile-s.ow-good{color:var(--l-green)}
.ow-reviews{overflow:hidden}
.ow-pad{padding:20px 24px;margin:0}
.ow-table{width:100%;border-collapse:collapse;font-size:14px}
.ow-table th{text-align:left;font-size:10px;font-weight:500;color:var(--l-muted);background:var(--l-paper);padding:10px 24px;border-top:1px solid var(--l-line);border-bottom:1px solid var(--l-line)}
.ow-table td{padding:16px 24px;border-bottom:1px solid var(--l-line);vertical-align:middle}
.ow-table td strong{display:block;font-size:15px}
.ow-table td .lmuted{font-size:13px}
.ow-pill{display:inline-block;font-size:13px;font-weight:600;border-radius:4px;padding:4px 8px}
.ow-pill-hivis{background:var(--hivis);color:var(--ink)}
.ow-pill-green{background:var(--l-green-bg);color:var(--l-green)}
.ow-pill-plain{color:var(--l-muted);font-weight:400;padding-left:0}
.ow-foot{border-top:0}
.ow-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px}
.ow-check li span[aria-hidden]{display:inline-block;width:22px}
.ow-yes span[aria-hidden]{color:var(--l-green);font-weight:700}
.ow-no{color:var(--l-muted)}
.lbar-fill.pct-0{width:0}
.lbar-fill.pct-10{width:10%}
.lbar-fill.pct-20{width:20%}
.lbar-fill.pct-30{width:30%}
.lbar-fill.pct-40{width:40%}
.lbar-fill.pct-50{width:50%}
.lbar-fill.pct-60{width:60%}
.lbar-fill.pct-70{width:70%}
.lbar-fill.pct-80{width:80%}
.lbar-fill.pct-90{width:90%}
.lbar-fill.pct-100{width:100%}
@media (max-width:1100px){
  .ow-grid{grid-template-columns:1fr}
  .ow-side{border-right:0;border-bottom:1px solid var(--l-line);padding:16px}
  .ow-nav{flex-direction:row;flex-wrap:wrap}
  .ow-two,.ow-two-dash{grid-template-columns:1fr}
  .ow-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .ow-main{padding:20px 16px 48px}
  .ow-title{flex-direction:column;align-items:flex-start}
  .ow-title h1{font-size:34px}
  .ow-card{padding:20px}
  .ow-bar-line{flex-direction:column;gap:6px}
  .ow-banner{flex-wrap:wrap;padding:20px}
  .ow-tiles{grid-template-columns:1fr 1fr;gap:10px}
  .ow-tile{padding:16px}
  .ow-tile-v{font-size:30px}
  .ow-table thead{display:none}
  .ow-table tr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--l-line);padding:12px 0}
  .ow-table td{border:0;padding:4px 16px}
  .ow-table td:first-child{grid-column:1/-1}
}
.cp-checks{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column}
.cp-checks li{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--l-line);font-size:14px;line-height:1.5}
@media (max-width:620px){.cp-checks li{grid-template-columns:1fr;gap:2px}}

/* /find, directory brief v2 section B.6 — docs/briefs/launch-design/FindBusiness.dc.html.
   Grey page, one bar, filters in a left column on a desktop (a sheet opened with #filters on a phone,
   so it works without script), rows in one card with one tag each, a rail on the right. */
.fb-top{background:var(--white);border-bottom:1px solid var(--l-line);padding:20px 0}
.fb-bar{display:grid;grid-template-columns:1fr;gap:10px}
.fb-field{height:48px;border:1px solid var(--l-grey);border-radius:8px;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--white);color:var(--l-muted)}
.fb-field:focus-within{border-color:var(--ink);box-shadow:0 0 0 2px var(--hivis)}
.fb-field input,.fb-field select{border:0;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--ink);width:100%;min-height:44px;padding:0}
.fb-field select{appearance:none;cursor:pointer}
.fb-ico{flex:0 0 auto}
.fb-go{min-height:48px;font-size:15px}
.fb-main{background:var(--l-paper);padding:24px 0 56px}
.fb-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.fb-filters{display:none;background:var(--white);border:1px solid var(--l-line);border-radius:10px;padding:20px;flex-direction:column;gap:22px}
.fb-filters:target{display:flex;position:fixed;inset:0;z-index:50;overflow-y:auto;border-radius:0}
.fb-filters-head{display:flex;align-items:baseline;gap:12px}
.fb-filters-head h2{margin:0;font-size:17px;font-weight:700;margin-right:auto}
.fb-close{font-weight:600;color:var(--ink)}
.fb-group{display:flex;flex-direction:column;gap:6px}
.fb-gh{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--ink)}
.fb-list,.fb-pills,.fb-chips,.fb-rows,.fb-suggest-list{list-style:none;margin:0;padding:0}
.fb-cb{display:flex;align-items:center;gap:10px;font-size:14px;padding:5px 0;color:var(--ink);text-decoration:none;min-height:32px}
.fb-cb:hover .fb-cb-l{text-decoration:underline}
.fb-box{width:16px;height:16px;border:1.5px solid var(--l-muted);border-radius:3px;flex:none;position:relative}
.fb-cb.on .fb-box{background:var(--ink);border-color:var(--ink)}
.fb-cb.on .fb-box::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg)}
.fb-n{margin-left:auto;font-size:12px;color:var(--l-muted);font-family:"IBM Plex Mono",ui-monospace,monospace}
.fb-more>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px;padding:4px 0}
.fb-pills,.fb-chips{display:flex;flex-wrap:wrap;gap:6px}
.fb-km{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;border:1px solid var(--l-grey);border-radius:999px;padding:5px 11px;color:var(--ink);text-decoration:none;background:var(--white)}
.fb-km.on{background:var(--ink);color:var(--white);border-color:var(--ink)}
.fb-results{display:flex;flex-direction:column;gap:14px;min-width:0}
.fb-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px}
.fb-count{margin:0;font-size:17px;color:var(--ink)}
.fb-sort{margin:0;font-size:14px;color:var(--ink)}
.fb-sort a{color:var(--ink)}
.fb-quiet{color:var(--l-muted);font-weight:400}
.fb-open{align-self:flex-start;min-height:44px;font-size:15px}
.fb-notice{margin:0;font-size:15px;color:var(--l-body)}
.fb-rows{overflow:hidden}
.fb-row{display:grid;grid-template-columns:44px 1fr;gap:12px 14px;align-items:center;padding:14px 16px;border-top:1px solid var(--l-line)}
.fb-row:first-child{border-top:0}
.fb-row-body{min-width:0}
.fb-name{margin:0;font-size:16px;font-weight:700;line-height:1.3}
.fb-name a{color:var(--ink);text-decoration:none}
.fb-name a:hover{text-decoration:underline}
.fb-l2{margin:3px 0 0;font-size:14px;color:var(--l-body)}
.fb-l3{margin:3px 0 0;font-size:12px;color:var(--l-muted)}
.fb-row-tag{grid-column:2}
.fb-tag{display:inline-block;font-size:12px;color:var(--l-muted);border:1px solid var(--l-line);border-radius:999px;padding:4px 10px;white-space:nowrap;background:var(--white)}
.fb-tag-ok{color:var(--l-green);background:var(--l-green-bg);border-color:var(--l-green-bg);font-weight:600}
.fb-none{padding:22px;color:var(--ink)}
.fb-none p{margin:0 0 6px}
.fb-similar-h{margin:10px 0 0;font-size:15px;font-weight:700;color:var(--ink)}
.fb-pager{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600}
.fb-pager a{color:var(--ink)}
.fb-rank{margin:0;font-size:13px;color:var(--l-muted)}
.fb-rank a{color:var(--ink)}
.fb-rail{display:flex;flex-direction:column;gap:16px}
.fb-rail-card{padding:20px;display:flex;flex-direction:column;gap:8px}
.fb-rail-t{margin:0;font-size:16px;font-weight:700;color:var(--ink)}
.fb-claim .fd-claim-t{font-size:16px}
.fb-rail-p{margin:0;font-size:13px;color:var(--l-body)}
.fb-claim-p{margin:0;font-size:14px;color:var(--l-grey)}
.fb-claim-link{font-size:14px;font-weight:600;color:var(--white);align-self:flex-start}
.fb-suggest .lmono{margin:0}
.fb-suggest-list li a{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--l-line);color:var(--ink);text-decoration:none;font-size:14px}
.fb-suggest-list li a:hover .fb-suggest-name{text-decoration:underline}
.fb-suggest-meta{font-size:12px;color:var(--l-muted)}
.fb-suggest mark{background:rgba(242,194,48,.3);color:inherit;padding:0 1px}
@media (min-width:700px){
  .fb-bar{grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) 170px auto}
  .fb-row{grid-template-columns:52px 1fr auto;gap:16px}
  .fb-row-tag{grid-column:auto}
}
@media (min-width:1000px){
  .fb-grid{grid-template-columns:260px minmax(0,1fr)}
  .fb-filters,.fb-filters:target{display:flex;position:static;border-radius:10px}
  .fb-close,.fb-open{display:none}
  .fb-rail{grid-column:2}
}
@media (min-width:1240px){
  .fb-grid{grid-template-columns:260px minmax(0,1fr) 300px}
  .fb-rail{grid-column:auto}
}
/* Directory brief v2, section A: the three offers on home (Main.dc.html "Start free. Go further when
   you're ready."). A photo on top on desktop; text only on a phone, as HomeMobile.dc.html has it. */
.h-tier{overflow:hidden;display:flex;flex-direction:column;padding:0}
.h-tier-photo{display:none}
.h-tier-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex-grow:1}
.h-tier-body h3{font-size:21px;font-weight:700;font-stretch:112%;line-height:1.15;margin:0;letter-spacing:0}
.h-tier-body>p:not(.h-why-num):not(.h-tier-foot){margin:0;font-size:14px;line-height:1.55;color:var(--l-body)}
.h-why-dark .h-tier-body>p:not(.h-why-num):not(.h-tier-foot){color:var(--l-grey)}
.h-tier-foot{margin:auto 0 0;padding-top:14px;border-top:1px solid var(--l-line);display:flex;justify-content:space-between;align-items:center;gap:12px}
.h-why-dark .h-tier-foot{border-top-color:var(--l-ink4)}
.h-tier-price{font-size:17px;font-weight:700}
.h-tier-foot a{font-size:15px;font-weight:600;color:inherit;text-decoration:none;border-bottom:2px solid var(--hivis)}
@media (min-width:900px){
  .h-tier-photo{display:block;width:100%;height:150px;object-fit:cover}
  .h-tier-body{padding:30px;gap:14px}
  .h-tier-body h3{font-size:28px}
  .h-tier-body>p:not(.h-why-num):not(.h-tier-foot){font-size:16px;line-height:1.6}
  .h-tier-price{font-size:20px}
}

/* Directory brief v2, section A: /meet-buyers (Meetings.dc.html). A navy hero with the photo on the
   right, listing vs meetings side by side, four steps, the fee table (the .pr-meet block /pricing used
   to carry), the questions, and a closing band. One column on a phone. */
.mt-hero{background:var(--ink);color:var(--white)}
.mt-hero-grid{display:grid;grid-template-columns:1fr;padding-left:0;padding-right:0}
.mt-hero-copy{display:flex;flex-direction:column;gap:20px;padding:44px 16px 36px;justify-content:center;min-width:0}
.mt-hero-copy p{margin:0}
.mt-hero-copy .mt-kicker{color:var(--hivis)}
.mt-title-hi{color:var(--hivis)}
.mt-title{font-size:44px;line-height:1;color:var(--white)}
.mt-lede{font-size:17px;line-height:1.6;color:var(--l-grey);max-width:560px}
.mt-actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.mt-underline{color:var(--white);font-weight:600;font-size:15px;text-decoration:none;border-bottom:2px solid var(--hivis)}
.mt-hero-photo{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.mt-split{display:grid;grid-template-columns:1fr;gap:16px;padding-top:40px;padding-bottom:16px}
.mt-split-card{padding:24px;display:flex;flex-direction:column;gap:10px}
.mt-split-card p{margin:0;font-size:15px;line-height:1.6;color:var(--l-body)}
.mt-split-paper{background:var(--l-paper)}
.mt-h3{font-size:24px;font-weight:700;font-stretch:112%;line-height:1.15;margin:0;color:var(--ink);letter-spacing:0}
.mt-how{padding:32px 0 48px}
.mt-how .lp-h2{margin-bottom:24px}
.mt-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}
.mt-steps li{padding:22px 0 0;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:10px}
.mt-steps h3{font-size:20px;font-weight:700;margin:0;color:var(--ink);letter-spacing:0}
.mt-steps p{margin:0;font-size:15px;line-height:1.6;color:var(--l-body)}
.mt-steps .mt-step-n{color:var(--hivis-text)}
/* /pricing: the one banner that sends a supplier to the meetings page. */
.pr-meetlink{padding-top:8px;padding-bottom:40px}
.pr-meetlink-card{overflow:hidden;display:grid;grid-template-columns:1fr;background:var(--ink);border-color:var(--ink);color:var(--white)}
.pr-meetlink-photo{display:block;width:100%;height:200px;object-fit:cover}
.pr-meetlink-body{padding:28px 24px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.pr-meetlink-body p{margin:0;font-size:16px;line-height:1.6;color:var(--l-grey);max-width:560px}
.pr-meetlink-body .pr-meetlink-kicker{color:var(--hivis);font-size:12px}
.pr-meetlink-title{font-size:30px;line-height:1.05;color:var(--white)}
@media (min-width:900px){
  .mt-hero-grid{grid-template-columns:minmax(0,1fr) 600px;min-height:620px;max-width:none}
  .mt-hero-copy{padding:80px 60px 80px max(24px,calc((100vw - 1280px)/2 + 24px));gap:24px}
  .mt-title{font-size:76px;line-height:.98}
  .mt-lede{font-size:20px}
  .mt-hero-photo{height:100%;min-height:620px;aspect-ratio:auto}
  .mt-split{grid-template-columns:1fr 1fr;gap:24px;padding-top:100px;padding-bottom:40px}
  .mt-split-card{padding:36px;gap:12px}
  .mt-split-card p{font-size:16px}
  .mt-h3{font-size:30px}
  .mt-how{padding:60px 0 100px}
  .mt-how .lp-h2{font-size:48px;margin-bottom:44px}
  .mt-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
  .mt-steps li{padding-top:24px}
  .pr-meetlink{padding-bottom:60px}
  .pr-meetlink-card{grid-template-columns:420px minmax(0,1fr)}
  .pr-meetlink-photo{height:100%;min-height:240px}
  .pr-meetlink-body{padding:44px 48px;justify-content:center}
  .pr-meetlink-title{font-size:40px}
}
/* Owner screens: the meetings card (directory brief v2, section A). */
.ow-meet form{margin:12px 0 8px}
.ow-meet p{margin:0 0 8px}
.ow-soon{opacity:1;cursor:default;color:var(--l-muted);border-color:var(--l-line)}
/* Three-line headline (brief v2, section A): 84px on desktop, as Main.dc.html, so "Get meetings." holds one line. */
@media (min-width:900px){.h-title{font-size:84px;line-height:.98}}
@media (min-width:900px) and (max-width:1180px){.h-title{font-size:68px}}
/* The owner's content screens: Updates, Services, Photos, Enquiries (directory brief v2, section 3;
   OwnerPostUpdate.dc.html). Inside the owner shell. */
.oc-post{gap:18px}
.oc-pills{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.oc-pill{position:relative}
.oc-pill input{position:absolute;opacity:0;width:1px;height:1px}
.oc-pill span{display:inline-block;font-size:14px;font-weight:600;border:1px solid var(--l-grey);border-radius:999px;padding:7px 14px;color:var(--l-body);background:var(--white);cursor:pointer}
.oc-pill input:checked+span{background:var(--ink);color:var(--white);border-color:var(--ink)}
.oc-pill input:focus-visible+span{outline:2px solid var(--hivis);outline-offset:2px}
.oc-post-foot{display:flex;justify-content:flex-end;border-top:1px solid var(--l-line);padding-top:16px}
.oc-list{list-style:none;margin:0;padding:0}
.oc-li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px 16px;align-items:center;padding:14px 0;border-top:1px solid var(--l-line);font-size:14px}
.oc-li-ph{display:block;width:72px;height:54px;border-radius:6px;object-fit:cover}
.oc-li-blank{background:var(--l-paper)}
.oc-li-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.oc-refused{color:var(--err)}
.oc-li-views{grid-column:2}
.oc-state{grid-column:2;justify-self:start;font-size:12px;font-weight:600;border-radius:4px;padding:3px 8px}
.oc-state-live{background:var(--l-green-bg);color:var(--l-green)}
.oc-state-review{background:var(--l-tag);color:var(--hivis-text)}
.oc-state-refused{background:var(--l-paper);color:var(--l-body)}
.oc-li-actions{grid-column:2;display:flex;gap:16px}
.oc-li-actions form{margin:0}
.oc-allow{display:flex;justify-content:space-between;font-size:14px}
.oc-svc-form{margin:0}
.oc-enq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.oc-enq-msg{white-space:pre-line;line-height:1.55}
@media (min-width:900px){
  .oc-li{grid-template-columns:72px minmax(0,1fr) 110px 110px}
  .oc-li-views,.oc-state{grid-column:auto}
  .oc-li-actions{grid-column:2 / -1}
}

/* Add your business (directory brief v2, section 5). */
.lp-add{margin:14px 0 0;font-size:14px;color:var(--l-body)}
.lp-add a{color:var(--ink);font-weight:600}
.add-biz h2{margin-top:0}

/* Directory brief v2, section C: hub-page facts and paging, the owner "On Google" card, and the
   three-step "Go live on Google" setup. Plain text on white; nothing painted. */
.hub-facts{margin:0 0 12px}
.hub-where{margin:6px 0;font-size:15px;color:var(--l-body)}
.hub-pager{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:16px 0;font-size:15px}
.hub-pager a{font-weight:600;color:var(--ink)}
.ow-google{margin:0 0 16px}
.ow-google-line{margin:6px 0 12px;font-size:15px;line-height:1.5}
.ow-steps{margin:12px 0;padding-left:20px;font-size:15px;line-height:1.7}
.gl-step{padding:20px}
.gl-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}
.gl-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);font-weight:700;color:var(--ink)}
.gl-done{border-color:var(--l-green);color:var(--l-green)}
.gl-title{margin:0;font-size:19px}
.gl-note{font-size:14px;color:var(--l-muted)}
/* Legal pages (directory brief v2, section D): a plain readable column, no cards. */
.legal-doc{max-width:680px}
.legal-details{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line)}
/* /find: the understood filters in words, over the chips (phone review, 30 September 2026). */
.fb-showing{margin:10px 0 8px;font-size:15px;font-weight:600;color:var(--ink)}
/* Company pages after Andrew's phone review (29 September 2026), to CompanyProfile.dc.html and
   CompanyMobile.dc.html: Save, Website and Enquire in the header (Enquire moves to the sticky bar on a
   phone); a slim navy band where there is no cover; badges that wrap inline; tabs that fade at the edge. */
.co-cover-slim{height:80px}
.co-actions .co-btn{width:100%}
.co-actions .co-enq{display:none}
.co-actions .co-save[aria-pressed="true"]{background:var(--l-paper)}
.co-badges li{display:inline-flex}
.co-badges .co-chip,.co-badges a.lchecked{font-size:12px;padding:5px 10px}
@media (min-width:700px){
  .co-cover-slim{height:120px}
  .co-actions{display:flex;grid-template-columns:none}
  .co-actions .co-btn{width:auto}
  .co-actions .co-enq{display:inline-flex}
  .co-badges .co-chip,.co-badges a.lchecked{font-size:13px;padding:6px 12px}
  .co-tabs{-webkit-mask-image:none;mask-image:none}
}
/* /meet-buyers after the phone review: the hero photo keeps its shape at every width, and the steps
   show only the design's numbering. */
.mt-hero picture{display:block}
.mt-steps li::marker{content:""}
/* The fee table: one price per row, sentence-case headers. */
.pr-fees .price-table thead th{font-family:inherit;font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--l-muted)}
/* /list-your-business: the example card from ListYourBusiness.dc.html. A fixed 56x40 picture, the
   title and sub-line stacked, the arrow on the right. */
.lp-example-thumb{display:block;width:56px;height:40px;flex:0 0 56px;border-radius:6px;overflow:hidden}
.lp-example-thumb picture{display:block;width:100%;height:100%}
.lp-example-thumb .lp-example-img{width:100%;height:100%;display:block;object-fit:cover;border-radius:0}
.lp-example-text strong{font-weight:600}
.fb-name-note{margin:0 0 8px;font-size:13px}
/* Home hero, Andrew's phone review: the three product cards never overlap. They stack in their own
   column, and only from 1200px, where that column is wide enough; narrower screens get the single
   example card below the hero instead. */
@media (min-width:1200px){
  .h-hero-grid{display:grid;grid-template-columns:minmax(0,640px) minmax(0,1fr);gap:48px;padding-bottom:48px}
  .h-phone-example{display:none}
  .h-comp{display:flex;flex-direction:column;gap:16px;min-width:0}
  .h-title{font-size:clamp(56px,5.3vw,88px)}
}
/* Company header on a phone (Andrew, 30 September 2026): Save and Share side by side, the claim button
   full width under them; a claimed page's band keeps the design's 110px, only an unclaimed page is slim. */
.co-actions .co-claim{grid-column:1 / -1}
.co-actions .co-share{justify-content:center}
@media (min-width:700px){
  .co-actions .co-claim{grid-column:auto}
}
