/* North Properties — shared stylesheet (all pages link this) */
:root{
  --teal:#0e4d47; --teal-d:#0a3a35; --teal-l:#14655d;
  --gold:#c69749; --gold-d:#9a6f27;
  --ink:#182a28; --muted:#586b68; --line:#e5eae8; --bg:#ffffff;
  --soft:#f6f8f7; --warm:#f7f4ee; --ok:#0f766e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--teal-l);text-decoration:none}
h1,h2,h3,h4{line-height:1.18;letter-spacing:-.015em;margin:0}
p{margin:0}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
svg{display:block}
.center{text-align:center}
.center .sec-lede{margin-left:auto;margin-right:auto}

.btn{display:inline-flex;align-items:center;gap:9px;background:var(--gold);color:#2b1e00;font-weight:650;
  padding:14px 26px;border-radius:10px;border:none;cursor:pointer;font-size:1rem;line-height:1;
  transition:transform .08s ease, box-shadow .2s ease, background .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(154,111,39,.26)}
.btn.teal{background:var(--teal);color:#fff}
.btn.teal:hover{box-shadow:0 10px 24px rgba(14,77,71,.28)}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.btn.ghost:hover{background:rgba(255,255,255,.08);box-shadow:none}
.btn.outline{background:#fff;color:var(--teal-d);border:1.5px solid var(--teal)}
.btn.outline:hover{background:var(--soft);box-shadow:none}
.btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}

/* NAV */
nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:20px}
.brand{display:flex;align-items:center;gap:11px;font-weight:750;font-size:1.16rem;color:var(--teal-d);letter-spacing:-.02em}
.brand .mark{width:34px;height:34px;flex:none}
.navlinks{display:flex;gap:24px;align-items:center}
.navlinks a{color:var(--ink);font-weight:550;font-size:.93rem}
.navlinks a:hover,.navlinks a.active{color:var(--teal-l)}
.has-drop{position:relative}
.has-drop>a:after{content:"▾";font-size:.7rem;margin-left:5px;color:var(--muted)}
.drop{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:0 16px 40px rgba(14,77,71,.14);padding:8px;min-width:230px;opacity:0;visibility:hidden;
  transform:translateX(-50%) translateY(6px);transition:.16s ease}
.has-drop:hover .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop a{display:block;padding:10px 14px;border-radius:8px;font-size:.92rem;color:var(--ink);font-weight:500}
.drop a:hover{background:var(--soft);color:var(--teal-l)}
.drop a small{display:block;color:var(--muted);font-weight:400;font-size:.8rem;margin-top:2px}
.nav-cta{display:flex;align-items:center;gap:16px}
.nav-phone{display:inline-flex;align-items:center;gap:7px;color:var(--teal-d);font-weight:700;font-size:.93rem;white-space:nowrap}
.nav-phone:hover{color:var(--gold-d)}
.nav-cta .btn{padding:10px 18px;font-size:.9rem}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin:-8px}
.hamburger span{display:block;width:24px;height:2.5px;background:var(--teal-d);border-radius:2px}
.mobile-menu{display:none;flex-direction:column;background:#fff;border-top:1px solid var(--line);padding:8px 24px 20px}
@media(max-width:960px){ .navlinks,.nav-cta .btn{display:none} .hamburger{display:flex} .mobile-menu.open{display:flex} }
.mobile-menu a{padding:12px 0;color:var(--ink);font-weight:600;border-bottom:1px solid var(--line)}
.mobile-menu a.sub{padding-left:16px;font-weight:500;font-size:.93rem;color:var(--muted)}
.mobile-menu a.btn{text-align:center;justify-content:center;border-bottom:none;margin-top:12px;color:#2b1e00}

/* HERO (home) — Ottawa skyline photo with teal scrim */
.hero{
  background:
    linear-gradient(94deg, rgba(8,38,34,.94) 0%, rgba(10,58,53,.82) 40%, rgba(12,72,66,.42) 72%, rgba(12,72,66,.18) 100%),
    linear-gradient(0deg, rgba(7,28,26,.70) 0%, rgba(7,28,26,.10) 38%, transparent 60%),
    #0a3a35 url('hero-ottawa.jpg') center 32% / cover no-repeat;
  color:#fff;padding:96px 0 92px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(0deg, rgba(255,255,255,.06), transparent);pointer-events:none}
.hero .wrap{position:relative}
.hero .eyebrow{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin-bottom:18px}
.hero h1{font-size:3rem;max-width:17ch;margin-bottom:20px}
.hero p.lede{font-size:1.22rem;color:rgba(255,255,255,.9);max-width:60ch;margin-bottom:32px}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(4,auto);gap:34px;margin-top:46px}
.stats .s b{display:block;font-size:1.7rem;font-weight:750;letter-spacing:-.02em}
.stats .s span{font-size:.86rem;color:rgba(255,255,255,.78)}
@media(max-width:760px){
  .hero{background:linear-gradient(180deg, rgba(8,38,34,.86) 0%, rgba(10,58,53,.82) 100%),#0a3a35 url('hero-ottawa.jpg') center 30% / cover no-repeat;}
  .hero h1{font-size:2.15rem} .hero{padding:56px 0 62px} .stats{grid-template-columns:1fr 1fr;gap:24px}
}

/* SUB-PAGE HERO (interior pages) — compact teal band, skyline strip */
.subhero{background:linear-gradient(120deg,var(--teal-d),var(--teal) 70%,var(--teal-l));color:#fff;padding:60px 0 56px;position:relative;overflow:hidden}
.subhero:after{content:"";position:absolute;right:-80px;bottom:-90px;width:360px;height:360px;background:radial-gradient(circle,rgba(198,151,73,.20),transparent 68%);pointer-events:none}
.subhero .wrap{position:relative;max-width:1120px}
.subhero .crumb{font-size:.82rem;color:rgba(255,255,255,.7);margin-bottom:14px}
.subhero .crumb a{color:rgba(255,255,255,.85)}
.subhero .eyebrow{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.11em;font-size:.76rem;margin-bottom:12px}
.subhero h1{font-size:2.5rem;max-width:20ch;margin-bottom:14px}
.subhero p{font-size:1.14rem;color:rgba(255,255,255,.88);max-width:62ch}
@media(max-width:640px){.subhero h1{font-size:1.9rem}}

/* SECTIONS */
section{padding:74px 0}
section.tight{padding:56px 0}
section.soft{background:var(--soft)}
section.warm{background:var(--warm)}
.eyebrow{color:var(--gold-d);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;margin-bottom:12px}
h2.sec{font-size:2.05rem;margin-bottom:14px}
.sec-lede{color:var(--muted);font-size:1.1rem;max-width:64ch;margin-bottom:44px}

/* SERVICE CARDS */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:860px){.svc-grid{grid-template-columns:1fr}}
.svc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 28px;display:flex;flex-direction:column}
.svc .ic{width:50px;height:50px;border-radius:12px;background:#e9f2f0;color:var(--teal);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.svc .ic svg{width:26px;height:26px}
.svc h3{font-size:1.24rem;margin-bottom:6px}
.svc .tagline{color:var(--gold-d);font-weight:650;font-size:.86rem;margin-bottom:12px}
.svc p{color:var(--muted);font-size:.96rem;margin-bottom:16px}
.svc ul{list-style:none;margin:0 0 18px;padding:0}
.svc ul li{position:relative;padding:7px 0 7px 26px;font-size:.92rem;color:var(--ink)}
.svc ul li:before{content:"";position:absolute;left:0;top:12px;width:14px;height:8px;border-left:2px solid var(--teal-l);border-bottom:2px solid var(--teal-l);transform:rotate(-45deg)}
.svc .more{margin-top:auto;font-weight:650;color:var(--teal-l);font-size:.92rem}
.svc-extra{margin-top:26px;background:#fff;border:1px dashed var(--line);border-radius:14px;padding:20px 26px;color:var(--muted);font-size:.95rem}
.svc-extra b{color:var(--ink)}

/* CHECK LIST (generic) */
ul.checks{list-style:none;margin:0;padding:0}
ul.checks li{position:relative;padding:9px 0 9px 30px;font-size:.98rem;border-bottom:1px solid var(--line)}
ul.checks li:last-child{border-bottom:none}
ul.checks li:before{content:"";position:absolute;left:3px;top:15px;width:14px;height:8px;border-left:2.4px solid var(--teal-l);border-bottom:2.4px solid var(--teal-l);transform:rotate(-45deg)}

/* SPLIT (text + panel) */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.split.rev .col-text{order:2}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:30px}.split.rev .col-text{order:0}}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 32px;box-shadow:0 12px 40px rgba(14,77,71,.07)}
.panel.teal{background:linear-gradient(155deg,var(--teal-d),var(--teal));color:#fff;border:none}
.panel.teal h3{color:#fff}

/* PROCESS TIMELINE (numbered steps, vertical) */
.timeline{counter-reset:t;margin:0;padding:0;list-style:none}
.timeline li{position:relative;padding:0 0 26px 62px;counter-increment:t}
.timeline li:before{content:counter(t);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:12px;background:var(--teal);color:#fff;font-weight:750;display:flex;align-items:center;justify-content:center;font-size:1.05rem}
.timeline li:after{content:"";position:absolute;left:20px;top:46px;bottom:-2px;width:2px;background:var(--line)}
.timeline li:last-child:after{display:none}
.timeline h3{font-size:1.12rem;margin-bottom:6px}
.timeline p{color:var(--muted);font-size:.96rem}
.timeline .when{display:inline-block;margin-top:6px;font-size:.8rem;font-weight:650;color:var(--gold-d);background:var(--warm);border:1px solid #ecdcc0;border-radius:999px;padding:3px 11px}

/* STEP CARDS (4-across) */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.steps{grid-template-columns:1fr}}
.step{position:relative}
.step:before{counter-increment:s;content:counter(s);display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--teal);color:#fff;font-weight:750;margin-bottom:15px;font-size:1.05rem}
.step h3{font-size:1.08rem;margin-bottom:7px}
.step p{color:var(--muted);font-size:.94rem}

/* MONEY-FLOW diagram */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
@media(max-width:720px){.flow{grid-template-columns:1fr}}
.flow .node{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;position:relative}
.flow .node .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-d);font-weight:700;margin-bottom:8px}
.flow .node h4{font-size:1.05rem;margin-bottom:6px}
.flow .node p{color:var(--muted);font-size:.9rem}
.flow .node.hl{background:linear-gradient(155deg,var(--teal-d),var(--teal));color:#fff;border:none}
.flow .node.hl .k{color:var(--gold)}
.flow .node.hl p{color:rgba(255,255,255,.85)}

/* PRICING TIERS */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
@media(max-width:900px){.tier-grid{grid-template-columns:1fr}}
.tier{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:34px 28px 28px;display:flex;flex-direction:column}
.tier.flagship{border:2px solid var(--teal);box-shadow:0 20px 54px rgba(14,77,71,.14)}
.tier-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--gold);color:#2b1e00;font-weight:750;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:5px 16px;border-radius:999px;white-space:nowrap}
.tier-tag{color:var(--gold-d);font-weight:700;text-transform:uppercase;font-size:.72rem;letter-spacing:.07em;margin-bottom:10px}
.tier.flagship .tier-tag{color:var(--teal-l)}
.tier-name{font-size:1.22rem;font-weight:750;margin-bottom:12px}
.tier-price{font-size:1.95rem;font-weight:750;color:var(--teal-d);line-height:1.12;margin-bottom:4px}
.tier-price small{font-size:.92rem;font-weight:600;color:var(--muted)}
.tier-sub{color:var(--muted);font-size:.88rem;margin-bottom:20px}
.tier ul{list-style:none;margin:0 0 6px;padding:0;flex:1}
.tier ul li{position:relative;padding:9px 0 9px 27px;font-size:.92rem;border-bottom:1px solid var(--line)}
.tier ul li:last-child{border-bottom:none}
.tier ul li:before{content:"";position:absolute;left:2px;top:13px;width:13px;height:7px;border-left:2px solid var(--teal-l);border-bottom:2px solid var(--teal-l);transform:rotate(-45deg)}
.tier-guarantee{background:var(--warm);border:1px solid #ecdcc0;color:#7a5a1e;border-radius:10px;padding:11px 14px;font-size:.83rem;margin:14px 0 16px}
.tier-foot{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.tier .btn{width:100%;justify-content:center;margin-top:auto}
.nofee{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}
.nofee span{background:#eafaf5;color:var(--ok);border:1px solid #cdece4;border-radius:999px;padding:5px 13px;font-size:.82rem;font-weight:650}
.extras{max-width:860px;margin:44px auto 0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 34px}
.extras h3{font-size:1.18rem;margin-bottom:6px}
.extras p.sub{color:var(--muted);margin-bottom:18px;font-size:.92rem}
.extras ul{list-style:none;margin:0 0 16px;padding:0}
.extras li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.94rem}
.extras li:last-of-type{border-bottom:none}
.extras li .v{font-weight:700;color:var(--teal-d);white-space:nowrap;text-align:right}
.extras .closing{font-weight:650;color:var(--ink);margin-top:4px}
.fees-note{text-align:center;color:var(--muted);font-size:.85rem;margin-top:18px}

/* COMPARISON TABLE */
.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:16px;background:#fff}
table.compare{width:100%;border-collapse:collapse;min-width:640px;font-size:.95rem}
table.compare th,table.compare td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
table.compare thead th{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;background:var(--soft)}
table.compare thead th.us{color:var(--teal-d);background:#eef5f3}
table.compare tbody tr:last-child td{border-bottom:none}
table.compare td.feature{font-weight:600;color:var(--ink);width:34%}
table.compare td.us{font-weight:650;color:var(--teal-d);background:rgba(20,101,93,.045)}
table.compare td.them{color:var(--muted)}
.cmark{display:inline-flex;width:17px;height:17px;margin-right:7px;vertical-align:-3px;color:var(--ok)}
.xmark{display:inline-flex;width:15px;height:15px;margin-right:7px;vertical-align:-2px;color:#b08968}
.compare-note{color:var(--muted);font-size:.83rem;margin-top:14px;text-align:center}

/* WHY (dark band) */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:900px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.why-grid{grid-template-columns:1fr}}
.why .ic{width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:15px}
.why .ic svg{width:23px;height:23px}
.why h3{font-size:1.08rem;margin-bottom:7px;color:#fff}
.why p{color:rgba(255,255,255,.82);font-size:.93rem}
section.dark{background:linear-gradient(157deg,var(--teal-d),var(--teal));color:#fff}
section.dark .eyebrow{color:var(--gold)}
section.dark h2.sec{color:#fff}
section.dark .sec-lede{color:rgba(255,255,255,.82)}

/* AREAS */
.areas-box{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.areas-box a,.areas-box span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:550;color:var(--ink)}
.areas-box a:hover{border-color:var(--teal-l);color:var(--teal-l)}

/* FAQ */
.faq{max-width:800px}
details{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fff;overflow:hidden}
details summary{cursor:pointer;padding:19px 22px;font-weight:650;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:1.02rem}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"+";color:var(--teal-l);font-size:1.5rem;font-weight:300;line-height:1}
details[open] summary:after{content:"–"}
details .a{padding:0 22px 21px;color:var(--muted)}
details .a p{margin-bottom:10px}
details .a p:last-child{margin-bottom:0}

/* CTA band */
.ctaband{background:linear-gradient(120deg,var(--teal-d),var(--teal-l));color:#fff;text-align:center}
.ctaband h2{font-size:1.9rem;margin-bottom:12px;color:#fff}
.ctaband p{color:rgba(255,255,255,.86);max-width:56ch;margin:0 auto 26px;font-size:1.08rem}
.ctaband .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:start}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:30px}}
.contact-info h2.sec{color:#fff}
.contact-info .sec-lede{color:rgba(255,255,255,.85)}
.contact-lines{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.contact-lines a{display:inline-flex;align-items:center;gap:12px;color:#fff;font-weight:600;font-size:1.06rem}
.contact-lines a .ic{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex:none}
.contact-lines a .ic svg{width:20px;height:20px}
.contact-lines small{display:block;color:rgba(255,255,255,.7);font-weight:400;font-size:.82rem}
form{background:#fff;border-radius:18px;padding:30px;color:var(--ink)}
form label{display:block;font-weight:600;font-size:.87rem;margin:14px 0 6px}
form input,form textarea,form select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;background:#fff}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--teal-l);box-shadow:0 0 0 3px rgba(20,101,93,.12)}
form textarea{min-height:96px;resize:vertical}
form .btn{width:100%;justify-content:center;margin-top:22px}
.formnote{font-size:.8rem;color:var(--muted);margin-top:12px;text-align:center}
.formmsg{margin-top:14px;font-size:.9rem;text-align:center;min-height:1.2em}
.formmsg.success{color:var(--ok);font-weight:700}
.formmsg.error{color:#b91c1c;font-weight:700}
.hp-field{position:absolute;left:-9999px;top:-9999px}

/* prose (about, legal-ish) */
.prose{max-width:760px}
.prose p{margin-bottom:16px;color:#33413f}
.prose h2{font-size:1.5rem;margin:34px 0 12px}
.prose h3{font-size:1.15rem;margin:24px 0 8px}
.prose ul{margin:0 0 16px;padding-left:22px;color:#33413f}
.prose li{margin-bottom:7px}

/* FOOTER */
footer{background:#0a1c1a;color:#9db4b0;padding:52px 0 30px;font-size:.9rem}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.1)}
@media(max-width:760px){.foot-top{grid-template-columns:1fr 1fr;gap:24px}}
@media(max-width:460px){.foot-top{grid-template-columns:1fr}}
footer .brand{color:#fff;margin-bottom:12px}
footer h4{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;font-weight:700}
footer a{color:#9db4b0}footer a:hover{color:#fff}
.foot-links{display:flex;flex-direction:column;gap:9px}
.foot-areas{color:#7d938f;font-size:.85rem;line-height:1.7}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:22px;color:#6f8480;font-size:.83rem}
