:root{
  --bark:#26251F;
  --forest:#334E3D;
  --moss:#6C8A6E;
  --gold:#D9A441;
  --stone:#E9EDE7;
  --paper:#FCFCF9;
  --line:#D3D9CF;
  --muted:#5C6459;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--stone);color:var(--bark);
  font-family:'Source Sans 3',system-ui,sans-serif;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.d{font-family:'Archivo',system-ui,sans-serif;letter-spacing:-.02em;}
a{color:inherit;}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}}

.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}
.narrow{max-width:740px;}

/* header */
header.site{position:sticky;top:0;z-index:50;background:var(--bark);color:var(--paper);}
.bar{display:flex;align-items:center;gap:24px;padding:15px 0;flex-wrap:wrap;}
.logo{font-family:'Archivo';font-weight:700;font-size:1.15rem;letter-spacing:-.03em;text-decoration:none;display:flex;align-items:center;gap:9px;}
.logo .glyph{width:20px;height:20px;flex:none;}
nav.main{margin-left:auto;display:flex;gap:24px;flex-wrap:wrap;}
nav.main a{text-decoration:none;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#BFC7BB;transition:color .2s;}
nav.main a:hover{color:var(--gold);}

/* hero */
.hero{background:var(--forest);color:var(--paper);padding:76px 0 66px;}
.hero .eyebrow{font-family:'Archivo';font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 18px;}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.1;margin:0 0 22px;max-width:19ch;font-weight:700;}
.hero p{font-size:1.12rem;max-width:56ch;color:#D5DDD2;margin:0 0 30px;}
.hero .btn{display:inline-block;background:var(--gold);color:var(--bark);text-decoration:none;font-family:'Archivo';font-weight:600;font-size:.95rem;padding:13px 26px;border-radius:3px;transition:background .2s;}
.hero .btn:hover{background:var(--paper);}

/* the scale explainer — signature */
.scale-strip{background:var(--bark);color:#C9D1C6;padding:30px 0;}
.scale-strip .row{display:flex;gap:30px;align-items:center;flex-wrap:wrap;}
.scale-strip h2{font-size:1rem;color:var(--paper);margin:0;font-weight:600;letter-spacing:0;flex:none;}
.scale-key{display:flex;gap:22px;flex-wrap:wrap;font-size:.9rem;}
.scale-key span{display:flex;align-items:center;gap:8px;}

.load{display:inline-flex;gap:3px;vertical-align:middle;}
.load i{width:9px;height:16px;border-radius:1px;background:#B9C3B6;display:block;}
.load i.on-1{background:#7FA97F;}
.load i.on-2{background:#C9B24A;}
.load i.on-3{background:#C97B4A;}

/* filters */
.filters{background:var(--paper);border-bottom:1px solid var(--line);padding:22px 0;position:sticky;top:56px;z-index:40;}
.fgroup{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.fgroup + .fgroup{margin-top:12px;}
.flabel{font-family:'Archivo';font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);width:118px;flex:none;}
.chip{
  font-family:'Source Sans 3';font-size:.88rem;padding:7px 15px;border-radius:999px;
  border:1px solid var(--line);background:var(--stone);cursor:pointer;color:var(--bark);transition:all .18s;
}
.chip[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:var(--paper);}
.count{margin-left:auto;font-size:.88rem;color:var(--muted);}

/* listings */
section{padding:64px 0;}
.sec-head{margin-bottom:36px;}
.sec-head h2{font-size:clamp(1.6rem,3.2vw,2.3rem);margin:0 0 10px;font-weight:700;}
.sec-head p{color:var(--muted);max-width:60ch;margin:0;}

.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));}
.site-card{
  background:var(--paper);border:1px solid var(--line);border-radius:7px;overflow:hidden;
  display:flex;flex-direction:column;
}
.site-card .top{padding:22px 24px 0;}
.site-card .loc{font-family:'Archivo';font-size:.73rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--moss);margin:0 0 7px;}
.site-card h3{font-size:1.28rem;margin:0 0 10px;font-weight:600;line-height:1.25;}
.site-card .blurb{margin:0 0 18px;font-size:.96rem;color:#3C4238;}

.profile{border-top:1px solid var(--line);padding:16px 24px;background:#F6F8F4;}
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;font-size:.9rem;}
.prow .k{color:var(--muted);}
.prow .v{font-weight:600;text-align:right;}

.nearby{padding:18px 24px;border-top:1px solid var(--line);}
.nearby h4{font-family:'Archivo';font-size:.73rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 9px;}
.nearby ul{margin:0;padding:0;list-style:none;}
.nearby li{font-size:.9rem;padding:4px 0 4px 15px;position:relative;color:#3C4238;}
.nearby li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:50%;background:var(--gold);}

.act{margin-top:auto;padding:16px 24px 22px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.act a{
  font-family:'Archivo';font-weight:600;font-size:.88rem;text-decoration:none;
  background:var(--forest);color:var(--paper);padding:10px 18px;border-radius:3px;transition:background .2s;
}
.act a:hover{background:var(--bark);}
.act .aff{font-size:.76rem;color:var(--muted);}

.empty{background:var(--paper);border:1px dashed var(--line);border-radius:7px;padding:44px;text-align:center;color:var(--muted);}
.empty strong{display:block;font-family:'Archivo';font-size:1.1rem;color:var(--bark);margin-bottom:6px;}

/* method */
.method{background:var(--paper);}
.method-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}
.m-item{border-top:3px solid var(--gold);padding-top:18px;}
.m-item h3{font-size:1.08rem;margin:0 0 8px;font-weight:600;}
.m-item p{margin:0;font-size:.94rem;color:var(--muted);}

/* blog */
.posts{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;}
.post{background:var(--paper);padding:26px 28px;text-decoration:none;display:block;transition:background .2s;}
.post:hover{background:#F4F7F2;}
.post .date{font-family:'Archivo';font-size:.73rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--moss);}
.post h3{font-size:1.2rem;margin:8px 0 8px;font-weight:600;}
.post p{margin:0;color:var(--muted);font-size:.95rem;}

/* signup */
.signup{background:var(--forest);color:var(--paper);border-radius:8px;padding:clamp(30px,5vw,50px);}
.signup h2{margin:0 0 12px;font-size:clamp(1.5rem,3vw,2.1rem);font-weight:700;}
.signup p{color:#D5DDD2;max-width:52ch;margin:0 0 24px;}
.form{display:flex;gap:10px;flex-wrap:wrap;max-width:520px;}
.form input{flex:1;min-width:220px;padding:13px 16px;border-radius:3px;border:1px solid #4C6B55;background:#2B4334;color:var(--paper);font-family:'Source Sans 3';font-size:1rem;}
.form input::placeholder{color:#93A896;}
.form button{padding:13px 26px;border-radius:3px;border:none;background:var(--gold);color:var(--bark);font-family:'Archivo';font-weight:600;font-size:.93rem;cursor:pointer;}
.form button:hover{background:var(--paper);}
.fineprint{font-size:.85rem;color:#93A896;margin:14px 0 0;}

/* disclosure */
.disclosure{background:#FFF7E4;border:1px solid #E3C878;border-radius:7px;padding:26px 28px;}
.disclosure h3{margin:0 0 10px;font-size:1.1rem;font-weight:600;}
.disclosure p{margin:0 0 10px;font-size:.95rem;color:#5B4A20;}
.disclosure p:last-child{margin-bottom:0;}

footer.site{background:var(--bark);color:#9AA396;padding:46px 0 34px;font-size:.92rem;}
footer.site a{color:var(--gold);}
.foot-grid{display:flex;gap:32px;flex-wrap:wrap;justify-content:space-between;}

@media(max-width:640px){
  .flabel{width:100%;}
  .filters{position:static;}
}

/* ============================================================
   ADDED — search, sort, detail pages, submit form
   ============================================================ */

/* search + sort controls */
.searchrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px;}
.searchbox{
  flex:1;min-width:230px;padding:10px 14px;border-radius:5px;border:1px solid var(--line);
  background:var(--stone);font-family:'Source Sans 3';font-size:.95rem;color:var(--bark);
}
.searchbox::placeholder{color:#8B9488;}
.sortsel{
  padding:10px 12px;border-radius:5px;border:1px solid var(--line);background:var(--stone);
  font-family:'Source Sans 3';font-size:.9rem;color:var(--bark);cursor:pointer;
}
.clearbtn{
  background:none;border:none;color:var(--muted);font-family:'Source Sans 3';font-size:.88rem;
  text-decoration:underline;cursor:pointer;padding:8px 4px;
}
.clearbtn:hover{color:var(--bark);}

.site-card h3 a{text-decoration:none;}
.site-card h3 a:hover{color:var(--forest);text-decoration:underline;}

/* ---------- listing detail page ---------- */
.crumb{font-size:.85rem;color:var(--muted);padding:22px 0 0;}
.crumb a{color:var(--moss);}
.detail{max-width:820px;margin:0 auto;padding:20px 24px 56px;}
.detail .region{font-family:'Archivo';font-size:.75rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--moss);margin:0 0 8px;}
.detail h1{font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.13;margin:0 0 14px;font-weight:700;}
.detail .standfirst{font-size:1.1rem;color:var(--muted);margin:0 0 24px;max-width:60ch;}
.visited{
  display:inline-block;font-family:'Archivo';font-size:.75rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;background:var(--forest);color:var(--paper);padding:5px 12px;border-radius:3px;margin:0 0 26px;
}
.visited.reported{background:#8A8F84;}

/* four-dimension chart — the detail page signature */
.chart{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:26px 28px;margin:0 0 30px;}
.chart h2{font-size:1.15rem;margin:0 0 4px;font-weight:600;}
.chart .cap{font-size:.88rem;color:var(--muted);margin:0 0 20px;}
.dim{display:grid;grid-template-columns:150px 1fr 130px;gap:14px;align-items:center;padding:11px 0;border-top:1px solid var(--line);}
.dim:first-of-type{border-top:none;}
.dim .dname{font-weight:600;font-size:.94rem;}
.dim .dnote{font-size:.86rem;color:var(--muted);text-align:right;}
.bars{display:flex;gap:4px;}
.bars i{flex:1;height:20px;border-radius:2px;background:#DFE4DC;display:block;}
.bars i.f1{background:#7FA97F;} .bars i.f2{background:#A9B85C;}
.bars i.f3{background:#C9B24A;} .bars i.f4{background:#C99A4A;} .bars i.f5{background:#C97B4A;}
@media(max-width:640px){.dim{grid-template-columns:1fr;gap:6px;} .dim .dnote{text-align:left;}}

/* practical + honesty blocks */
.twocol{display:grid;gap:24px;grid-template-columns:1fr 1fr;margin:0 0 30px;}
@media(max-width:700px){.twocol{grid-template-columns:1fr;}}
.block{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:24px 26px;}
.block h2{font-size:1.12rem;margin:0 0 14px;font-weight:600;}
.block dl{margin:0;}
.block dt{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:13px;}
.block dt:first-child{margin-top:0;}
.block dd{margin:2px 0 0;font-size:.96rem;}
.block ul{margin:0;padding-left:19px;} .block li{margin-bottom:8px;font-size:.96rem;}

.hard{background:#FFF7E4;border:1px solid #E3C878;border-left:4px solid var(--gold);border-radius:6px;padding:24px 26px;margin:0 0 30px;}
.hard h2{font-size:1.12rem;margin:0 0 12px;font-weight:600;color:#5B4A20;}
.hard ul{margin:0;padding-left:19px;color:#5B4A20;} .hard li{margin-bottom:8px;font-size:.96rem;}

.ask{background:var(--forest);color:var(--paper);border-radius:7px;padding:26px 28px;margin:0 0 30px;}
.ask h2{font-size:1.12rem;margin:0 0 6px;font-weight:600;}
.ask p.cap{color:#C6D2C6;font-size:.9rem;margin:0 0 16px;}
.ask ol{margin:0;padding-left:20px;} .ask li{margin-bottom:10px;font-size:.98rem;}

.bookrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:24px 0 0;border-top:1px solid var(--line);}
.bookrow a.book{
  font-family:'Archivo';font-weight:600;font-size:.95rem;text-decoration:none;
  background:var(--gold);color:var(--bark);padding:13px 26px;border-radius:3px;
}
.bookrow a.book:hover{background:var(--bark);color:var(--paper);}
.bookrow .aff{font-size:.82rem;color:var(--muted);}

/* submit page */
.formpage{max-width:660px;margin:0 auto;padding:46px 24px 54px;}
.formpage h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 12px;font-weight:700;}
.fld{margin-bottom:20px;}
.fld label{display:block;font-family:'Archivo';font-size:.76rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;}
.fld input,.fld select,.fld textarea{
  width:100%;padding:11px 13px;border-radius:5px;border:1px solid var(--line);
  background:var(--paper);font-family:'Source Sans 3';font-size:1rem;color:var(--bark);
}
.fld textarea{min-height:110px;resize:vertical;}
.fld .help{font-size:.85rem;color:var(--muted);margin:6px 0 0;}
button.submit{
  font-family:'Archivo';font-weight:600;font-size:.95rem;background:var(--forest);color:var(--paper);
  border:none;padding:13px 28px;border-radius:3px;cursor:pointer;
}
button.submit:hover{background:var(--bark);}
