:root{--c:#2F7D6D;--bg:#FAF8F4;--ink:#1F2A37;--soft:#E8F3EF;--muted:#5B6675;--line:#E3E7E5}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}
.preview{background:#EEF2F0;text-align:center;padding:.4rem;font-size:.9rem}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:1rem 1.25rem;max-width:960px;margin:auto}
header a.logo{font-weight:700;font-size:1.3rem;color:var(--c);text-decoration:none}
nav a{margin-left:1rem;color:var(--ink)}main{max-width:960px;margin:auto;padding:0 1.25rem 3rem}
.hero{background:var(--soft);border-radius:18px;padding:2.5rem 1.5rem;text-align:center}
.hero h1{font-size:2rem;margin:.2rem 0}.btn{display:inline-block;background:var(--c);color:#fff;padding:.75rem 1.3rem;border-radius:999px;text-decoration:none;border:0;font-size:1rem;cursor:pointer;margin:.3rem}
.btn.alt{background:#fff;color:var(--c);border:2px solid var(--c)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem}
.card{background:#fff;border-radius:14px;padding:1.2rem;box-shadow:0 2px 10px #0000000d}
form{background:#fff;border-radius:14px;padding:1.5rem;box-shadow:0 2px 10px #0000000d;max-width:620px}
label{display:block;margin-top:1rem;font-weight:600}input,select,textarea{width:100%;padding:.65rem;border:1px solid #E3E7E5;border-radius:10px;font:inherit;margin-top:.3rem}
.check{display:flex;gap:.6rem;font-weight:400}.check input{width:auto}
.privacy{font-size:.88rem;background:var(--soft);padding:1rem;border-radius:12px;margin-top:2rem}
footer{text-align:center;font-size:.85rem;padding:2rem 1rem;color:#5B6675}

.note{background:#E8F3EF;border-left:4px solid #2F7D6D;padding:.8em 1em;border-radius:6px}
.small{font-size:.9em;color:#5B6675}.check{display:flex;gap:.5em;align-items:flex-start;font-weight:normal}.check input{width:auto;margin-top:.3em}
fieldset{border:1px solid #E3E7E5;border-radius:8px;margin:1em 0}.steps li{margin:.6em 0}.formtext{border:1px dashed #C9D1CD;padding:1em;border-radius:8px}
footer a{color:inherit}
.logo span{color:#2F7D6D}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ic{display:inline-block;width:36px;height:36px;border-radius:10px;background:#E8F3EF center/22px no-repeat;margin-bottom:.4em}
.ic-shield{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E")}
.ic-doc{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M6 2h9l5 5v15H6z'/%3E%3Cpath d='M9 13h8M9 17h6'/%3E%3C/svg%3E")}
.ic-stamp{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='12' r='2.5'/%3E%3Cpath d='M14 10h4M14 14h4'/%3E%3C/svg%3E")}
.ic-receipt{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M5 2h14v20l-3-2-2 2-2-2-2 2-2-2-3 2z'/%3E%3Cpath d='M9 8h6M9 12h6'/%3E%3C/svg%3E")}
.ic-tax{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M3 10l9-6 9 6M5 10v9h14v-9M9 19v-5h6v5'/%3E%3C/svg%3E")}
.ic-umbrella{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M2 12a10 10 0 0120 0z'/%3E%3Cpath d='M12 12v7a2 2 0 01-4 0'/%3E%3C/svg%3E")}
.ic-chat{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M4 4h16v12H8l-4 4z'/%3E%3C/svg%3E")}
.ic-loop{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D6D' stroke-width='2'%3E%3Cpath d='M4 12a8 8 0 0114-5l2 2M20 12a8 8 0 01-14 5l-2-2'/%3E%3Cpath d='M20 4v5h-5M4 20v-5h5'/%3E%3C/svg%3E")}
.num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#2F7D6D;color:#fff;font-weight:bold}
.cmp{width:100%;border-collapse:collapse;margin:1em 0;background:#fff;overflow:hidden;border-radius:12px}.cmp th,.cmp td{padding:.7em .85em;border-bottom:1px solid #E3E7E5;text-align:left;vertical-align:top}.cmp thead th{font-size:.95rem}.cmp thead th:nth-child(2){background:#F4EDEA;color:#8A4B3A}.cmp thead th:nth-child(3){background:#E8F3EF;color:var(--c)}.cmp tbody th{background:#FAF8F4;font-weight:600}.cmp td:nth-child(2){color:#6B4A42;background:#FBF6F4}.cmp td:nth-child(2)::before{content:"✕ ";color:#B86B5A;font-weight:700}.cmp td:nth-child(3){font-weight:600;color:#1F4F45;background:#F3FAF7}.cmp td:nth-child(3)::before{content:"✓ ";color:var(--c);font-weight:700}.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.trust{display:flex;flex-wrap:wrap;gap:.6em 1.5em;justify-content:center;padding:1em;margin:2em 0;border-top:1px solid #E3E7E5;border-bottom:1px solid #E3E7E5;font-size:.95em;color:#5B6675}
@media(max-width:600px){.cmp{font-size:.9em}}
/* calm palette overrides */
.btn:hover{background:#256558}.btn.alt:hover{background:#E8F3EF;color:#256558}
a{color:#256558}nav a{color:var(--ink)}.logo{color:var(--ink)!important}.logo span{color:var(--c)}
.preview{color:var(--muted);border-bottom:1px solid var(--line)}
.card,form,.cmp{border:1px solid var(--line);box-shadow:none}
.note{background:var(--soft);border-left-color:var(--c)}
.draft{background:#FFF9E0;border:1px solid #EADFA8;color:#5A4A12;font-weight:600}
mark{background:#FFE066;color:#1F2A37}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #2F7D6D;outline-offset:2px}
.hero2{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;align-items:center;background:var(--soft);border-radius:22px;padding:2rem;margin-top:.5rem}
.hero2 h1{font-size:2.2rem;line-height:1.2;margin:0 0 .6rem}.hero2 p{font-size:1.08rem}
.hero2-img{width:100%;height:100%;min-height:320px;object-fit:cover;object-position:60% 50%;border-radius:18px;display:block}
@media(max-width:800px){.hero2{grid-template-columns:1fr;padding:1.2rem}.hero2-img{order:-1;min-height:220px;max-height:300px}.hero2 h1{font-size:1.7rem}}
/* how-it-works timeline */
.lead{font-size:1.08rem;color:var(--muted);max-width:640px}
.timeline{list-style:none;margin:2rem 0 2.5rem;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:3px;background:var(--soft);border-radius:2px}
.tl-step{position:relative;padding-left:64px;margin:0 0 1.1rem}
.tl-num{position:absolute;left:0;top:.6rem;width:45px;height:45px;border-radius:50%;background:var(--c);color:#fff;font-weight:700;display:grid;place-items:center;border:4px solid var(--bg);font-size:1.05rem}
.tl-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem}
.tl-card h3{margin:.35rem 0 .3rem;font-size:1.12rem}.tl-card p{margin:0;color:var(--muted)}
.tl-tags{display:flex;gap:.4rem;flex-wrap:wrap}
.who{font-size:.75rem;font-weight:600;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.who-us{background:var(--soft);color:#256558;border-color:#CFE5DD}.who-ap{background:#F3F0FA;color:#4B3F72;border-color:#E2DCF0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:600px){.timeline::before{left:16px}.tl-step{padding-left:48px}.tl-num{width:35px;height:35px;font-size:.95rem;border-width:3px}.tl-card{padding:.85rem 1rem}}
mark.tbc{background:#FFE066;color:#1F2A37;padding:0 .2em;border-radius:3px}

.launch{background:#DCEBE5;color:var(--ink);text-align:center;padding:.5rem 1rem;font-size:.92rem}
.brandline{margin:.35rem 0 .75rem;color:var(--muted);font-weight:500;letter-spacing:.01em}
.launchline{display:inline-block;background:var(--soft);border-left:4px solid var(--c);padding:.45rem .8rem;border-radius:8px;font-weight:600}
.filters{max-width:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;background:#fff;border-radius:14px;padding:1rem;box-shadow:0 2px 10px #0000000d;margin-top:1rem}
.filters label{margin-top:0;font-size:.9rem}.filters .chk{display:flex;align-items:center;gap:.4rem}.filters .chk input{width:auto;margin:0}
.ap{position:relative}.ap .av{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#BFDCD2,#8FC1B3);display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:#fff;filter:blur(.3px)}
.ap .tag{position:absolute;top:.8rem;right:.8rem;background:#EEF2F0;color:var(--muted);font-size:.75rem;padding:.15rem .55rem;border-radius:999px}
.ap ul{list-style:none;padding:0;margin:.6rem 0;font-size:.93rem}.ap li{margin:.2rem 0}
.pnote{background:var(--soft);border-radius:12px;padding:.8rem 1rem;margin-top:1rem;font-size:.95rem}
dialog{border:0;border-radius:16px;padding:1.5rem;max-width:420px;width:92vw;box-shadow:0 10px 40px #0003}dialog::backdrop{background:#1F2A3766}
/* v2 signup + browse */
form h2{font-size:1.15rem;margin:1.8rem 0 .2rem;color:#256558}
.signin{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.5rem;max-width:620px;margin:1rem 0}
.gbtn{background:#fff;color:var(--ink);border:1px solid var(--line);margin-left:0}.gbtn:hover{background:var(--soft)}
.dob{display:grid;grid-template-columns:1fr 1.6fr 1.2fr;gap:.5rem}
.yn{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.yn span{flex:1 1 220px}.yn label{margin:0;font-weight:400;display:flex;gap:.3rem;align-items:center}.yn input{width:auto;margin:0}
.pills{display:flex;flex-wrap:wrap;gap:.4rem}.pill{margin:0;font-weight:400;border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem;display:flex;gap:.35rem;align-items:center}.pill input{width:auto;margin:0}
.about{display:grid;grid-template-columns:1fr;gap:.8rem}.guide{background:var(--soft);border-radius:12px;padding:.8rem 1rem;font-size:.92rem}.guide ul{margin:.4rem 0;padding-left:1.1rem}
.warn{background:#FFF4E5;border-left:3px solid #D9822B;padding:.4rem .6rem;border-radius:6px;font-size:.9rem}
.err{background:#FDECEC;color:#8A1C1C;padding:.6rem .8rem;border-radius:8px}
#prev{max-width:140px;border-radius:12px;margin-top:.5rem;display:block}#prev[hidden]{display:none}
@media(min-width:900px){form#apf{max-width:820px}.about{grid-template-columns:1.3fr 1fr}}
.badges{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}.badge{font-size:.75rem;background:var(--soft);color:#256558;border:1px solid #CFE5DD;border-radius:999px;padding:.1rem .5rem}.badge.no{background:#F4F5F5;color:var(--muted);border-color:var(--line)}
.legal h2{font-size:1.2rem;margin-top:1.8rem}.legal table{width:100%;border-collapse:collapse;background:#fff}.legal td,.legal th{border:1px solid var(--line);padding:.5rem;text-align:left;vertical-align:top}
.badge.ts{background:#FFF4E0;color:#8A5300;border-color:#F0D29A;cursor:help}
.notice{background:#FFF4E0;border-left:4px solid #E0A030;padding:.6rem .8rem;border-radius:8px}.notice[hidden]{display:none}
/* v3: accounts, shortlist, dashboard, messaging */
.langsw{margin-left:1rem;font-size:.9rem;color:var(--muted)}.langsw a{margin:0 .25rem}.langsw a[aria-current]{font-weight:700;color:var(--c);text-decoration:none}
.acct a{margin-left:1rem}.linkbtn{background:none;border:0;color:#256558;text-decoration:underline;cursor:pointer;font:inherit;margin-left:1rem;padding:0}
.ph{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;background:var(--soft);display:block}
.ap .ph{width:96px;height:96px;border-radius:50%}
.prof{display:grid;grid-template-columns:240px 1fr;gap:1.5rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.5rem;margin-top:1rem}
.status{display:inline-block;font-size:.8rem;font-weight:600;border-radius:999px;padding:.15rem .6rem;background:#EEF2F0;color:var(--muted)}
.status.pending{background:#FFF4E0;color:#8A5300}.status.accepted{background:var(--soft);color:#256558}.status.declined{background:#F4F5F5;color:var(--muted)}
.contact{background:var(--soft);border-left:4px solid var(--c);padding:.7rem 1rem;border-radius:10px;margin:.6rem 0}
.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.row>*{flex:0 0 auto}
.kids .kid{display:flex;gap:.5rem;align-items:end;margin:.3rem 0}.kids .kid label{margin:0;flex:1}.kids .kid button{margin:0}
.btn.small{padding:.4rem .9rem;font-size:.9rem}.btn.danger{background:#B3261E}.btn.ghost{background:none;color:var(--muted);border:1px solid var(--line)}
.chat{display:grid;grid-template-columns:260px 1fr;gap:1rem;margin-top:1rem}.threads{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.4rem}
.threads a{display:block;padding:.6rem .7rem;border-radius:10px;text-decoration:none;color:var(--ink)}.threads a.on,.threads a:hover{background:var(--soft)}.threads small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pane{background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:480px}
.pane .top{display:flex;gap:.6rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.pane .top h2{margin:0;font-size:1.1rem;flex:1}
.msgs{flex:1;overflow:auto;padding:1rem;display:flex;flex-direction:column;gap:.45rem;max-height:55vh}
.msg{max-width:75%;padding:.5rem .8rem;border-radius:14px;background:#F1F3F2;white-space:pre-wrap;word-wrap:break-word}.msg.mine{align-self:flex-end;background:var(--c);color:#fff}.msg time{display:block;font-size:.7rem;opacity:.7}
.send{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line);max-width:none;border-radius:0;margin:0;background:none;box-shadow:none;border-left:0;border-right:0;border-bottom:0}.send textarea{flex:1;margin:0}
.video{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.7rem}.video video{width:100%;background:#1F2A37;border-radius:12px;aspect-ratio:4/3}
@media(max-width:700px){.prof,.chat{grid-template-columns:1fr}.prof .ph{max-width:220px}.msg{max-width:90%}.video{grid-template-columns:1fr}nav a,.acct a,.langsw{margin-left:.6rem}}
.btn.small{color:#fff}.btn.alt.small{color:var(--c)}.btn.ghost.small{color:var(--muted)}a.btn{color:#fff}a.btn.gbtn{color:var(--ink)}a.btn.alt{color:var(--c)}
[hidden]{display:none!important}
.filters fieldset.must{grid-column:1/-1;margin:.4em 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem}.filters fieldset.must legend{font-weight:600}.filters fieldset.must p{flex-basis:100%;margin:0}

.badge.match,.status.matched{background:#E8F7EE;color:#1B6B3A;border:1px solid #B7E0C4;font-weight:700}
.card.match{border-color:#B7E0C4;box-shadow:0 0 0 2px #E8F7EE}

.role-switch{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem;padding:.35rem;background:#EEF2F0;border-radius:999px;width:fit-content}
.role-switch a{display:inline-block;padding:.45rem 1rem;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem}
.role-switch a.on{background:var(--c);color:#fff}
.role-switch a:not(.on):hover{background:#fff;color:var(--ink)}
.role-sub{margin:-.4rem 0 1rem;color:var(--muted);font-size:1.05rem}
