/* Palm marketing — shared styles for the home + per-vertical pages.
   Teal accent, Fraunces display / Manrope body, warm-cream ground. */
:root {
  --cream:#faf7f3; --paper:#fff; --ink:#1c2330; --muted:#697084; --faint:#98a0ae;
  --line:#ecedf2; --line-2:#e0e3ec;
  --teal:#14a596; --teal-deep:#0f8a7c; --teal-soft:#e6f4f1; --teal-ink:#0c7264;
  --peach:#e8896a; --peach-soft:#fbeee7; --amber:#e5a94e;
  --shadow-sm: 0 1px 2px rgba(30,40,38,.06), 0 6px 16px -10px rgba(30,50,46,.16);
  --shadow-lg: 0 2px 6px rgba(30,40,38,.06), 0 34px 66px -26px rgba(20,50,46,.34);
  --serif:'Fraunces','Hoefler Text',Georgia,ui-serif,serif;
  --sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --maxw:1120px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans);
  line-height:1.55; -webkit-font-smoothing:antialiased; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 24px; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:560; letter-spacing:-.012em; text-wrap:balance; margin:0; line-height:1.08; }
p { margin:0; }
a { color:inherit; text-decoration:none; }
em { font-style:italic; color:var(--teal-ink); }
:focus-visible { outline:2.5px solid var(--teal); outline-offset:3px; border-radius:6px; }

.btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-weight:700;
  font-size:15px; padding:13px 22px; border-radius:12px; border:1.5px solid transparent; cursor:pointer;
  transition:transform .12s, background .12s, border-color .12s, color .12s; white-space:nowrap; }
.btn-primary { background:var(--teal); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:var(--teal-deep); transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn-ghost:hover { border-color:var(--teal); color:var(--teal-ink); }
.eyebrow { display:inline-block; font-weight:750; font-size:13px; letter-spacing:.03em;
  color:var(--teal-ink); background:var(--teal-soft); padding:6px 13px; border-radius:999px; margin-bottom:20px; }

/* nav */
nav.top { position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--cream) 86%, transparent);
  backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line); }
nav.top .wrap { display:flex; align-items:center; justify-content:space-between; height:76px; gap:18px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; font-size:23px; }
.brand .leaf { color:var(--teal); display:inline-flex; }
.brand .leaf svg { width:27px; height:27px; }
.dot .leaf { display:inline-flex; color:var(--teal-ink); }
.dot .leaf svg { width:18px; height:18px; }

/* categorized mega-features block (Noterro-style) */
.fgroups { display:flex; flex-direction:column; gap:40px; }
.fgroup .fgh { font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--teal-ink);
  font-weight:800; margin-bottom:16px; display:flex; align-items:center; gap:9px; }
.fgroup .fgh .gi { display:inline-flex; }
.fgroup .fgh .gi svg { width:19px; height:19px; }
.fgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.fitem { display:flex; gap:13px; align-items:flex-start; background:var(--paper); border:1px solid var(--line);
  border-radius:14px; padding:16px; box-shadow:var(--shadow-sm); }
.fitem .fi { width:40px; height:40px; border-radius:11px; background:var(--teal-soft); color:var(--teal-ink);
  display:flex; align-items:center; justify-content:center; flex:none; }
.fitem .fi svg { width:21px; height:21px; }
.fitem b { display:block; font-size:15px; color:var(--ink); }
.fitem span { color:var(--muted); font-size:13px; }
@media (max-width:820px){ .fgrid { grid-template-columns:1fr; } }
.navlinks { display:flex; align-items:center; gap:8px; }
.navlinks a { color:var(--muted); font-weight:650; font-size:16px; padding:11px 15px; border-radius:10px; }
.navlinks a:hover { color:var(--ink); background:color-mix(in srgb,var(--teal-soft) 60%, transparent); }
/* "Who it's for" dropdown */
.hasmenu { position:relative; }
.hasmenu > a::after { content:'▾'; font-size:11px; margin-left:5px; opacity:.7; }
.menu { position:absolute; top:calc(100% + 4px); left:0; min-width:230px; background:var(--paper);
  border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-lg); padding:8px;
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .13s, transform .13s, visibility .13s; }
.hasmenu:hover .menu, .hasmenu:focus-within .menu { opacity:1; visibility:visible; transform:none; }
.menu a { display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:9px; color:var(--ink); font-weight:600; font-size:14px; }
.menu a:hover { background:var(--teal-soft); }
.menu a .mi { width:30px; height:30px; border-radius:8px; background:var(--teal-soft); color:var(--teal-ink);
  display:flex; align-items:center; justify-content:center; flex:none; }
.menu a .mi svg { width:17px; height:17px; }

/* wide features megamenu */
.menu.mega { display:flex; gap:30px; min-width:660px; padding:24px; }
.menu.mega .mgroup { flex:1; }
.menu.mega .mgh { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); font-weight:800; padding:2px 12px 12px; }
.menu.mega a { align-items:center; gap:13px; padding:11px 12px; }
.menu.mega a .mi { width:40px; height:40px; border-radius:11px; }
.menu.mega a .mi svg { width:21px; height:21px; }
.menu.mega a b { display:block; font-size:15.5px; color:var(--ink); }
.menu.mega a small { display:block; font-size:13px; color:var(--muted); font-weight:500; margin-top:2px; }
@media (max-width:920px){ .menu.mega { min-width:0; flex-direction:column; gap:8px; } }

nav.top .r { display:flex; align-items:center; gap:14px; }
nav.top .signin { color:var(--muted); font-weight:650; font-size:16px; }
nav.top .signin:hover { color:var(--ink); }
@media (max-width:820px){ .navlinks { display:none; } }

/* full-width Features mega menu (ported from legacy) */
.mega-wrap { position:static; }
.megabtn { color:var(--muted); font-weight:650; font-size:16px; font-family:var(--sans); background:none; border:0;
  cursor:pointer; padding:11px 15px; border-radius:10px; display:inline-flex; align-items:center; gap:6px; }
.megabtn:hover { color:var(--ink); background:color-mix(in srgb,var(--teal-soft) 60%, transparent); }
.megabtn svg { transition:transform .18s ease; }
.mega { position:absolute; left:0; right:0; top:100%; padding:10px 24px 0; z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-6px); pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, visibility .16s; }
.mega-inner { max-width:var(--maxw); margin:0 auto; background:var(--paper); border:1px solid var(--line);
  border-radius:18px; box-shadow:var(--shadow-lg); padding:24px 26px; }
.mega-wrap:hover .mega, .mega-wrap:focus-within .mega { opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.mega-wrap:hover .megabtn svg { transform:rotate(180deg); }
.mega-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px 24px; }
.mcol > .mh { display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:800; letter-spacing:.09em;
  text-transform:uppercase; color:var(--faint); padding:0 8px 9px; }
.mcol > .mh .gi { display:inline-flex; color:var(--teal); }
.mcol > .mh .gi svg { width:16px; height:16px; }
.mega a { display:block; text-decoration:none; padding:9px 9px; border-radius:10px; cursor:pointer; }
.mega a:hover { background:var(--teal-soft); }
.mega a b { display:block; font-size:14.5px; font-weight:700; color:var(--ink); }
.mega a span { display:block; font-size:12.5px; color:var(--muted); margin-top:1px; }
@media (max-width:1000px){ .mega-grid { grid-template-columns:1fr 1fr; } }

/* hero */
.hero { padding:74px 0 44px; }
.hero .wrap { display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.hero h1 { font-size:clamp(2.5rem,5.2vw,3.9rem); }
.hero .sub { color:var(--muted); font-size:19px; margin:22px 0 30px; max-width:38ch; }
.cta { display:flex; gap:13px; flex-wrap:wrap; align-items:center; }
.rea { margin-top:18px; color:var(--faint); font-size:14px; }
@media (max-width:860px){ .hero .wrap { grid-template-columns:1fr; gap:34px; } .hero { padding:44px 0 26px; } }

/* hero card mock */
.mock { background:var(--paper); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg); padding:20px; }
.mock .ch { display:flex; align-items:center; gap:10px; padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:12px; }
.dot { width:34px; height:34px; border-radius:50%; background:var(--teal-soft); color:var(--teal-ink);
  display:flex; align-items:center; justify-content:center; font-weight:800; flex:none; font-size:13px; }
.dot svg { width:17px; height:17px; }

/* vertical chips (feature pages: "works for every practice") */
.vchips { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.vchip { display:inline-flex; align-items:center; gap:8px; background:var(--paper); border:1px solid var(--line);
  border-radius:999px; padding:9px 16px; font-weight:650; font-size:14.5px; color:var(--ink); box-shadow:var(--shadow-sm); }
.vchip:hover { border-color:var(--teal); color:var(--teal-ink); }
.vchip .mi { width:24px; height:24px; color:var(--teal-ink); display:inline-flex; }
.vchip .mi svg { width:17px; height:17px; }
.mrow { display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px dashed var(--line); }
.mrow:last-child { border-bottom:0; }
.mrow .t { flex:1; min-width:0; } .mrow .t b { display:block; font-size:14.5px; }
.mrow .t span { font-size:12.5px; color:var(--muted); }
.pill { font-size:11.5px; font-weight:700; padding:4px 9px; border-radius:999px; background:var(--peach-soft); color:#b45; white-space:nowrap; }
.pill.ok { background:var(--teal-soft); color:var(--teal-ink); }

/* trust strip */
.trust { padding:14px 0 8px; }
.trust .wrap { display:flex; flex-wrap:wrap; gap:10px 26px; align-items:center; justify-content:center; color:var(--faint); font-size:14px; font-weight:600; }
.trust b { color:var(--teal-ink); }

/* section */
.sec { padding:64px 0; }
.sec.tint { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sec .lead { text-align:center; max-width:44ch; margin:0 auto 40px; }
.sec .lead h2 { font-size:clamp(1.9rem,3.4vw,2.6rem); }
.sec .lead p { color:var(--muted); font-size:18px; margin-top:12px; }

/* feature grid */
.feats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.feat { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:24px; box-shadow:var(--shadow-sm); }
.sec.tint .feat { background:var(--cream); }
.feat .ic { width:44px; height:44px; border-radius:13px; background:var(--teal-soft); color:var(--teal-ink);
  display:flex; align-items:center; justify-content:center; margin-bottom:15px; }
.feat .ic svg { width:23px; height:23px; }
.feat h3 { font-size:20px; margin-bottom:7px; }
.feat p { color:var(--muted); font-size:14.5px; }
@media (max-width:820px){ .feats { grid-template-columns:1fr; } }

/* how it works — numbered steps */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; counter-reset:step; }
.step { position:relative; padding-left:2px; }
.step .n { width:38px; height:38px; border-radius:50%; background:var(--ink); color:#fff; font-family:var(--serif);
  font-size:18px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.step h3 { font-size:19px; margin-bottom:6px; }
.step p { color:var(--muted); font-size:14.5px; }
@media (max-width:820px){ .steps { grid-template-columns:1fr; gap:16px; } }

/* spotlight — text + chat mock */
.spot { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.spot h2 { font-size:clamp(1.8rem,3.2vw,2.4rem); }
.spot p { color:var(--muted); font-size:17px; margin:14px 0 22px; }
.spot .bullets { display:flex; flex-direction:column; gap:10px; }
.spot .bullets div { display:flex; gap:10px; align-items:flex-start; font-weight:600; font-size:15px; }
.spot .bullets .ck { color:var(--teal); flex:none; display:inline-flex; }
.spot .bullets .ck svg { width:20px; height:20px; }
.chat { background:var(--paper); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg); padding:18px; }
.chat .ch { display:flex; align-items:center; gap:9px; padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid var(--line); font-weight:700; font-size:14px; }
.chat .ch .dot { width:30px; height:30px; }
.bub { max-width:82%; padding:10px 14px; border-radius:16px; font-size:14.5px; margin-bottom:10px; line-height:1.4; }
.bub.them { background:var(--surface); border-bottom-left-radius:5px; }
.bub.us { background:var(--teal); color:#fff; margin-left:auto; border-bottom-right-radius:5px; }
.bub small { display:block; font-size:11px; opacity:.7; margin-top:2px; }
@media (max-width:820px){ .spot { grid-template-columns:1fr; gap:30px; } }

/* stats */
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; text-align:center; }
.stat b { display:block; font-family:var(--serif); font-size:clamp(2rem,4vw,2.8rem); color:var(--teal-ink); line-height:1; }
.stat span { color:var(--muted); font-size:15px; margin-top:8px; display:block; }
@media (max-width:700px){ .stats { grid-template-columns:1fr; gap:26px; } }

/* industry cards — icon tile instead of emoji */
.ind .indic { width:46px; height:46px; border-radius:13px; background:var(--teal-soft); color:var(--teal-ink);
  display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.ind .indic svg { width:24px; height:24px; }

/* FAQ */
.faq { max-width:760px; margin:0 auto; }
.faq details { border-bottom:1px solid var(--line); padding:18px 0; }
.faq summary { list-style:none; cursor:pointer; font-family:var(--serif); font-size:18px; font-weight:560;
  display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; color:var(--teal); font-size:22px; font-family:var(--sans); line-height:1; }
.faq details[open] summary::after { content:'–'; }
.faq p { color:var(--muted); font-size:15px; margin-top:12px; }

/* industry selector (home) */
.inds { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.ind { display:block; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px;
  box-shadow:var(--shadow-sm); transition:transform .12s, border-color .12s, box-shadow .12s; }
.ind:hover { transform:translateY(-3px); border-color:var(--teal); box-shadow:var(--shadow-lg); }
.ind .emo { font-size:26px; }
.ind b { display:block; font-size:18px; margin:10px 0 4px; font-family:var(--serif); font-weight:560; }
.ind span { color:var(--muted); font-size:14px; }
.ind .go { display:inline-block; margin-top:12px; color:var(--teal-ink); font-weight:700; font-size:14px; }
@media (max-width:820px){ .inds { grid-template-columns:1fr; } }

/* included checklist */
.incl { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 30px; max-width:760px; margin:0 auto; }
.incl div { display:flex; gap:11px; align-items:flex-start; font-size:15.5px; color:var(--ink); }
.incl .ck { color:var(--teal); font-weight:800; flex:none; }
@media (max-width:640px){ .incl { grid-template-columns:1fr; } }

/* testimonial */
.quote { max-width:760px; margin:0 auto; text-align:center; }
.quote p { font-family:var(--serif); font-size:clamp(1.4rem,2.6vw,1.9rem); line-height:1.3; letter-spacing:-.01em; }
.quote .who { margin-top:18px; color:var(--muted); font-weight:600; font-size:15px; }

/* CTA band */
.band { background:var(--ink); color:#fff; border-radius:24px; padding:48px 40px; text-align:center; }
.band h2 { color:#fff; font-size:clamp(1.9rem,3.4vw,2.6rem); }
.band p { color:#c8cfdb; margin:14px auto 24px; max-width:46ch; font-size:17px; }

/* footer */
footer { border-top:1px solid var(--line); padding:30px 0 46px; color:var(--faint); font-size:13.5px; margin-top:30px; }
footer .wrap { display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; align-items:center; }
footer a { color:var(--muted); }
footer a:hover { color:var(--teal-ink); }
footer .fl { display:flex; gap:18px; flex-wrap:wrap; }

/* ============ industry showcase (per-vertical app mock) ============ */
.showcase .wrap { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.showcase .sc-copy h2 { font-size:clamp(1.8rem,3.2vw,2.4rem); }
.showcase .sc-copy p { color:var(--muted); font-size:17px; margin:14px 0 20px; }
.showcase .bullets { display:flex; flex-direction:column; gap:11px; }
.showcase .bullets div { display:flex; gap:10px; align-items:flex-start; font-weight:600; font-size:15px; }
.showcase .bullets .ck { color:var(--teal); flex:none; display:inline-flex; }
.showcase .bullets .ck svg { width:20px; height:20px; }
@media (max-width:860px){ .showcase .wrap { grid-template-columns:1fr; gap:30px; } }

.scmock { background:var(--paper); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-lg); overflow:hidden; }
.scmock .schead { display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid var(--line); }
.scmock .schead b { font-size:14px; } .scmock .schead small { display:block; color:var(--faint); font-weight:600; font-size:11.5px; }
.scmock .schead .pill { margin-left:auto; font-size:10.5px; font-weight:800; padding:4px 9px; border-radius:999px; background:var(--teal-soft); color:var(--teal-ink); }
.scmock .scbody { padding:16px; }
.scrow { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px dashed var(--line); font-size:13.5px; }
.scrow:last-child { border-bottom:0; }
.scrow .t { flex:1; } .scrow .t b { display:block; font-size:14px; } .scrow .t span { color:var(--muted); font-size:12.5px; }
.scrow .amt { font-weight:800; color:var(--teal-ink); }

/* before/after tiles */
.ba { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ba figure { margin:0; }
.ba .img { aspect-ratio:1; border-radius:12px; position:relative; overflow:hidden; }
.ba .img.before { background:linear-gradient(150deg,#e7cfc2,#d7b7a6); }
.ba .img.after { background:linear-gradient(150deg,#e9f2ef,#cfe6dd); }
.ba .img span { position:absolute; top:8px; left:8px; font-size:9.5px; font-weight:800; letter-spacing:.05em; background:rgba(255,255,255,.85); color:var(--ink); padding:3px 8px; border-radius:6px; }
.ba figcaption { font-size:11.5px; color:var(--muted); margin-top:6px; }

/* consent (reuse tour fm look) */
.fmdoc2 { border:1px solid var(--line); border-radius:10px; padding:14px 16px; background:linear-gradient(180deg,#fff,#fcfbf9); position:relative; }
.fmdoc2 .stamp { position:absolute; top:10px; right:10px; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--teal-ink); background:var(--teal-soft); border:1px solid #cfe9e3; padding:3px 8px; border-radius:6px; }
.fmdoc2 .ttl { font-family:var(--serif); font-size:15px; font-weight:600; margin-bottom:12px; }
.fmfld { position:relative; background:#fbf1de; border:1px solid #e9cf94; border-radius:7px; padding:7px 10px; font-size:13px; font-weight:600; color:var(--ink); margin-top:16px; }
.fmfld .tg { position:absolute; top:-8px; left:8px; font-size:8px; font-weight:800; letter-spacing:.05em; background:var(--amber); color:#fff; padding:1px 6px; border-radius:4px; }
.fmsign { margin-top:16px; border:1px dashed #e9cf94; background:#fbf1de; border-radius:8px; padding:8px 12px; min-height:46px; display:flex; align-items:flex-end; position:relative; }
.fmsign .tg { position:absolute; top:-8px; left:8px; font-size:8px; font-weight:800; letter-spacing:.05em; background:var(--amber); color:#fff; padding:1px 6px; border-radius:4px; }
.fmsign .ink { font-family:'Segoe Script','Bradley Hand','Snell Roundhand','Brush Script MT',cursive; font-size:22px; color:#1f3a5f; transform:rotate(-3deg); line-height:1; }
