:root {  --sage-900: #2c3a2c;  --sage-700: #45543f;  --sage-600: #5b6b52;  --sage-500: #6f8064;  --sage-100: #e5ebdf;  --sage-50:  #f1f4ec;  --plum-900: #4a2338;  --plum-700: #6b2f4c;  --plum-600: #7d3a58;  --gold:     #c8973f;  --cream:    #f7f4ee;  --paper:    #fffdf9;  --ink:      #2a2622;  --ink-soft: #5c554d;  --line:     #e6ded2;  --shadow:   0 4px 24px rgba(60, 50, 40, 0.08);  --shadow-sm:0 2px 8px rgba(60, 50, 40, 0.06);  --radius:   16px;  --radius-sm:10px;}* { box-sizing: border-box; margin: 0; padding: 0; }html { scroll-behavior: smooth; }body {  font-family: 'Inter', system-ui, sans-serif;  color: var(--ink);  background: var(--cream);  line-height: 1.6;  -webkit-font-smoothing: antialiased;}h1, h2, h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 500; line-height: 1.2; color: var(--sage-900); }.skip-link {  position: absolute; left: -999px; top: 0; z-index: 100;  background: var(--plum-700); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;}.skip-link:focus { left: 0; }button { font-family: inherit; cursor: pointer; }*:focus-visible {  outline: 3px solid var(--gold);  outline-offset: 2px;  border-radius: 4px;}/* ===== HEADER ===== */.site-header {  background: linear-gradient(135deg, var(--sage-700) 0%, var(--sage-600) 100%);  color: var(--cream);  padding: 40px 24px 44px;}.header-inner {  max-width: 1080px; margin: 0 auto;  display: flex; flex-wrap: wrap; gap: 28px;  align-items: center; justify-content: space-between;}.header-profile { display: flex; gap: 24px; align-items: center; flex: 1 1 auto; min-width: 280px; }.avatar-frame {  width: 128px; height: 152px; flex-shrink: 0;  border-radius: 20px; padding: 5px;  background: rgba(255,255,255,0.15);  box-shadow: var(--shadow);}.avatar {  width: 100%; height: 100%; object-fit: cover; object-position: top center;  border-radius: 16px; display: block;  background: var(--sage-100);}.badge-row { margin-bottom: 10px; }.avail-badge {  display: inline-flex; align-items: center; gap: 8px;  background: rgba(255,255,255,0.16); color: #fff;  padding: 6px 13px; border-radius: 999px;  font-size: 0.82rem; font-weight: 600;}.avail-badge .dot { width: 8px; height: 8px; border-radius: 50%; background: #8ede9d; box-shadow: 0 0 0 3px rgba(142,222,157,0.3); }.header-text h1 { color: #fff; font-size: 2rem; }.pronouns { font-size: 1rem; font-weight: 400; opacity: 0.8; font-family: 'Inter'; }.header-role { color: rgba(255,255,255,0.85); font-size: 0.95rem; margin-top: 4px; }.header-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; font-size: 0.9rem; }.header-meta li { display: flex; align-items: center; gap: 6px; color: rgba(255,255,255,0.9); }.meta-icon { color: var(--gold); }.header-meta .price strong { font-size: 1.1rem; color: #fff; }.header-cta { text-align: center; }.btn-book {  background: var(--gold); color: #3a2a12;  border: none; padding: 14px 30px; border-radius: 999px;  font-size: 1rem; font-weight: 700;  box-shadow: var(--shadow); transition: transform .15s, background .2s;}.btn-book:hover { background: #d8a94e; transform: translateY(-2px); }.header-cta-note { font-size: 0.78rem; opacity: 0.8; margin-top: 10px; }/* ===== TABS ===== */.tabs {  position: sticky; top: 0; z-index: 50;  background: var(--paper);  border-bottom: 1px solid var(--line);  box-shadow: var(--shadow-sm);}.tabs-inner {  max-width: 1080px; margin: 0 auto;  display: flex; position: relative;  padding: 0 12px; overflow-x: auto;}.tab {  background: none; border: none;  padding: 18px 22px; font-size: 0.98rem; font-weight: 600;  color: var(--ink-soft); white-space: nowrap;  transition: color .2s;}.tab:hover { color: var(--sage-700); }.tab.active { color: var(--plum-700); }.tab-indicator {  position: absolute; bottom: 0; height: 3px;  background: var(--plum-700); border-radius: 3px 3px 0 0;  transition: left .3s cubic-bezier(.4,0,.2,1), width .3s cubic-bezier(.4,0,.2,1);}/* ===== PANELS ===== */.panel { display: none; }.panel.active { display: block; animation: fadeUp .4s ease; }@keyframes fadeUp {  from { opacity: 0; transform: translateY(10px); }  to { opacity: 1; transform: translateY(0); }}.container { max-width: 1080px; margin: 0 auto; padding: 40px 24px 60px; }.container-narrow { max-width: 720px; }/* ===== CARDS ===== */.card {  background: var(--paper);  border: 1px solid var(--line);  border-radius: var(--radius);  padding: 28px 30px;  box-shadow: var(--shadow-sm);  margin-bottom: 24px;}.card h2 { font-size: 1.45rem; margin-bottom: 14px; }.card h3 { font-size: 1.05rem; margin-bottom: 10px; }.card p { margin-bottom: 12px; color: var(--ink-soft); }.card p:last-child { margin-bottom: 0; }.card-sub { font-size: 0.85rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sage-600); font-weight: 600; margin: 18px 0 10px; }.card-sub:first-of-type { margin-top: 0; }.grid-about { display: grid; grid-template-columns: 1fr 320px; gap: 28px; align-items: start; }.about-side .side-card { padding: 22px 24px; }.about-side .side-card h3 { color: var(--plum-700); }.expect-list { margin: 4px 0 16px; padding-left: 20px; }.expect-list li { color: var(--ink-soft); margin-bottom: 10px; }.pull-quote {  position: relative;  background: linear-gradient(135deg, var(--plum-700), var(--plum-900));  color: var(--cream);  border-radius: var(--radius);  padding: 36px 40px 36px 66px;  font-family: 'Fraunces', serif; font-size: 1.3rem; line-height: 1.5;  margin-bottom: 24px; box-shadow: var(--shadow);}.quote-mark { position: absolute; left: 22px; top: 12px; font-size: 4rem; opacity: 0.4; font-family: Georgia; }/* PILLS */.pill-row { display: flex; flex-wrap: wrap; gap: 8px; }.pill-row-secondary { margin-top: 4px; }.pill {  display: inline-block; padding: 7px 15px; border-radius: 999px;  font-size: 0.85rem; font-weight: 500;  background: var(--sage-50); color: var(--sage-700);  border: 1px solid var(--sage-100);}.pill-top {  background: var(--plum-700); color: #fff; border-color: var(--plum-700);  font-weight: 600;}.pill-quiet { background: var(--cream); }/* METHODS */.method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.method-card {  background: var(--sage-50); border: 1px solid var(--sage-100);  border-radius: var(--radius-sm); padding: 18px 20px;  border-left: 4px solid var(--sage-500);}.method-card h3 { color: var(--sage-700); font-size: 1rem; margin-bottom: 6px; }.method-card p { font-size: 0.9rem; margin: 0; }/* CREDENTIALS / LICENSES */.cred-list { list-style: none; }.cred-list li { padding: 8px 0 8px 22px; position: relative; font-size: 0.92rem; color: var(--ink-soft); border-bottom: 1px solid var(--line); }.cred-list li:last-child { border-bottom: none; }.cred-list li::before { content: "✓"; position: absolute; left: 0; color: var(--sage-600); font-weight: 700; }.loc-line { display: flex; gap: 8px; font-size: 0.92rem; }.license-list { list-style: none; }.license-list li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: 0.9rem; border-bottom: 1px solid var(--line); }.license-list li:last-child { border-bottom: none; }.lic-num { color: var(--sage-600); font-weight: 600; font-size: 0.82rem; }.verify-note { font-size: 0.78rem; color: var(--ink-soft); font-style: italic; margin-top: 12px; }/* INSURANCE */.insurance-list { display: flex; flex-wrap: wrap; gap: 8px; }.ins-item { background: var(--sage-50); border: 1px solid var(--sage-100); border-radius: 8px; padding: 5px 12px; font-size: 0.83rem; color: var(--sage-700); }.ins-item.extra { display: none; }.insurance-list.expanded .ins-item.extra { display: inline-block; }.btn-text {  background: none; border: none; color: var(--plum-700);  font-weight: 600; font-size: 0.9rem; padding: 12px 0 0; text-decoration: underline;}.btn-text:hover { color: var(--plum-900); }/* ===== SCHEDULE ===== */.sched-card { padding: 32px 34px; }.field { margin-bottom: 22px; }.field label, .field legend { display: block; font-weight: 600; font-size: 0.92rem; margin-bottom: 8px; color: var(--sage-900); }select, input[type="text"], textarea {  width: 100%; padding: 12px 14px; border: 1.5px solid var(--line);  border-radius: var(--radius-sm); font-family: inherit; font-size: 0.95rem;  background: var(--paper); color: var(--ink);}select:focus, input:focus, textarea:focus { border-color: var(--sage-500); outline: none; box-shadow: 0 0 0 3px rgba(111,128,100,0.2); }textarea { resize: vertical; }.tooltip-trigger {  background: none; border: none; color: var(--plum-700); font-weight: 600;  font-size: 0.8rem; text-decoration: underline; margin-left: 8px; padding: 0;}.tooltip-box {  background: var(--plum-900); color: #fff; padding: 10px 14px; border-radius: 8px;  font-size: 0.83rem; font-weight: 400; margin-top: 8px; max-width: 340px;}.session-toggle { border: none; }.session-toggle { display: block; }.radio-chip {  display: inline-flex; align-items: center; margin-right: 10px; margin-top: 2px;  position: relative; font-weight: 500 !important;}.radio-chip input { position: absolute; opacity: 0; }.radio-chip span {  display: inline-block; padding: 10px 22px; border: 1.5px solid var(--line);  border-radius: 999px; background: var(--paper); font-size: 0.9rem;  transition: all .2s;}.radio-chip input:checked + span { background: var(--sage-600); color: #fff; border-color: var(--sage-600); }.radio-chip input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }.radio-chip.small span { padding: 8px 16px; font-size: 0.85rem; }.privacy-note { font-size: 0.82rem; color: var(--ink-soft); background: var(--sage-50); border-radius: 8px; padding: 10px 14px; margin-bottom: 22px; }.slots-heading { font-size: 1.1rem; margin-bottom: 16px; }.date-group { margin-bottom: 18px; }.date-label { font-weight: 700; color: var(--plum-700); font-size: 0.9rem; margin-bottom: 8px; }.slot-row { display: flex; flex-wrap: wrap; gap: 8px; }.slot {  border: 1.5px solid var(--sage-100); background: var(--paper);  color: var(--sage-700); padding: 10px 16px; border-radius: var(--radius-sm);  font-size: 0.9rem; font-weight: 600; transition: all .18s;}.slot:hover { border-color: var(--sage-500); background: var(--sage-50); }.slot.selected {  background: var(--sage-600); color: #fff; border-color: var(--sage-600);  transform: scale(1.04);}.slot .chip {  display: block; font-size: 0.7rem; font-weight: 500; margin-top: 2px; opacity: 0.9;}.tz-note { font-size: 0.8rem; color: var(--ink-soft); margin-top: 14px; font-style: italic; }.form-error { color: var(--plum-700); background: #fbecec; border: 1px solid #f3d3d3; padding: 10px 14px; border-radius: 8px; font-size: 0.88rem; font-weight: 500; margin-bottom: 14px; }.btn-schedule {  width: 100%; background: var(--plum-700); color: #fff; border: none;  padding: 16px; border-radius: 999px; font-size: 1.05rem; font-weight: 700;  transition: background .2s, opacity .2s;}.btn-schedule:hover:not(:disabled) { background: var(--plum-900); }.btn-schedule:disabled { opacity: 0.45; cursor: not-allowed; }.btn-schedule.loading { opacity: 0.8; cursor: wait; }.schedule-success { text-align: center; padding: 20px 0; }.success-check {  width: 64px; height: 64px; border-radius: 50%; background: var(--sage-100);  color: var(--sage-700); font-size: 2rem; display: flex; align-items: center; justify-content: center;  margin: 0 auto 18px; animation: pop .4s ease;}@keyframes pop { 0% { transform: scale(0); } 70% { transform: scale(1.15); } 100% { transform: scale(1); } }.success-detail { font-size: 1.05rem; color: var(--sage-900); font-weight: 600; margin-bottom: 8px; }/* ===== REVIEWS ===== */.review-summary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; }.summary-score { display: flex; align-items: center; gap: 18px; }.big-score { font-family: 'Fraunces', serif; font-size: 3rem; color: var(--plum-700); font-weight: 600; }.summary-stars { color: var(--gold); font-size: 1.2rem; letter-spacing: 2px; }.summary-count { font-size: 0.88rem; color: var(--ink-soft); margin: 0; }.review-sort { display: flex; align-items: center; gap: 10px; }.review-sort label { font-weight: 600; font-size: 0.88rem; margin: 0; }.review-sort select { width: auto; padding: 8px 12px; }.review-list { display: flex; flex-direction: column; gap: 16px; }.review-item {  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);  padding: 24px 26px; box-shadow: var(--shadow-sm);  animation: fadeUp .35s ease;}.review-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; flex-wrap: wrap; gap: 6px; }.review-stars { color: var(--gold); letter-spacing: 2px; font-size: 1.05rem; }.review-stars .empty { color: var(--line); }.review-date { font-size: 0.82rem; color: var(--ink-soft); }.review-text { color: var(--ink); font-size: 0.98rem; margin-bottom: 14px; }.review-footer { font-size: 0.8rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 12px; display: flex; flex-wrap: wrap; gap: 4px 14px; }.review-footer .verified { color: var(--sage-700); font-weight: 600; }.review-form-card .field-row { display: flex; gap: 16px; flex-wrap: wrap; }.review-form-card .field-row .field { flex: 1 1 180px; }.star-input { display: flex; gap: 6px; }.star-btn {  background: none; border: none; font-size: 1.8rem; line-height: 1;  color: var(--line); padding: 2px; transition: color .15s, transform .1s;}.star-btn:hover, .star-btn.hover { color: var(--gold); transform: scale(1.08); }.star-btn.selected { color: var(--gold); }.review-thanks {  color: var(--sage-700); background: var(--sage-50); border: 1px solid var(--sage-100);  padding: 10px 14px; border-radius: 8px; font-size: 0.88rem; font-weight: 600; margin-bottom: 14px;}/* ===== MATCH ===== */.match-card legend { margin-bottom: 12px; }.chip-select { display: flex; flex-wrap: wrap; gap: 9px; }.check-chip { position: relative; }.check-chip input { position: absolute; opacity: 0; }.check-chip span {  display: inline-block; padding: 9px 16px; border: 1.5px solid var(--line);  border-radius: 999px; background: var(--paper); font-size: 0.87rem; font-weight: 500;  transition: all .18s;}.check-chip:hover span { border-color: var(--sage-500); }.check-chip input:checked + span { background: var(--sage-100); border-color: var(--sage-600); color: var(--sage-900); font-weight: 600; }.check-chip input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }.match-disclaimer { font-size: 0.78rem; color: var(--ink-soft); font-style: italic; margin-top: 16px; }.match-result { animation: fadeUp .4s ease; }.match-result h2 { margin-bottom: 8px; }.match-badge {  display: inline-block; padding: 6px 16px; border-radius: 999px; font-weight: 700;  font-size: 0.85rem; margin-bottom: 16px;}.match-badge.strong { background: var(--sage-100); color: var(--sage-700); }.match-badge.partial { background: #fbf1dc; color: #8a6414; }.match-badge.weak { background: #f3e6ec; color: var(--plum-700); }.match-reasons { list-style: none; margin: 14px 0; }.match-reasons li { padding: 10px 0 10px 26px; position: relative; border-bottom: 1px solid var(--line); font-size: 0.92rem; color: var(--ink-soft); }.match-reasons li:last-child { border-bottom: none; }.match-reasons li::before { content: "◆"; position: absolute; left: 0; color: var(--sage-600); }.match-reasons li.gap::before { content: "!"; color: var(--plum-700); font-weight: 700; }.match-quote { font-family: 'Fraunces', serif; font-style: italic; color: var(--sage-700); background: var(--sage-50); border-left: 4px solid var(--sage-500); padding: 14px 18px; border-radius: 0 8px 8px 0; margin: 16px 0; }.match-cta { margin-top: 8px; }/* ===== FOOTER ===== */.site-footer { background: var(--sage-900); color: rgba(255,255,255,0.85); padding: 40px 24px 24px; }.footer-inner { max-width: 1080px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 22px; justify-content: space-between; align-items: flex-start; }.footer-name { color: #fff; font-weight: 600; margin-bottom: 4px; }.footer-addr { font-size: 0.88rem; }.footer-nav { display: flex; flex-wrap: wrap; gap: 16px; }.footer-link { background: none; border: none; color: rgba(255,255,255,0.85); font-size: 0.9rem; font-weight: 500; padding: 0; }.footer-link:hover { color: var(--gold); text-decoration: underline; }.crisis-line { font-size: 0.88rem; flex-basis: 100%; background: rgba(255,255,255,0.08); padding: 12px 16px; border-radius: 8px; border-left: 3px solid var(--gold); }.crisis-line strong { color: #fff; }.copyright { max-width: 1080px; margin: 24px auto 0; font-size: 0.8rem; color: rgba(255,255,255,0.5); border-top: 1px solid rgba(255,255,255,0.12); padding-top: 18px; }/* ===== RESPONSIVE ===== */@media (max-width: 860px) {  .grid-about { grid-template-columns: 1fr; }  .method-grid { grid-template-columns: 1fr; }}@media (max-width: 620px) {  .site-header { padding: 28px 18px 32px; }  .header-inner { flex-direction: column; align-items: flex-start; }  .header-profile { flex-direction: column; text-align: center; align-items: center; }  .header-text { text-align: center; }  .header-meta { justify-content: center; }  .header-cta { width: 100%; }  .btn-book { width: 100%; }  .avatar-frame { width: 108px; height: 128px; }  .header-text h1 { font-size: 1.6rem; }  .container { padding: 28px 16px 48px; }  .card { padding: 22px 20px; }  .pull-quote { font-size: 1.1rem; padding: 30px 24px 30px 52px; }  .review-summary { flex-direction: column; align-items: flex-start; }  .review-form-card .field-row { flex-direction: column; gap: 0; }}
