/* Provider front door only. Shared dashboard and homeowner styles stay independent. */
:root { color-scheme:light; --bg:#fcfdfa; --surface:#fff; --tint:#e7f0e9; --ink:#162c23; --dim:#4a6154; --accent:#266044; --line:#ccd9ce; --chat:#e9e9eb; --chat-ink:#000; --blue:#007aff; --button:#216043; --button-ink:#fff; --shadow:0 24px 64px rgba(21,49,35,.07); }
html[data-theme="dark"] { color-scheme:dark; --bg:#142620; --surface:#1e352c; --tint:#1a3027; --ink:#f5f4ef; --dim:#bed0c3; --accent:#afcbb9; --line:#3d5549; --chat:#e5e5ea; --chat-ink:#000; --blue:#0a84ff; --button:#afcbb9; --button-ink:#142620; --shadow:0 24px 64px rgba(0,0,0,.12); }
* { box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-padding-top:28px; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Helvetica,Arial,sans-serif; }
a { color:inherit; text-underline-offset:4px; }
button { font:inherit; }
a,button,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon-defs { position:absolute; width:0; height:0; overflow:hidden; }
.wrap { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.skip-link { position:absolute; top:12px; left:20px; padding:12px; background:var(--surface); z-index:10; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.header { display:flex; align-items:center; justify-content:space-between; padding-block:28px; gap:20px; }
.wordmark { display:inline-flex; align-items:center; gap:10px; text-decoration:none; letter-spacing:.15em; font-size:13px; font-weight:750; }
.wordmark img { border-radius:8px; }
.wordmark span { margin-left:12px; border-left:1px solid var(--line); padding-left:18px; color:var(--dim); font-size:10px; letter-spacing:.12em; }
.header nav { display:flex; gap:26px; align-items:center; }
.header nav>a { font-size:14px; font-weight:550; text-decoration:none; }
.header nav>a:hover { text-decoration:underline; }
.theme-toggle { display:grid; place-items:center; border:1px solid var(--line); width:40px; height:40px; padding:9px; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.theme-toggle svg { width:20px; height:20px; }
.sun,html[data-theme="dark"] .moon { display:none; }
html[data-theme="dark"] .sun { display:block; }
.hero { display:grid; grid-template-columns:1.05fr 1fr; gap:74px; align-items:center; padding-block:90px 80px; }
.eyebrow { margin:0 0 22px; font-size:11px; line-height:1.5; letter-spacing:.16em; font-weight:750; text-transform:uppercase; color:var(--accent); }
h1,h2,h3,p { overflow-wrap:break-word; }
h1,h2,h3 { margin:0; }
h1 { font-size:clamp(48px,5.8vw,74px); line-height:1.08; letter-spacing:-.02em; font-weight:700; max-width:9em; }
h1 em { color:var(--accent); font-style:normal; }
h2 { font-size:clamp(36px,4.2vw,52px); line-height:1.09; letter-spacing:-.045em; font-weight:700; }
h3 { font-size:23px; line-height:1.2; letter-spacing:-.025em; font-weight:650; }
.lead { color:var(--dim); font-size:20px; line-height:1.55; margin:25px 0 0; max-width:32em; }
.hero .lead { font-size:18px; }
.hero-promise { font-size:18px; font-weight:600; margin:22px 0 26px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:54px; padding:15px 22px; border-radius:12px; text-decoration:none; font-size:16px; font-weight:650; }
.primary { background:var(--button); color:var(--button-ink); }
.button:hover { filter:brightness(1.08); }
.button svg { width:20px; height:20px; }
.cta-note { margin:16px 0 0; color:var(--dim); font-size:13px; line-height:1.65; }
/* The homeowner site's Messages bubbles, with visible group-chat sender labels. */
.conversation-example { margin:0; min-width:0; }
.thread { list-style:none; margin:0; padding:0 12px; display:flex; flex-direction:column; gap:17px; }
.message { display:flex; flex-direction:column; align-items:flex-start; max-width:88%; }
.message-customer { align-self:flex-end; align-items:flex-end; }
.speaker { display:block; margin:0 0 5px 16px; font-size:11px; font-weight:500; color:var(--dim); }
.message-customer .speaker { margin:0 16px 5px 0; }
.msg { position:relative; margin:0; padding:11px 16px 12px; border-radius:20px; font-size:18px; line-height:1.32; word-wrap:break-word; }
.msg-you { background:var(--blue); color:#fff; border-bottom-right-radius:6px; }
.msg-paddock { background:var(--chat); color:var(--chat-ink); border-bottom-left-radius:6px; }
.msg-you::before,.msg-paddock::before { content:""; position:absolute; bottom:0; width:18px; height:20px; }
.msg-you::before { right:-7px; background:var(--blue); border-bottom-left-radius:16px 14px; }
.msg-paddock::before { left:-7px; background:var(--chat); border-bottom-right-radius:16px 14px; }
.msg-you::after,.msg-paddock::after { content:""; position:absolute; bottom:0; width:10px; height:20px; background:var(--bg); }
.msg-you::after { right:-10px; border-bottom-left-radius:10px; }
.msg-paddock::after { left:-10px; border-bottom-right-radius:10px; }
/* Reserve each message's space while the conversation plays once in view. */
.conversation-example .message-pending { visibility:hidden; }
.conversation-example .message-revealed { animation:provider-message-in .32s ease-out both; }
@keyframes provider-message-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
.trades { padding-block:64px 0; border-top:1px solid var(--line); }
.trades .section-heading { max-width:none; text-align:center; }
.trades .lead { margin-inline:auto; max-width:35em; }
.trades h2 { font-size:clamp(34px,3.8vw,46px); }
.trades-marquee { margin:36px 0 0; }
.trade-row + .trade-row { margin-top:12px; }
.trade-list { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:0; padding:0; list-style:none; }
.trade-list[aria-hidden="true"] { display:none; }
/* Equal perceptual lightness/chroma keeps eight trade families harmonious. */
.trade { display:inline-flex; align-items:center; flex-shrink:0; gap:10px; padding:8px 12px; border:1px solid oklch(87% .045 var(--trade-hue)); border-radius:10px; background:oklch(96% .025 var(--trade-hue)); font-size:15px; line-height:1.4; font-weight:550; white-space:nowrap; }
.trade svg { width:23px; height:23px; stroke-width:1.7; color:oklch(43% .09 var(--trade-hue)); }
html[data-theme="dark"] .trade { background:oklch(28% .03 var(--trade-hue)); border-color:oklch(38% .04 var(--trade-hue)); }
html[data-theme="dark"] .trade svg { color:oklch(82% .085 var(--trade-hue)); }
.trades-marquee[data-motion] { overflow:hidden; mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent); }
.trades-marquee[data-motion] .trade-track { display:flex; width:max-content; animation:trade-scroll 115s linear infinite; }
.trades-marquee[data-motion] .trade-list { display:flex; flex-wrap:nowrap; justify-content:flex-start; flex-shrink:0; padding-right:12px; }
.trades-marquee[data-motion] .trade-row:nth-child(even) .trade-track { animation-direction:reverse; }
.trades-marquee[data-motion] .trade-row:nth-child(2) .trade-track { animation-duration:122s; }
.trades-marquee[data-motion] .trade-row:nth-child(3) .trade-track { animation-duration:118s; }
.trades-marquee[data-motion] .trade-row:nth-child(4) .trade-track { animation-duration:125s; }
.trades-marquee[data-motion="paused"] .trade-track,.trades-marquee:hover .trade-track,.trades-marquee:focus-within .trade-track { animation-play-state:paused; }
@keyframes trade-scroll { to { transform:translateX(-50%); } }
.trade-controls { display:flex; justify-content:center; margin:10px 0 16px; }
.trade-motion-toggle { padding:10px 14px; min-height:44px; border:0; background:transparent; color:var(--dim); font-size:12px; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.trade-motion-toggle[hidden] { display:none; }
.stripe-integration { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px 32px; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stripe-integration>span { display:inline-flex; gap:12px; align-items:center; font-size:14px; font-weight:500; }
.stripe-integration img { width:67px; height:28px; filter:brightness(0); }
html[data-theme="dark"] .stripe-integration img { filter:none; }
.new-customers { display:grid; grid-template-columns:1.15fr 1fr; gap:85px; align-items:center; }
.opportunity { padding:34px; background:var(--tint); border-radius:22px; }
.opportunity>.eyebrow { margin-bottom:12px; }
.opportunity>div { display:flex; gap:17px; padding-block:23px; border-bottom:1px solid var(--line); }
.opportunity>div:last-child { padding-bottom:0; border-bottom:0; }
.opportunity svg { width:23px; height:23px; color:var(--accent); margin-top:1px; }
.opportunity p { margin:0; font-size:16px; line-height:1.5; }
.opportunity strong { display:block; font-weight:600; margin-bottom:7px; }
.opportunity p span { color:var(--dim); font-size:15px; }
.section { padding-block:100px; }
.relationship { border-top:1px solid var(--line); display:grid; grid-template-columns:1.3fr .8fr; gap:110px; align-items:center; }
.body-copy { margin:20px 0 0; color:var(--dim); font-size:17px; line-height:1.65; }
.stat { padding:34px; border-left:1px solid var(--line); }
.stat-number { font-size:112px; letter-spacing:-.065em; line-height:1; color:var(--accent); font-weight:650; }
.stat-number>span { font-size:.5em; }
.stat p { font-size:21px; line-height:1.35; margin:15px 0 24px; letter-spacing:-.02em; }
.source { color:var(--dim); font-size:12px; line-height:1.6; }
.source-note { display:block; font-size:11px; color:var(--dim); line-height:1.6; margin-top:10px; }
.coordination { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.research-note { border-left:2px solid var(--line); padding-left:16px; font-size:14px; line-height:1.65; color:var(--dim); margin:30px 0 0; }
.research-note a { white-space:nowrap; }
.journey { list-style:none; padding:0; margin:0; }
.journey li { display:grid; grid-template-columns:32px 1fr; gap:20px; padding-block:25px; border-bottom:1px solid var(--line); }
.journey li:first-child { padding-top:0; }
.step { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--line); border-radius:50%; color:var(--accent); font-size:13px; font-weight:600; }
.journey h3 { font-size:22px; }
.journey p { margin:12px 0 0; color:var(--dim); font-size:16px; line-height:1.6; }
.pricing-evidence { max-width:48em; }
.pricing-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:38px; }
.price-card { border:1px solid var(--line); border-radius:20px; padding:35px; }
.rate { font-size:84px; font-weight:650; letter-spacing:-.07em; color:var(--accent); line-height:1; margin-bottom:23px; }
.rate span { font-size:.5em; padding-left:5px; }
.price-card p { color:var(--dim); line-height:1.6; font-size:17px; margin:16px 0 0; max-width:25em; }
.price-card .price-benefit { color:var(--ink); font-weight:600; }
.pricing-notes { display:grid; grid-template-columns:1fr 1fr; gap:12px 38px; margin-top:20px; color:var(--dim); font-size:14px; line-height:1.65; }
.pricing-notes strong { color:var(--ink); }
.text-link { display:inline-flex; align-items:center; gap:8px; justify-self:start; font-size:14px; color:var(--ink); }
.text-link svg { width:17px; height:17px; }
.faq-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; padding-top:0; }
.faq-section h2 { font-size:40px; }
.faq details { border-bottom:1px solid var(--line); }
.faq details:first-child { border-top:1px solid var(--line); }
.faq summary { position:relative; list-style:none; padding:24px 32px 24px 0; cursor:pointer; font-size:17px; line-height:1.45; font-weight:600; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; position:absolute; right:0; top:23px; font-size:22px; color:var(--accent); font-weight:400; }
.faq details[open] summary::after { content:'−'; }
.faq details>div { padding-bottom:22px; }
.faq details p { margin:0; color:var(--dim); font-size:16px; line-height:1.65; }
.closing { padding:64px 30px; text-align:center; background:var(--tint); border-radius:24px; }
.closing h2 { font-size:clamp(34px,4.4vw,54px); }
.closing p:not(.eyebrow) { color:var(--dim); font-size:18px; line-height:1.6; max-width:33em; margin:24px auto; }
.closing p.review-note { font-size:14px; margin-top:-8px; margin-bottom:30px; }
.closing-contact { display:block; margin-top:22px; color:var(--dim); font-size:13px; }
.footer { display:flex; align-items:start; justify-content:space-between; gap:40px; padding-block:64px 40px; }
.footer p { font-size:12px; line-height:1.8; color:var(--dim); margin-top:20px; }
.footer nav { display:flex; flex-wrap:wrap; gap:20px 28px; font-size:12px; color:var(--dim); padding-top:7px; }
@media(min-width:1600px) { .hero { padding-block:115px 100px; } }
@media(max-width:1000px) {
  .hero { gap:35px; } .relationship,.coordination,.faq-section,.new-customers { gap:48px; }
  .stat { padding:25px; } .stat-number { font-size:95px; } .opportunity { padding:28px; }
}
@media(max-width:760px) {
  .wrap { width:calc(100% - 40px); } .header { padding-block:20px; } .wordmark span { display:none; } .header nav { gap:18px; }
  .hero { grid-template-columns:1fr; gap:54px; padding-block:46px 52px; } h1 { font-size:clamp(44px,10.8vw,70px); max-width:10em; }
  .hero .lead { font-size:18px; max-width:29em; margin-top:22px; } .hero-promise { font-size:17px; } .hero .eyebrow { font-size:10px; max-width:30em; }
  .conversation-example { width:100%; max-width:480px; margin-inline:auto; } .thread { gap:17px; } .msg { font-size:18px; } .message { max-width:88%; }
  .trades { padding-top:54px; } .trades .section-heading { text-align:left; } .trades .lead { margin-inline:0; }
  .trades-marquee { margin-top:28px; } .trade { padding:7px 11px; font-size:14px; gap:9px; } .trade svg { width:21px; height:21px; }
  .trades-marquee[data-motion] { mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent); }
  .trade-list { justify-content:flex-start; gap:10px; } .trades-marquee[data-motion] .trade-list { padding-right:10px; } .trade-row + .trade-row { margin-top:10px; }
  .stripe-integration { text-align:center; gap:14px; padding-block:24px; }
  .section { padding-block:64px; } h2 { font-size:38px; } .lead { font-size:18px; } .relationship,.coordination,.faq-section,.new-customers { grid-template-columns:1fr; gap:35px; }
  .opportunity { padding:28px 24px; } .stat { padding:28px 0 0; border-left:0; border-top:1px solid var(--line); } .stat-number { font-size:96px; } .stat p { max-width:22em; }
  .pricing-grid { gap:16px; } .price-card { padding:23px; } .rate { font-size:70px; } .price-card h3 { font-size:22px; } .price-card p { font-size:16px; }
  .pricing-notes { grid-template-columns:1fr; gap:0; } .pricing-notes p { margin-block:12px; } .text-link { margin-top:10px; }
  .faq-section { padding-top:0; } .faq-section h2 { font-size:36px; } .faq summary { font-size:17px; } .closing { padding:44px 23px; border-radius:18px; } .closing h2 { font-size:36px; }
  .closing p:not(.eyebrow) { font-size:16px; } .closing p.review-note { font-size:14px; } .footer { flex-direction:column; padding-block:46px 30px; gap:16px; } .footer nav { gap:18px 25px; }
}
@media(max-width:640px) {
  .pricing-grid { grid-template-columns:1fr; }
}
@media(max-width:420px) {
  .button { gap:22px; }
  .closing .button { gap:14px; padding-inline:14px; font-size:15px; } .closing .button svg { width:18px; height:18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .conversation-example .message-pending { visibility:visible; }
  .conversation-example .message-revealed { animation:none; }
  .trades-marquee[data-motion] { overflow:visible; mask-image:none; }
  .trades-marquee[data-motion] .trade-track { display:block; width:auto; animation:none; }
  .trades-marquee[data-motion] .trade-list { flex-wrap:wrap; padding-right:0; }
  .trades-marquee[data-motion] .trade-list[aria-hidden="true"],.trade-motion-toggle { display:none; }
}
