:root {
  --maroon: #4E101E;
  --teal: #2F5960;
  --orange: #B65F2D;
  --cream: #F4EFE5;
  --beige: #DEC3AE;
  --ink: #1f2328;
  --muted: #697278;
  --white: #fffdf8;
  --radius: 10px;
  --shadow: 0 12px 30px rgba(29, 14, 18, .12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--maroon);color:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.site-header{background:var(--maroon);position:relative;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.brand-banner{display:block;width:100%;height:auto;object-fit:cover;background:var(--maroon)}
.top-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:12px 18px 14px;border-top:1px solid rgba(244,239,229,.12);background:var(--teal)}
.nav-link{border:0;background:transparent;color:var(--cream);padding:8px 12px;border-radius:6px;font-weight:600}
.nav-link:hover{background:rgba(244,239,229,.14)}
.app-shell{min-height:calc(100vh - 190px)}
.view{display:none}
.view.active{display:block}
.content-panel,.narrow-panel{max-width:1180px;margin:0 auto;padding:48px 36px;background:var(--cream)}
.narrow-panel{max-width:680px;margin-top:56px;margin-bottom:56px;border-radius:var(--radius);box-shadow:var(--shadow)}
.intro-panel{text-align:center;margin-top:0}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-weight:700;color:var(--teal);font-size:.82rem}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;color:var(--maroon);line-height:1.05;margin:.25em 0 .45em}
h1{font-size:clamp(2.2rem,5vw,4.2rem)}
h2{font-size:2rem}
h3{font-size:1.55rem}
.lead{font-size:1.15rem;line-height:1.7;max-width:920px;margin:0 auto 28px}
.lead.small{font-size:1rem;text-align:left;margin-left:0}
.button-row,.form-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.btn{border:0;border-radius:6px;padding:12px 18px;font-weight:700;transition:.18s ease;display:inline-flex;align-items:center;justify-content:center}
.btn:hover{transform:translateY(-1px)}
.btn-orange{background:var(--orange);color:var(--cream)}
.btn-outline{background:transparent;border:1px solid var(--cream);color:var(--cream)}
.intro-panel .btn-outline{border-color:var(--maroon);color:var(--maroon)}
.btn-outline-dark{background:transparent;border:1px solid var(--maroon);color:var(--maroon)}
.compact{padding:10px 14px}
.text-link{background:none;border:0;color:var(--orange);text-decoration:underline;padding:0}
.form-card{margin:28px 0;background:#fffaf0;border:1px solid var(--beige);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.form-grid{display:grid;gap:20px}
.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid.one-col{grid-template-columns:1fr}
label,legend{font-weight:700;color:var(--maroon)}
label{display:flex;flex-direction:column;gap:8px}
input,select,textarea{width:100%;border:1px solid #c7c1b7;background:#fff;padding:12px 13px;border-radius:6px;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,89,96,.14)}
textarea{resize:vertical}
.span-2{grid-column:1 / -1}
.field-note{font-weight:400;color:var(--muted);font-size:.86rem;margin:2px 0 8px}
.checkbox-section{border:1px solid var(--beige);padding:18px;border-radius:8px;background:#fffdf8}
.checkbox-section legend{padding:0 8px;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem}
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-top:10px}
.check-option{display:flex;flex-direction:row;align-items:flex-start;gap:8px;color:var(--ink);font-weight:500}
.check-option input,.consent input{width:auto;margin-top:3px}
.consent{flex-direction:row;align-items:flex-start;background:#fff5e8;border-left:4px solid var(--orange);padding:16px;color:var(--ink)}
.message{margin-top:16px;padding:12px 14px;border-radius:6px;display:none}
.message.show{display:block}
.message.success{background:#e8f4ec;color:#245c35}
.message.error{background:#fdecec;color:#8a2323}
.message.info{background:#eef3f4;color:#294c52}
.directory-view{background:var(--teal);min-height:100vh;padding-bottom:60px}
.directory-hero{background:var(--maroon);color:var(--cream);text-align:center;padding:46px 24px 40px}
.directory-hero h1{color:var(--cream);margin-top:0}
.directory-hero p{max-width:980px;margin:0 auto;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.25rem}
.directory-content{max-width:1240px;margin:0 auto;padding:22px 28px}
.filter-bar{display:grid;grid-template-columns:2fr repeat(5,1fr) auto auto;gap:10px;align-items:center;margin-bottom:18px}
.filter-bar input,.filter-bar select{background:var(--cream);border:0}
.results-summary{color:var(--cream);margin:8px 0 16px;font-weight:600}
.member-grid{display:grid;grid-template-columns:1fr;gap:22px}
.member-card{background:var(--cream);padding:26px 28px;border-radius:2px;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.member-card h2{font-size:2rem;margin:0;color:var(--maroon)}
.business-name{color:var(--orange);font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem;font-weight:700;margin:4px 0 10px}
.location{color:var(--teal);font-weight:600;margin:2px 0}
.description{line-height:1.6;margin:14px 0 8px}
.services{line-height:1.55;margin:5px 0 0}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tag{background:#eadfd0;color:var(--maroon);font-size:.78rem;font-weight:700;padding:5px 8px;border-radius:999px}
.card-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.card-links a{color:var(--teal);font-weight:700;text-decoration:none}
.card-links a:hover{text-decoration:underline}
.access-notice{max-width:900px;margin:35px auto;background:var(--cream);padding:28px;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow)}
.site-footer{background:var(--maroon);color:var(--cream);text-align:center;padding:22px;font-size:.85rem}
.helper{text-align:center;margin-top:18px}
@media (max-width:1050px){
  .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-input{grid-column:1 / -1}
  .check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .top-nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
  .content-panel,.narrow-panel{padding:30px 20px;margin-top:0;border-radius:0}
  .form-grid.two-col{grid-template-columns:1fr}
  .span-2{grid-column:auto}
  .check-grid{grid-template-columns:1fr}
  .filter-bar{grid-template-columns:1fr}
  .search-input{grid-column:auto}
  .directory-content{padding:18px 14px}
  .member-card{padding:22px 18px}
  .directory-hero{padding:34px 18px}
}

.password-requirements {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 12px 14px;
  border: 1px solid rgba(47, 89, 96, 0.22);
  border-radius: 8px;
  background: rgba(244, 239, 229, 0.72);
  font-size: 0.92rem;
}
.password-requirements strong {
  width: 100%;
  color: #4E101E;
}
.password-requirements span::before {
  content: "○ ";
}
.password-requirements span.met {
  color: #2F5960;
}
.password-requirements span.met::before {
  content: "✓ ";
  font-weight: 700;
}
.password-requirements span.unmet {
  color: #6b5a54;
}

/* v5 directory/profile refinements */
.directory-kicker{
  margin:0 0 8px;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-weight:700;
  font-size:.78rem;
  color:var(--beige);
}
.photo-upload-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:22px;
  align-items:center;
  padding:18px;
  border:1px solid var(--beige);
  border-radius:8px;
  background:#fffdf8;
}
.photo-preview-wrap{display:flex;justify-content:center;align-items:center}
.photo-preview,.photo-placeholder{
  width:120px;
  height:120px;
  border-radius:50%;
  object-fit:cover;
  border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--teal);
  background:var(--cream);
}
.photo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  text-align:center;
  color:var(--teal);
  font-size:.78rem;
  font-weight:700;
}
.member-card{padding:28px 30px}
.member-card-layout{display:grid;grid-template-columns:112px minmax(0,1fr);gap:24px;align-items:start}
.member-photo-column{display:flex;justify-content:center}
.member-photo{
  width:96px;
  height:96px;
  border-radius:50%;
  object-fit:cover;
  border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--teal);
  background:#eadfd0;
}
.member-initials{display:flex;align-items:center;justify-content:center;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;font-weight:700;color:var(--maroon)}
.member-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-top:18px;padding-top:16px;border-top:1px solid #dfd6c9}
.member-details-grid div{display:flex;flex-direction:column;gap:3px;line-height:1.4}
.member-details-grid strong{color:var(--maroon);font-size:.83rem;text-transform:uppercase;letter-spacing:.05em}
.member-details-grid span{font-size:.92rem}
.connection-detail{line-height:1.55;margin:14px 0 0}
@media (max-width:720px){
  .photo-upload-panel{grid-template-columns:1fr}
  .member-card-layout{grid-template-columns:1fr}
  .member-photo-column{justify-content:flex-start}
  .member-details-grid{grid-template-columns:1fr}
}

/* v6 profile photo prominence */
.photo-upload-panel{border:2px solid var(--beige);background:#fffaf1;padding:18px;border-radius:10px;margin:8px 0 10px}
.photo-section-title{font-family:"Cormorant Garamond",serif;font-size:1.55rem;font-weight:700;color:var(--maroon);margin-bottom:4px}
.upload-label{display:block;font-weight:700;color:var(--teal);margin-bottom:8px}
.photo-preview-wrap{display:flex;align-items:center;justify-content:center}

/* v8 usability refinements */
.profile-toggle{
  margin-top:16px;border:0;background:transparent;color:var(--teal);font-weight:700;
  font:inherit;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px
}
.profile-toggle:hover{color:var(--orange)}
.member-expanded{margin-top:16px;padding-top:16px;border-top:1px solid rgba(78,16,30,.16)}
.member-expanded[hidden]{display:none!important}
.profile-form label .field-note{display:block;margin-top:6px;font-size:.86rem;font-weight:400;color:#5d5d5d;line-height:1.35}
