/* Simple Contractor Tools - ONE shared stylesheet for the whole site. Every page
   links this same file, so a design tweak here applies everywhere immediately -
   no per-tool CSS files to keep in sync (that's how Landlord Tools' styling ended
   up spread across a dozen near-duplicate files, each drifting slightly). */

:root{
  --navy:#173f6d;
  --navy-dark:#123a63;
  --green:#2f8a45;
  --green-dark:#256e38;
  --page:#f3f5f7;
  --card:#ffffff;
  --border:#d8dee6;
  --text:#243242;
  --muted:#66717f;
  --soft:#eef5ef;
  --warning:#fff4d6;
  --warning-border:#e0a800;
}

/* Live jobsite imagery in the workspace panel */
.fresh-hero-visual{position:relative;overflow:hidden}
.fresh-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:saturate(1.15);z-index:0}
.fresh-hero-visual>*:not(.fresh-hero-photo){position:relative;z-index:1}
.trade-tile{background-image:linear-gradient(145deg,rgba(36,121,165,.82),rgba(22,70,103,.92)),url('/images/hero-image.png');background-size:cover;background-position:center}

.site-footer{background:#102a43!important;color:#d7e5ef!important;margin-top:55px;border-top:0}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr;gap:55px;padding:48px 20px 38px}.footer-brand img{display:block;width:300px;max-width:100%;height:auto;margin-bottom:15px}.footer-brand p{max-width:350px;margin:0 0 14px;color:#a9c0d0;font-size:.86rem}.footer-brand>a{color:#8fdda8;text-decoration:none;font-weight:800;font-size:.84rem}.footer-column{display:grid;align-content:start;gap:9px}.footer-column strong{margin-bottom:5px;color:#fff;font-size:1rem}.footer-column a{color:#b9cedb;text-decoration:none;font-size:.84rem}.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 20px 22px;border-top:1px solid #ffffff1f;color:#91aabb;font-size:.75rem}.footer-bottom .footer-legal{justify-content:flex-end}.footer-bottom .footer-legal a{color:#a9bfcc}@media(max-width:700px){.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom .footer-legal{justify-content:flex-start;margin-top:12px}}@media(max-width:450px){.footer-main{grid-template-columns:1fr}.footer-brand{grid-column:auto}}

.fresh-hero{background:linear-gradient(135deg,#f7fbff,#e7f2f7);border-bottom:1px solid #d3e0e8;padding:54px 0 58px}.fresh-hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:center}.fresh-hero-copy{max-width:560px}.fresh-hero-copy .hero-kicker{color:var(--green-dark);font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.fresh-hero-copy h1{margin:12px 0 18px;color:var(--navy-dark);font-size:clamp(3.2rem,6vw,5.5rem);line-height:.93;letter-spacing:-.06em}.fresh-hero-copy h1 span{color:var(--green)}.fresh-hero-copy>p{margin:0 0 25px;color:var(--muted);font-size:1.12rem;line-height:1.5}.fresh-hero .hero-actions{display:flex;gap:10px;flex-wrap:wrap}.fresh-hero .btn{font-size:.9rem;padding:11px 16px}.fresh-hero .btn-secondary{background:#fff;color:var(--navy-dark);border:1px solid #b9cbd7}.fresh-proof{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;color:#577080;font-size:.78rem;font-weight:700}.fresh-hero-visual{padding:26px;background:#143c5d;border-radius:20px;box-shadow:0 18px 45px rgba(20,60,93,.2)}.visual-heading{display:flex;flex-direction:column;gap:5px;margin-bottom:18px;color:#fff}.visual-heading span{color:#8fd6ac;font-size:.68rem;font-weight:900;letter-spacing:.14em}.visual-heading strong{font-size:1.35rem}.trade-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.trade-tile{min-height:112px;display:flex;flex-direction:column;justify-content:flex-end;padding:15px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#2479a5,#164667);border:1px solid #ffffff26}.trade-tile b{margin-bottom:auto;font-size:2rem;color:#a5e3b7}.trade-tile span{font-weight:900}.trade-tile small{color:#c6dbe7;font-size:.72rem}.trade-tile.electrical{background:linear-gradient(145deg,#b57917,#795014)}.trade-tile.plumbing{background:linear-gradient(145deg,#168b91,#11606b)}.trade-tile.hvac{background:linear-gradient(145deg,#5064a5,#334376)}.trade-tile.painting{background:linear-gradient(145deg,#a94e63,#71354a)}.visual-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #ffffff2b;color:#cbe0eb;font-size:.72rem}.visual-status b{margin-left:auto;color:#fff;font-size:.68rem}.status-dot{width:8px;height:8px;border-radius:50%;background:#70dc94;box-shadow:0 0 0 4px #70dc942b}@media(max-width:800px){.fresh-hero-grid{grid-template-columns:1fr;gap:35px}.visual-status b{margin-left:0;width:100%}}@media(max-width:520px){.fresh-hero{padding:40px 0}.fresh-hero-copy h1{font-size:3.2rem}.trade-tiles{grid-template-columns:repeat(2,1fr)}.trade-tile{min-height:100px}.trade-tile:nth-child(5){grid-column:span 2}}

/* Legal and trust pages */
.legal-hero{padding:48px 0;background:#eef5ef;border-bottom:1px solid var(--border)}.legal-hero h1{margin:.15em 0;color:var(--navy-dark);font-size:clamp(2.2rem,5vw,4rem)}.legal-hero p{max-width:720px;color:var(--muted);font-size:1.05rem}.legal-page{padding:55px 20px 80px}.legal-layout{display:grid;grid-template-columns:220px 1fr;gap:65px}.legal-layout aside{position:sticky;top:20px;align-self:start;display:grid;gap:7px;padding:18px;background:#fff;border:1px solid var(--border);border-radius:10px}.legal-layout aside strong{color:var(--navy-dark)}.legal-layout aside a{color:var(--muted);font-size:.8rem;text-decoration:none}.legal-layout article{max-width:800px}.legal-layout article section{padding-bottom:25px;margin-bottom:28px;border-bottom:1px solid var(--border)}.legal-layout h2{margin:0 0 10px;color:var(--navy-dark);font-size:1.55rem}.legal-layout p,.legal-layout li{color:var(--muted);line-height:1.65}.legal-layout a{color:var(--green-dark)}.legal-callout{padding:22px;border-left:5px solid var(--green);background:var(--soft)}.legal-callout strong{color:var(--navy-dark);font-size:1.15rem}.footer-legal{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.75rem}.footer-legal a{color:#cbd7e3;text-decoration:none}.not-found{padding:90px 0;text-align:center}.not-found strong{display:block;color:#d4dde5;font-size:6rem;line-height:.8}.not-found h1{color:var(--navy-dark)}.not-found p{color:var(--muted)}@media(max-width:700px){.legal-layout{grid-template-columns:1fr;gap:25px}.legal-layout aside{position:static}.footer-legal{justify-content:center;margin-top:10px}}
*{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;font-family:"Segoe UI",Arial,sans-serif;background:var(--page);color:var(--text);overflow-x:hidden}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
a{color:inherit}

/* header */
.site-header{background:#fff;border-bottom:1px solid #e4e8ed}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}
.brand img{width:300px;height:60px;object-fit:contain;object-position:left center}
.network-page-hero{padding:48px 0;background:#eef5ef;border-bottom:1px solid var(--border)}.network-page-hero h1{margin:.15em 0;color:var(--navy-dark);font-size:clamp(2.2rem,5vw,4rem)}.network-page-hero p:last-child{color:var(--muted);font-size:1.1rem}.network-page{padding-top:48px;padding-bottom:70px}.network-page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.network-page-card{display:block;padding:26px;background:#fff;border:1px solid var(--border);border-top:6px solid var(--accent);border-radius:14px;text-decoration:none;box-shadow:0 8px 25px #173f6d12;transition:.18s}.network-page-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px #173f6d20}.network-page-card img{display:block;width:min(100%,300px);height:auto;margin-bottom:18px}.network-page-card p{min-height:52px;color:var(--muted)}.network-page-card strong{color:var(--accent)}@media(max-width:650px){.network-page-grid{grid-template-columns:1fr}.brand img{width:250px;height:50px}}
.brand-name{font-size:1.35rem;font-weight:700;color:var(--navy-dark)}
.brand-tagline{font-size:.85rem;color:var(--muted)}
.header-right{display:flex;align-items:center;gap:18px}
.contact-info{text-align:right;color:var(--navy-dark);font-weight:600;font-size:.88rem;line-height:1.4}
.account-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;padding:6px 14px 6px 6px;text-decoration:none;color:var(--navy-dark);font-weight:700;font-size:.88rem}
.account-pill img{width:26px;height:26px;border-radius:50%}
.account-pill-signin{padding:8px 16px;background:var(--green);border-color:var(--green);color:#fff}

/* nav */
.site-nav{background:var(--navy)}
.site-nav .container{display:flex;gap:26px;padding:13px 20px}
.site-nav a{color:#fff;text-decoration:none;font-weight:600;opacity:.85}
.site-nav a.active,.site-nav a:hover{opacity:1;text-decoration:underline}

/* footer */
.site-footer{background:#102a43!important;margin-top:55px;border-top:0;overflow:hidden}
.footer-main{min-height:245px!important;padding:54px 20px 42px!important}
.footer-bottom{min-height:58px}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:22px 20px;color:var(--muted);font-size:.86rem}

/* hero photo - the image is NEVER cropped, at any screen size: it always
   renders at its full natural width x height (no object-fit:cover). Below
   900px wide (phones/small tablets), the headline sits in a plain block
   above the complete photo - too little room there for overlay text. At
   900px+ the photo is tall enough to lay the headline over it with a dark
   scrim behind, Landlord-Tools style, text sized to fit - zero cropping
   either way. */
.hero-kicker{text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:700;color:var(--green)}
.hero-photo-text h1{font-size:2.4rem;color:var(--navy-dark);margin:.3em 0}
.hero-photo-text p{color:var(--muted);font-size:1.1rem;max-width:640px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}

.hero-photo{display:flex;flex-direction:column}
.hero-photo-media{order:2;position:relative;width:100vw;left:50%;margin-left:-50vw;overflow:hidden}
.hero-photo-media picture,.hero-photo-media img{display:block;width:100%;height:auto}
.hero-photo-scrim{display:none}
.hero-photo-inner{order:1;padding:36px 20px 30px}
.hero-photo-text{max-width:640px;margin:0 auto}

/* trust bar */
.trust-bar{background:#fff;border-top:1px solid #e5e9ee;border-bottom:1px solid #e5e9ee}
.trust-bar-inner{display:grid;grid-template-columns:1fr;gap:18px;padding:24px 20px;text-align:center}
.trust-col h3{margin:0 0 4px;color:var(--navy-dark);font-size:1.05rem}
.trust-col p{margin:0;color:var(--muted);font-size:.92rem}

@media (min-width:900px){
  .hero-photo{display:block;position:relative;width:100vw;left:50%;margin-left:-50vw}
  .hero-photo-media{position:relative;width:100%;left:0;margin-left:0;overflow:visible}
  .hero-photo-media picture,.hero-photo-media img{width:100%;height:auto;display:block}
  .hero-photo-scrim{
    display:block;position:absolute;inset:0;
    background:linear-gradient(100deg, rgba(9,22,42,.86) 0%, rgba(9,22,42,.62) 38%, rgba(9,22,42,.2) 66%, rgba(9,22,42,0) 85%);
  }
  .hero-photo-inner{position:absolute;inset:0;z-index:2;max-width:1120px;margin:0 auto;padding:0 20px;display:flex;align-items:center}
  .hero-photo-text{max-width:560px}
  .hero-photo-text .hero-kicker{color:#8fe3a8;font-size:clamp(.68rem, 1vw, .78rem)}
  .hero-photo-text h1{color:#fff;font-size:clamp(1.5rem, 2.6vw, 2.4rem);margin:.25em 0;line-height:1.15}
  .hero-photo-text p{color:rgba(255,255,255,.92);font-size:clamp(.85rem, 1.3vw, 1.1rem);line-height:1.4}
  .hero-photo-text .btn-secondary{background:transparent;border:2px solid #fff;color:#fff}
  .hero-photo-text .btn-secondary:hover{background:rgba(255,255,255,.12)}
  .hero-photo-text .btn{padding:clamp(8px, 1.2vw, 12px) clamp(14px, 2vw, 22px);font-size:clamp(.82rem, 1.1vw, .95rem)}
  .hero-actions{margin-top:clamp(4px, 1vw, 10px)}

  .trust-bar-inner{grid-template-columns:repeat(3,1fr);text-align:center;padding:30px 20px}
}

/* buttons */
.btn{display:inline-block;border:none;border-radius:9px;padding:12px 22px;font-weight:700;font-size:.95rem;cursor:pointer;text-decoration:none;text-align:center}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-dark)}
.btn-secondary{background:#fff;border:1px solid var(--border);color:var(--navy-dark)}
.btn-secondary:hover{background:#f5f7fa}
.btn-block{display:block;width:100%}

/* cards */
.tool-card{border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--card);box-shadow:0 3px 10px rgba(16,33,63,.05)}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:24px 0}
.tool-card h3{margin:0 0 6px;color:var(--navy-dark)}
.tool-card p{margin:0 0 14px;color:var(--muted);font-size:.9rem}
.tool-card.coming-soon{opacity:.6;box-shadow:none}
.badge-soon{display:inline-block;background:var(--page);border:1px solid var(--border);color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px;margin-bottom:8px}
.badge-count{color:var(--muted);font-size:.85rem;font-weight:600}
.category-card{border:1px solid var(--border);border-radius:14px;padding:22px;background:var(--card);box-shadow:0 3px 10px rgba(16,33,63,.05);text-decoration:none;display:block;transition:box-shadow .15s,transform .15s}
.category-card:hover{box-shadow:0 8px 22px rgba(16,33,63,.12);transform:translateY(-2px)}
.category-card h3{margin:0 0 6px;color:var(--navy-dark);font-size:1.2rem}
.category-card p{margin:0 0 10px;color:var(--muted);font-size:.9rem}
.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:24px 0}

/* forms */
.form-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px;margin:20px 0;box-shadow:0 5px 18px rgba(23,63,109,.06)}
.form-card h2{font-size:1.2rem;color:var(--navy-dark);border-bottom:2px solid #eef1f4;padding-bottom:11px;margin:0 0 18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-weight:700;color:var(--navy-dark);font-size:.88rem;margin-bottom:6px}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select{
  width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;background:#fff}
textarea{min-height:80px;resize:vertical}
.field{margin-bottom:14px}
.helper{color:var(--muted);font-size:.82rem;margin-top:4px}

/* line items (estimates/invoices) */
.line-items{width:100%;border-collapse:collapse;margin:14px 0}
.line-items th{text-align:left;font-size:.8rem;color:var(--muted);padding:6px 8px;border-bottom:2px solid var(--border)}
.line-items td{padding:6px 8px;border-bottom:1px solid #eef1f4}
.line-items input{width:100%}
.line-items .qty,.line-items .rate,.line-items .amount{width:90px}
.line-items .amount-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy-dark)}
.line-remove{background:none;border:none;color:#a12a2a;cursor:pointer;font-size:1.1rem}
.totals-row{display:flex;justify-content:flex-end;gap:24px;margin-top:10px;font-size:1rem}
.totals-row strong{color:var(--navy-dark);font-size:1.3rem}

/* account / signed-in banner */
.signed-in-banner{display:flex;align-items:center;gap:10px;background:var(--soft);border:1px solid #cfe6d5;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:.9rem;color:var(--green-dark)}
.signin-prompt{background:var(--warning);border:1px solid var(--warning-border);border-radius:10px;padding:14px 16px;margin-bottom:16px;font-size:.9rem}

/* preview / print */
.doc-preview{background:#fff;border:1px solid #ccd6df;border-radius:12px;padding:40px;margin:26px 0;box-shadow:0 8px 24px rgba(24,55,88,.08)}
.action-bar{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}

@media(max-width:760px){
  .header-inner{flex-direction:column;align-items:flex-start}
  .form-grid{grid-template-columns:1fr}
  .site-nav .container{flex-wrap:wrap;gap:14px}
}

.print-only{display:none}

/* Home page hero only */
.home-hero .hero-photo-media img{
  width:100%;
  height:500px;
  object-fit:cover;
  object-position:center;
}

@media(max-width:899px){
  .home-hero .hero-photo-media img{
    height:auto;
  }
}



@media print{
  .site-header,.site-nav,.site-footer,.action-bar,.signin-prompt,.signed-in-banner,.no-print,
  .form-card:not(.calc-card),h1:not(.doc-preview h1):not(.calc-h1){display:none!important}
  .print-only{display:block}
  body{background:#fff}
  .doc-preview{box-shadow:none;border:0;padding:0;margin:0}
  .calc-card{box-shadow:none;border:1px solid #ccd6df;margin-top:14px}
  .calc-card select,.calc-card input{border:none;padding:2px 0;background:transparent}
  .container{max-width:none!important;padding:0!important}
}

/* Live jobsite imagery in the workspace panel */
.fresh-hero-visual{position:relative!important;overflow:hidden!important}
.trade-tile{background-image:none!important}
.trade-tile{background-size:cover!important;background-position:center!important;position:relative;overflow:hidden}
.trade-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,25,42,.08),rgba(5,25,42,.78));pointer-events:none}
.trade-tile>*{position:relative;z-index:1}
.trade-tile.construction{background-image:url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=700&q=80')!important}
.trade-tile.electrical{background-image:url('https://images.unsplash.com/photo-1621905252507-b35492cc74b4?auto=format&fit=crop&w=700&q=80')!important}
.trade-tile.plumbing{background-image:url('https://images.unsplash.com/photo-1607472586893-edb57bdc0e39?auto=format&fit=crop&w=700&q=80')!important}
.trade-tile.hvac{background-image:url('https://images.unsplash.com/photo-1631545806609-8e5e4f5f3b4b?auto=format&fit=crop&w=700&q=80')!important}
.trade-tile.painting{background-image:url('https://images.unsplash.com/photo-1562259949-e8e768c1cbb2?auto=format&fit=crop&w=700&q=80')!important}
.fresh-hero-grid{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr)!important;align-items:center!important}
.fresh-hero-visual{display:block!important;min-height:300px!important}
.site-footer .footer-main{display:grid!important;grid-template-columns:1.4fr 1fr 1fr!important;align-items:start!important;min-height:245px!important}
