/* PE_V4_PUBLIC_PRICING_V1 | 1.0.0 | Pricing and registration only. */
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('dm-sans-latin.woff2') format('woff2'); }
:root { --ink:#1d2821; --muted:#606a61; --paper:#fbfaf6; --orange:#ef8428; --orange-hover:#f59749; --sage:#668168; --line:#e0e4da; --chrome:#191c1a; --soft:#f0f2eb; --gradient:linear-gradient(90deg,#2255a4,#e87a1e 47%,#f7941d 66%,#ff4136); font-synthesis:none; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:106px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; -webkit-font-smoothing:antialiased; }
button,input,summary { font:inherit; }
a { color:inherit; text-decoration:none; }
a,button,summary,input { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #3b71b8; outline-offset:5px; }
button,summary { cursor:pointer; }
button { color:inherit; }
svg { flex-shrink:0; }
h1,h2,h3,p { margin:0; }
ul,ol { margin:0; padding:0; }
.skip-link { position:fixed; top:10px; left:12px; z-index:1000; padding:12px 18px; color:var(--ink); background:white; border-radius:8px; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.container { width:min(1320px,calc(100% - 112px)); margin-inline:auto; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:14px 20px; border:1px solid transparent; border-radius:11px; font-size:15px; font-weight:700; line-height:1.35; transition:background .18s,border-color .18s,transform .18s; text-align:center; }
.button-primary { background:var(--orange); color:#1c241e; }
.button-primary:hover { background:var(--orange-hover); transform:translateY(-1px); }
.button-outline { background:transparent; color:var(--ink); border-color:#bdc4b8; }
.button-outline:hover { background:#edf0e7; border-color:var(--ink); }
.button:disabled { opacity:.65; cursor:default; transform:none; }
.eyebrow { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--orange); }
.site-header { position:sticky; top:0; z-index:30; background:var(--chrome); color:#fff; }
.site-header::after { content:''; display:block; height:2px; background:var(--gradient); }
.header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:11px; flex-shrink:0; }
.brand img { width:44px; height:34px; object-fit:contain; }
.brand-copy { display:flex; flex-direction:column; gap:4px; }
.brand-name { font-size:18px; line-height:1; font-weight:800; letter-spacing:-.04em; }
.brand-tag { font-size:9px; font-weight:500; letter-spacing:.075em; color:#b8beb7; }
.desktop-nav { display:flex; align-items:center; gap:30px; }
.desktop-nav>a { padding-block:10px; font-size:13px; font-weight:500; color:#d7dcd5; }
.desktop-nav>a:hover { color:#fff; }
.desktop-nav>a[aria-current] { color:#fff; text-decoration:underline; text-underline-offset:7px; text-decoration-color:var(--orange); }
.desktop-nav .nav-account { padding:10px 14px; border:1px solid #52594f; border-radius:8px; }
.login-menu { position:relative; }
.login-menu summary { min-height:40px; display:flex; align-items:center; gap:10px; padding:8px 14px; border:1px solid #52594f; border-radius:8px; list-style:none; font-size:13px; font-weight:600; }
summary::-webkit-details-marker { display:none; }
.login-menu summary:hover { background:#30362f; }
.login-menu[open] summary svg { transform:rotate(180deg); }
.login-options { position:absolute; top:calc(100% + 10px); right:0; width:228px; display:grid; padding:7px; border:1px solid #e0e4da; border-radius:12px; background:#fff; color:var(--ink); box-shadow:0 12px 36px #1d282126; }
.login-options a { padding:13px 12px; border-radius:7px; font-size:14px; }
.login-options a:hover { background:var(--soft); }
.mobile-menu { display:none; }
.pricing-hero { padding-block:38px 30px; text-align:center; }
.pricing-hero .eyebrow { justify-content:center; color:#5d6b59; margin-bottom:16px; }
.pricing-hero h1 { font-size:clamp(45px,4.2vw,60px); font-weight:800; line-height:1.06; letter-spacing:-.062em; }
.colour-word { color:var(--sage); position:relative; display:inline-block; }
.colour-word::after { content:''; display:block; width:96%; height:5px; margin-top:5px; background:#dce5d3; border-radius:70% 35% 55% 20%; transform:rotate(-2deg); }
.pricing-hero>p:last-child { max-width:610px; margin:16px auto 0; font-size:15px; line-height:1.7; color:var(--muted); }
.plans-section { max-width:1120px; padding-bottom:54px; }
.plans-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:stretch; }
.plan-card { min-width:0; position:relative; display:flex; flex-direction:column; padding:26px 32px 22px; border-radius:22px; }
.plan-homeowner { background:#eef2e8; border:1px solid #e2e8da; }
.plan-professional { background:#24342a; color:white; border:1px solid #24342a; box-shadow:0 16px 38px #24342a14; }
.plan-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.plan-top .eyebrow { font-size:10px; letter-spacing:.13em; }
.plan-homeowner .eyebrow { color:#53674f; }
.plan-professional .eyebrow { color:#c4d5bc; }
.plan-icon { width:43px; height:43px; display:grid; place-items:center; border:1px solid #ced9c4; color:#627859; border-radius:12px; }
.plan-professional .plan-icon { border-color:#455745; color:#c0d3b6; }
.plan-card h2 { font-size:25px; line-height:1.18; font-weight:700; letter-spacing:-.045em; }
.plan-description { min-height:51px; margin-top:13px; font-size:14px; line-height:1.7; color:#5a6855; }
.plan-professional .plan-description { color:#c6d0c1; }
.plan-price { display:flex; align-items:baseline; gap:13px; margin-top:18px; min-height:62px; }
.plan-price>strong { font-size:52px; font-weight:800; line-height:1.08; letter-spacing:-.06em; white-space:nowrap; }
.plan-price>span { max-width:115px; color:#65715f; font-size:12px; font-weight:500; line-height:1.6; }
.plan-professional .plan-price>span { color:#cad5c5; }
.currency { font-size:.6em; letter-spacing:-.04em; margin-right:2px; }
.plan-allowance { font-size:13px; line-height:1.6; margin-top:3px; color:#4e6448; }
.plan-allowance strong { font-weight:700; }
.plan-professional .plan-allowance { color:#d1ddca; }
.plan-features { list-style:none; display:grid; gap:10px; padding-block:20px; font-size:13px; line-height:1.6; }
.plan-features li { position:relative; padding-left:22px; }
.plan-features li::before { content:'✓'; position:absolute; left:0; top:0; font-size:15px; font-weight:600; color:#57744a; }
.plan-professional .plan-features li::before { color:#b1ca9f; }
.credit-strip { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-block:14px; border-block:1px solid #d6dfce; margin-top:auto; }
.credit-strip>div>span { display:block; font-size:9px; line-height:1.7; font-weight:700; letter-spacing:.09em; color:#5c7252; }
.credit-strip>div>p { max-width:240px; margin-top:4px; font-size:11px; line-height:1.6; color:#65705e; }
.credit-price { display:flex; flex-direction:column; align-items:flex-end; flex-shrink:0; }
.credit-price strong { font-size:25px; letter-spacing:-.045em; font-weight:700; line-height:1.2; }
.credit-price span { font-size:10px; margin-top:4px; color:#5f6c57; }
.plan-professional .credit-strip { border-color:#475944; }
.plan-professional .credit-strip>div>span { color:#bbcfaf; }
.plan-professional .credit-strip>div>p,.plan-professional .credit-price span { color:#c3d0bc; }
.plan-actions { padding-top:18px; }
.plan-actions .button { width:100%; }
.plan-actions form { margin:0; }
.plan-subnote { min-height:18px; font-size:11px; line-height:1.7; color:#626f5b; margin-top:12px; text-align:center; }
.plan-subnote a { font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.plan-professional .plan-subnote { color:#c5d2be; }
.plans-footnote { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px 22px; margin-top:20px; font-size:11px; line-height:1.6; color:#687260; }
.connection-section { background:#fff; padding-block:55px; border-block:1px solid #edf0e8; }
.connection-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; max-width:1120px; }
.connection-grid .eyebrow { font-size:10px; color:#617557; margin-bottom:16px; }
.connection-grid h2,.faq-heading h2 { font-size:34px; font-weight:700; line-height:1.16; letter-spacing:-.05em; }
.connection-grid>p { font-size:14px; line-height:1.85; color:var(--muted); max-width:480px; }
.faq-section { max-width:1120px; padding-block:65px 72px; }
.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:65px; align-items:start; }
.faq-heading .eyebrow { color:#5e7455; margin-bottom:18px; }
.faq-heading>p:last-child { margin-top:20px; font-size:14px; line-height:1.8; color:#6b7365; }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; display:flex; align-items:center; justify-content:space-between; gap:25px; min-height:68px; padding-block:18px; font-size:14px; line-height:1.55; font-weight:600; list-style:none; }
.faq-list summary::after { content:'+'; font-size:22px; font-weight:400; line-height:1; color:#617859; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details>p { padding:0 28px 24px 0; color:#66705e; font-size:14px; line-height:1.8; }
.site-footer { padding-block:43px 23px; background:var(--chrome); color:#fff; border-top:2px solid transparent; border-image:var(--gradient) 1; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:45px; padding-bottom:32px; }
.footer-brand p { max-width:300px; margin-top:16px; font-size:12px; line-height:1.8; color:#adb7aa; }
.footer-column h3 { color:#e2e8dd; font-size:11px; letter-spacing:.05em; font-weight:600; margin-bottom:16px; }
.footer-column ul { list-style:none; display:grid; gap:11px; }
.footer-column a { color:#b6c0b0; font-size:12px; }
.footer-column a:hover { color:#fff; }
.footer-bottom { padding-top:22px; border-top:1px solid #3b4236; display:flex; justify-content:space-between; gap:20px; font-size:11px; color:#a8b1a3; }
.footer-legal { display:flex; gap:22px; }
.access-dialog { width:min(450px,calc(100% - 40px)); padding:30px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:20px; box-shadow:0 20px 60px #0003; }
.access-dialog::backdrop { background:#19261b66; backdrop-filter:blur(4px); }
.access-dialog h2 { font-size:26px; letter-spacing:-.04em; }
.access-dialog p { margin-top:14px; font-size:14px; line-height:1.7; color:var(--muted); }
.dialog-actions { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }
.header-back { display:flex; align-items:center; min-height:44px; color:#d4ddcf; font-size:13px; line-height:1.6; }
.header-back:hover { color:white; }
.registration-main { max-width:1100px; display:grid; grid-template-columns:1fr 1fr; gap:30px; padding-block:54px 60px; align-items:stretch; }
.registration-story { display:flex; flex-direction:column; position:relative; overflow:hidden; background:#24342a; color:#fff; padding:38px; border-radius:22px; }
.registration-story::after { content:''; pointer-events:none; position:absolute; width:320px; height:320px; border-radius:50%; background:#394b3766; left:-145px; bottom:-230px; }
.registration-story .eyebrow { font-size:10px; color:#c2d3b9; }
.story-icon { display:grid; place-items:center; width:76px; height:76px; border:1px solid #52684a; border-radius:21px; margin-top:39px; color:#c4d8b8; }
.registration-story h1 { font-size:45px; font-weight:700; line-height:1.11; letter-spacing:-.055em; margin-top:25px; }
.story-description { margin-top:20px; max-width:390px; font-size:15px; line-height:1.8; color:#c7d5c0; }
.story-plan { margin-top:auto; padding-top:45px; }
.story-plan>strong { font-size:33px; line-height:1.2; font-weight:700; letter-spacing:-.045em; }
.story-plan>strong>span { font-size:13px; font-weight:500; letter-spacing:0; color:#c7d3c1; }
.story-plan>p { margin-top:10px; font-size:13px; line-height:1.8; color:#d6e0d0; }
.story-note { position:relative; margin-top:20px; padding-top:20px; border-top:1px solid #536449; font-size:12px; line-height:1.75; color:#bdcfb3; }
.story-homeowner { background:#eaf0e3; color:var(--ink); }
.story-homeowner::after { background:#d5e0ca66; }
.story-homeowner .eyebrow { color:#526c45; }
.story-homeowner .story-icon { color:#627e51; border-color:#cbd9bf; }
.story-homeowner .story-description { color:#5b6c51; }
.story-homeowner .story-plan>p,.story-homeowner .story-note { color:#566c49; }
.story-homeowner .story-note { border-color:#c5d2b8; }
.registration-card { padding:34px 38px 26px; background:#fff; border:1px solid #e4e8df; border-radius:22px; box-shadow:0 12px 34px #24342a08; min-width:0; }
.registration-personas { display:grid; grid-template-columns:1fr 1fr; gap:5px; padding:5px; border:1px solid var(--line); border-radius:12px; background:var(--paper); margin-bottom:25px; }
.registration-personas a { display:grid; place-items:center; min-height:43px; padding:10px; color:#62705b; font-size:14px; font-weight:600; border-radius:8px; }
.registration-personas a[aria-current] { background:#fff; color:var(--ink); box-shadow:0 2px 7px #1d28210e; }
.registration-card h2 { font-size:27px; font-weight:700; line-height:1.2; letter-spacing:-.045em; }
.registration-card>.eyebrow { font-size:9px; line-height:1.8; color:#64765a; margin-bottom:20px; }
.registration-intro { margin-top:12px; font-size:14px; line-height:1.8; color:#63705b; }
.registration-form { margin-top:25px; display:grid; gap:18px; }
.form-group { display:grid; gap:8px; }
.form-group label { color:#4e5e47; font-size:12px; font-weight:600; }
.form-group input { width:100%; min-height:48px; padding:12px 14px; background:#fff; color:var(--ink); border:1px solid #d4ddcc; border-radius:9px; font-size:14px; }
.form-group input::placeholder { color:#7e8976; }
.form-group input:focus { outline:2px solid #748e63; outline-offset:2px; }
.registration-form>.button { width:100%; margin-top:4px; }
.registration-footer { text-align:center; margin-top:21px; padding-top:21px; border-top:1px solid var(--line); color:#6a7461; font-size:12px; line-height:1.8; }
.registration-footer a,.form-notice a { font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.registration-legal { display:flex; justify-content:center; gap:20px; margin-top:18px; color:#76806f; font-size:11px; }
.form-error,.form-notice { padding:12px 14px; border-radius:9px; margin-top:18px; font-size:13px; line-height:1.7; }
.form-error { color:#793b2c; background:#fcf0e9; border:1px solid #ebcbbd; overflow-wrap:anywhere; }
.form-notice { color:#5c5734; background:#f8f4df; border:1px solid #e2dbc0; }
@media (min-width:1920px) { .pricing-hero { padding-top:76px; } }
@media (max-width:1200px) {
  .container { width:calc(100% - 80px); }
  .desktop-nav { gap:22px; }
  .plan-card { padding:27px 26px 24px; }
  .plan-price>strong { font-size:47px; }
  .plan-price { gap:12px; }
  .plan-price>span { font-size:11px; }
  .registration-main { gap:24px; }
  .registration-story { padding:32px; }
  .registration-story h1 { font-size:38px; }
  .registration-card { padding:30px 28px 25px; }
  .registration-card h2 { font-size:25px; }
}
@media (max-width:900px) {
  .container { width:calc(100% - 48px); }
  .brand-name { font-size:16px; }
  .brand-tag { font-size:8px; }
  .desktop-nav { gap:18px; }
  .desktop-nav>a { font-size:12px; }
  .desktop-nav>a:first-child { display:none; }
  .plan-card h2 { font-size:22px; }
  .plan-price { display:grid; gap:4px; min-height:82px; }
  .plan-price>span { max-width:none; }
  .credit-strip { gap:12px; }
  .credit-strip>div>span { font-size:8px; }
  .credit-strip>div>p { font-size:10px; }
  .credit-price strong { font-size:22px; }
  .credit-price span { font-size:9px; }
  .plan-description { min-height:72px; font-size:13px; }
  .connection-grid,.faq-grid { gap:36px; }
  .connection-grid h2,.faq-heading h2 { font-size:29px; }
  .registration-main { grid-template-columns:.9fr 1.1fr; gap:18px; }
  .registration-story { padding:25px; }
  .registration-story h1 { font-size:34px; }
  .registration-card { padding:28px 23px 23px; }
}
@media (max-width:680px) {
  .desktop-nav { display:none; }
  .header-inner { min-height:68px; gap:15px; }
  .mobile-menu { display:block; position:relative; }
  .mobile-menu>summary { display:flex; align-items:center; gap:8px; min-height:44px; padding-inline:12px; border:1px solid #52594f; border-radius:8px; list-style:none; font-size:12px; }
  .mobile-links { position:absolute; width:250px; max-width:calc(100vw - 48px); display:grid; right:0; top:calc(100% + 12px); padding:9px; color:var(--ink); border:1px solid #dce3d5; border-radius:12px; background:#fff; box-shadow:0 16px 35px #1d282126; }
  .mobile-links a { font-size:13px; padding:13px 12px; border-radius:7px; }
  .mobile-links a:hover { background:var(--soft); }
  .mobile-divider { border-top:1px solid var(--line); }
  .pricing-hero { padding-block:39px 29px; }
  .pricing-hero .eyebrow { font-size:9px; margin-bottom:16px; }
  .pricing-hero h1 { font-size:44px; }
  .pricing-hero>p:last-child { font-size:14px; margin-top:18px; max-width:390px; }
  .plans-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .plans-section { padding-bottom:36px; }
  .plan-card { padding:25px 27px 24px; border-radius:18px; }
  .plan-card h2 { font-size:24px; }
  .plan-description { min-height:0; font-size:14px; }
  .plan-price { display:flex; gap:15px; min-height:54px; margin-top:20px; }
  .plan-price>strong { font-size:49px; }
  .plan-price>span { max-width:105px; font-size:11px; }
  .credit-strip>div>span { font-size:9px; }
  .credit-strip>div>p { font-size:11px; }
  .credit-price strong { font-size:25px; }
  .credit-price span { font-size:10px; }
  .plans-footnote { display:grid; gap:8px; font-size:10px; margin-top:17px; }
  .connection-section { padding-block:36px; }
  .connection-grid,.faq-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .connection-grid h2,.faq-heading h2 { font-size:29px; }
  .connection-grid>p { font-size:13px; }
  .faq-section { padding-block:40px 45px; }
  .faq-heading>p:last-child { display:none; }
  .faq-heading .eyebrow { margin-bottom:14px; }
  .faq-list summary { min-height:65px; font-size:13px; }
  .faq-list details>p { font-size:13px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:28px; }
  .footer-brand { grid-column:span 2; }
  .site-footer { padding-block:31px 21px; }
  .registration-main { grid-template-columns:minmax(0,1fr); gap:20px; padding-block:28px 36px; }
  .registration-card { order:1; }
  .registration-story { order:2; }
  .registration-story { padding:25px 28px; }
  .registration-story h1 { font-size:32px; margin-top:17px; }
  .story-icon { display:none; }
  .story-description { font-size:13px; margin-top:12px; }
  .story-plan { padding-top:21px; }
  .story-plan>strong { font-size:26px; }
  .story-plan>p { margin-top:6px; font-size:12px; }
  .story-note { margin-top:15px; padding-top:15px; font-size:11px; }
  .registration-card { padding:25px 28px; }
  .registration-card h2 { font-size:25px; }
  .header-back { font-size:11px; }
}
@media (max-width:400px) {
  .container { width:calc(100% - 32px); }
  .brand { gap:8px; }
  .brand img { width:36px; height:28px; }
  .brand-name { font-size:15px; }
  .brand-tag { font-size:7px; }
  .mobile-menu>summary { padding-inline:10px; font-size:11px; gap:7px; }
  .pricing-hero h1 { font-size:40px; }
  .plan-card { padding:23px 22px; }
  .plan-card h2 { font-size:23px; }
  .plan-price>strong { font-size:45px; }
  .credit-strip { gap:12px; }
  .credit-strip>div>span { font-size:8px; }
  .credit-strip>div>p { max-width:162px; font-size:10px; }
  .credit-price strong { font-size:23px; }
  .credit-price span { font-size:9px; }
  .plan-actions .button { font-size:13px; padding-inline:12px; }
  .footer-bottom { flex-direction:column; gap:16px; }
  .registration-story,.registration-card { padding:23px; }
  .registration-card h2 { font-size:23px; }
  .registration-page .brand-tag { display:none; }
  .header-back { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
