:root{
  --navy:#0A2A43;
  --navy-deep:#06192A;
  --navy-ink:#04111d;
  --blue:#123B5E;
  --lake:#1D587A;
  --gold:#C9A227;
  --gold-soft:#E0C15B;
  --cream:#F6F1E7;
  --paper:#FBF8F1;
  --mist:#E9E0CF;
  --ink:#152331;
  --muted:#657381;
  --line:#DDD1BB;
  --white:#fffdf8;
  --shadow:0 24px 70px -36px rgba(6,25,42,.55);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Segoe UI",Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;}
.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto;}
.narrow{width:min(920px,calc(100% - 40px));margin:0 auto;}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.08;color:var(--navy-deep);font-weight:700;}
h1{font-size:clamp(2.35rem,4.7vw,4.15rem);color:var(--cream);max-width:13.5ch;}
h2{font-size:clamp(2rem,4.4vw,3.4rem);}
h3{font-size:1.25rem;}
p{font-size:1rem;}
.eyebrow{display:inline-flex;align-items:center;gap:11px;color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800;}
.eyebrow:before{content:"";width:30px;height:2px;background:currentColor;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:13px 22px;border:2px solid transparent;border-radius:6px;font-weight:800;font-size:.94rem;line-height:1.1;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;cursor:pointer;}
.btn:hover{transform:translateY(-2px);}
.btn.gold{background:var(--gold);color:var(--navy-deep);}
.btn.gold:hover{background:var(--gold-soft);}
.btn.ghost{color:var(--cream);border-color:rgba(246,241,231,.48);background:rgba(246,241,231,.04);}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold-soft);}
.btn.navy{background:var(--navy);color:var(--cream);}
.btn.navy:hover{background:var(--blue);}
.logo{display:inline-flex;align-items:center;min-width:0;}
.brand-logo{display:block;width:268px;height:auto;max-width:100%;}
footer .brand-logo{width:286px;}
header{position:sticky;top:0;z-index:50;background:rgba(6,25,42,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(201,162,39,.22);}
.nav{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.navlinks{display:flex;align-items:center;gap:26px;color:var(--cream);font-size:.9rem;font-weight:700;}
.navlinks a:not(.btn){opacity:.9;padding:6px 0;border-bottom:2px solid transparent;}
.navlinks a:not(.btn):hover{opacity:1;color:var(--gold-soft);border-color:var(--gold);}
.navlinks a:not(.btn)[aria-current="page"]{opacity:1;color:var(--gold-soft);border-color:var(--gold);}
.menu{display:none;background:transparent;border:1px solid rgba(246,241,231,.35);color:var(--cream);width:44px;height:38px;border-radius:6px;font-size:1.35rem;}
.hero{position:relative;overflow:hidden;color:var(--cream);padding:0;background-image:linear-gradient(90deg,rgba(6,25,42,.98) 0%,rgba(6,25,42,.92) 28%,rgba(6,25,42,.58) 52%,rgba(6,25,42,.18) 72%,rgba(6,25,42,.1) 100%),linear-gradient(180deg,rgba(6,25,42,.42),rgba(6,25,42,.28)),url("northpoint-hero-background.png");background-size:cover;background-position:center 40%;background-repeat:no-repeat;}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,25,42,.42),transparent 42%),radial-gradient(circle at 67% 48%,rgba(201,162,39,.18),transparent 34%);pointer-events:none;}
.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:7px;background:linear-gradient(90deg,var(--gold),transparent 70%);opacity:.9;}
.hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(300px,1.14fr);gap:42px;align-items:center;min-height:min(80vh,690px);padding:48px 0 44px;}
.hero-copy{position:relative;z-index:2;align-self:center;max-width:650px;}
.hero-copy .eyebrow{margin-bottom:18px;}
.hero h1 .gold{color:var(--gold-soft);}
.hero .sub{max-width:620px;color:#d9e1e7;font-size:1.08rem;margin:18px 0 14px;}
.hero-aud{color:var(--gold-soft);font-weight:700;font-size:.97rem;margin:0 0 22px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:22px;}
.local-cue{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:#c2ccd4;font-size:.88rem;}
.local-cue b{color:var(--cream);}
.local-cue span{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(201,162,39,.28);background:rgba(201,162,39,.1);border-radius:999px;}
.hero-art{position:relative;z-index:1;min-height:440px;}
.photo-slot{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;border:1px solid rgba(201,162,39,.42);background:linear-gradient(145deg,rgba(246,241,231,.1),rgba(201,162,39,.16)),linear-gradient(160deg,#102f49,#071f32 58%,#9f6f26);color:var(--cream);box-shadow:var(--shadow);}
.photo-slot:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,25,42,.85),rgba(6,25,42,.08) 52%,rgba(201,162,39,.12)),repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 1px,transparent 1px 16px);}
.slot-label{position:relative;z-index:2;width:min(86%,560px);padding:22px;border:1px dashed rgba(246,241,231,.68);background:rgba(6,25,42,.52);font-size:.86rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;}
.photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;display:block;z-index:3;}
.hero-slot{width:100%;aspect-ratio:12/7;border-radius:0 0 0 54px;}
.hero-stamp{position:absolute;right:24px;bottom:24px;z-index:3;width:128px;height:128px;border-radius:50%;border:3px solid var(--gold);background:rgba(6,25,42,.86);display:grid;place-items:center;color:var(--cream);font-size:.63rem;text-transform:uppercase;letter-spacing:.18em;text-align:center;transform:rotate(-8deg);}
.trust{background:var(--cream);border-bottom:1px solid var(--line);}
.trust-row{min-height:92px;display:grid;grid-template-columns:1.2fr repeat(3,1fr);align-items:center;gap:20px;}
.trust strong{font-family:Georgia,"Times New Roman",serif;font-size:1.28rem;color:var(--navy);}
.trust-item{border-left:1px solid var(--line);padding-left:22px;}
.trust-item b{display:block;color:var(--navy);font-size:.95rem;}
.trust-item span{color:var(--muted);font-size:.86rem;}
section{padding:86px 0;}
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:start;}
.problem{background:var(--paper);}
.owner-words{display:grid;gap:14px;}
.quote-card{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--gold);padding:22px 24px;box-shadow:0 16px 44px -34px rgba(6,25,42,.45);}
.quote-card p{font-size:1.08rem;color:var(--navy-deep);font-weight:700;}
.section-intro{max-width:700px;margin-bottom:42px;}
.section-intro.center{text-align:center;margin-left:auto;margin-right:auto;}
.section-intro p{margin-top:14px;color:var(--muted);font-size:1.08rem;}
.services{background:var(--cream);}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.svc{background:var(--white);border:1px solid var(--line);min-height:318px;padding:22px;display:flex;flex-direction:column;gap:14px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.svc:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--gold);}
.icon-slot{width:62px;height:62px;border-radius:12px;border:1px solid rgba(201,162,39,.5);background:linear-gradient(145deg,var(--navy),var(--blue));display:grid;place-items:center;overflow:hidden;color:var(--gold-soft);}
.icon-slot svg{width:30px;height:30px;}
.svc p{color:var(--muted);font-size:.93rem;}
.svc small{margin-top:auto;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;}
.works{background:var(--navy-deep);color:var(--cream);}
.works h2,.works h3{color:var(--cream);}
.works .section-intro p{color:#c2ccd4;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(201,162,39,.26);}
.step{padding:30px 26px;min-height:270px;border-right:1px solid rgba(201,162,39,.26);background:rgba(255,255,255,.025);}
.step:last-child{border-right:none;}
.step b{display:block;color:var(--gold);font-family:Georgia,"Times New Roman",serif;font-size:2.4rem;line-height:1;margin-bottom:18px;}
.step p{color:#c2ccd4;font-size:.94rem;margin-top:8px;}
.signature{background:linear-gradient(180deg,var(--paper),var(--cream));}
.signature-box{display:grid;grid-template-columns:.9fr 1.1fr;gap:38px;align-items:center;border-top:5px solid var(--gold);background:var(--white);box-shadow:var(--shadow);padding:42px;}
.price-pill{display:inline-flex;align-items:baseline;gap:8px;margin:22px 0;padding:11px 16px;border:1px solid var(--line);background:var(--cream);color:var(--navy);font-weight:800;}
.price-pill strong{font-size:1.8rem;font-family:Georgia,"Times New Roman",serif;}
.mockups{display:grid;grid-template-columns:1fr;gap:14px;}
.incl{list-style:none;display:grid;gap:11px;margin:20px 0 26px;}
.incl li{position:relative;padding-left:30px;color:var(--ink);font-size:.97rem;}
.incl li:before{content:"\2713";position:absolute;left:0;top:1px;color:var(--gold);font-weight:900;}
.incl li b{color:var(--navy-deep);}
.steps.five{grid-template-columns:repeat(5,1fr);}
.steps.light .step p{color:var(--muted);}
.steps.light .step h3{color:var(--navy-deep);}
.steps.light .step b{color:var(--gold);}
.ladder-tag{display:inline-block;margin-top:12px;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;}
.svc-more{margin-top:16px;border:1px dashed rgba(201,162,39,.55);background:rgba(201,162,39,.07);padding:18px 22px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;}
.svc-more .tagk{color:var(--navy-deep);font-weight:800;text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;background:var(--gold);padding:5px 10px;border-radius:4px;}
.svc-more b{color:var(--navy-deep);}
.svc-more span{color:var(--muted);font-size:.95rem;}
.mockup{position:relative;display:block;aspect-ratio:1200/760;border:1px solid var(--line);background:linear-gradient(145deg,var(--navy),var(--lake));overflow:hidden;color:var(--cream);}
.mockup:nth-child(2){background:linear-gradient(145deg,#173049,#684f1b);}
.mockup:nth-child(3){background:linear-gradient(145deg,#071f32,#526b75);}
.mockup:before{content:"";position:absolute;inset:14px;border:1px dashed rgba(246,241,231,.55);}
.mockup span{position:absolute;left:28px;bottom:24px;right:28px;font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;font-weight:800;}
.mockup.filled:before{display:none;}
.mockup.filled img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.mockup.filled span{background:linear-gradient(0deg,rgba(4,17,29,.9),rgba(4,17,29,0));padding:34px 22px 16px;left:0;right:0;bottom:0;}
.mockup:hover img{transform:scale(1.015);transition:transform .25s ease;}
.mockup.prev{background:var(--pv-bg);}
.mockup.prev:before{display:none;}
.mockup.prev .win{position:absolute;left:18px;right:18px;top:18px;bottom:50px;border-radius:9px;overflow:hidden;background:var(--pv-screen);box-shadow:0 18px 34px -20px rgba(0,0,0,.55);}
.mockup.prev .bar{height:24px;background:var(--pv-bar);display:flex;align-items:center;gap:5px;padding:0 10px;}
.mockup.prev .bar i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);}
.mockup.prev .body{padding:16px 18px;}
.mockup.prev .nm{font-weight:800;font-size:1.05rem;color:var(--pv-accent);}
.mockup.prev .ln{height:7px;border-radius:4px;background:var(--pv-line);margin-top:10px;width:82%;}
.mockup.prev .ln.s{width:54%;}
.mockup.prev .cbtn{margin-top:14px;display:inline-block;background:var(--pv-accent);color:#fff;font-size:.6rem;font-weight:800;padding:6px 11px;border-radius:5px;text-transform:uppercase;letter-spacing:.06em;}
.mockup.prev span{background:linear-gradient(0deg,rgba(4,17,29,.92),rgba(4,17,29,0));padding:34px 22px 16px;left:0;right:0;bottom:0;}
.prev-dental{--pv-bg:linear-gradient(145deg,#0E7C86,#0A5A62);--pv-screen:#F7FBFB;--pv-bar:#0A5A62;--pv-accent:#0E7C86;--pv-line:#d5e7e7;}
.prev-roofing{--pv-bg:linear-gradient(145deg,#1F2933,#111820);--pv-screen:#fff;--pv-bar:#111820;--pv-accent:#C9850A;--pv-line:#dde2e7;}
.prev-roofing .nm{text-transform:uppercase;letter-spacing:.02em;}
.prev-cafe{--pv-bg:linear-gradient(145deg,#C45A33,#A44524);--pv-screen:#FBF4E8;--pv-bar:#214429;--pv-accent:#C45A33;--pv-line:#e9dcc6;}
.prev-cafe .nm{font-family:Georgia,serif;}
.proof{background:var(--navy);color:var(--cream);padding:0;}
.case{display:grid;grid-template-columns:1fr 1fr;min-height:560px;}
.case-shot{min-height:460px;border:0;border-right:1px solid rgba(201,162,39,.28);}
.case-text{display:flex;flex-direction:column;justify-content:center;padding:62px max(40px,calc((100vw - 1180px)/2)) 62px 54px;}
.case-text h2,.case-text h3{color:var(--cream);}
.case-text p{color:#c8d2da;margin-top:14px;}
.case-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;}
.case-list div{border:1px solid rgba(201,162,39,.28);padding:16px;background:rgba(255,255,255,.03);}
.case-list b{display:block;color:var(--gold);font-size:1.2rem;}
.pricing{background:var(--cream);}
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.price-card{background:var(--white);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;min-height:354px;}
.price-card.featured{border:3px solid var(--gold);box-shadow:var(--shadow);}
.price-card .kind{font-size:.73rem;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--muted);}
.amount{font-family:Georgia,"Times New Roman",serif;color:var(--navy);font-size:2.45rem;font-weight:700;margin:10px 0;}
.amount small{font-family:"Segoe UI",Arial,sans-serif;font-size:.95rem;color:var(--muted);font-weight:600;}
.price-card p{color:var(--muted);font-size:.94rem;}
.price-card a{margin-top:auto;}
.about{background:var(--paper);}
.about-grid{display:grid;grid-template-columns:1fr .85fr;gap:48px;align-items:center;}
.about-copy p{color:var(--muted);margin-top:16px;font-size:1.06rem;}
.portrait-slot{aspect-ratio:4/3;border-radius:0 38px 0 0;}
.faq{background:var(--white);}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
details{border:1px solid var(--line);background:var(--paper);padding:20px 22px;}
summary{cursor:pointer;color:var(--navy);font-weight:800;}
details p{margin-top:12px;color:var(--muted);}
.final-cta{background:linear-gradient(120deg,var(--navy-deep),var(--blue));color:var(--cream);text-align:center;}
.final-cta h2{color:var(--cream);}
.final-cta p{max-width:620px;margin:16px auto 28px;color:#d1dbe2;font-size:1.1rem;}
footer{background:var(--navy-ink);color:#aeb9c3;padding:52px 0 22px;}
.foot{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:32px;}
footer h4{color:var(--cream);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px;}
footer ul{list-style:none;display:grid;gap:8px;}
footer a:hover{color:var(--gold);}
.footnote{border-top:1px solid rgba(246,241,231,.12);margin-top:34px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.84rem;}
.mobile-only{display:none;}

/* ---- Interior pages (shared) ---- */
.page-hero{position:relative;background:linear-gradient(120deg,var(--navy-deep),var(--blue));color:var(--cream);padding:74px 0 64px;border-bottom:1px solid rgba(201,162,39,.24);}
.page-hero:after{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:linear-gradient(90deg,var(--gold),transparent 70%);opacity:.9;}
.page-hero h1{color:var(--cream);max-width:18ch;font-size:clamp(2.1rem,4.2vw,3.4rem);}
.page-hero p{color:#d1dbe2;max-width:62ch;margin-top:16px;font-size:1.1rem;}
.crumbs{color:#9fb0bd;font-size:.82rem;margin-bottom:16px;letter-spacing:.04em;}
.crumbs a:hover{color:var(--gold-soft);}
.lede{font-size:1.18rem;color:var(--ink);max-width:70ch;}

/* service detail blocks */
.svc-detail{display:grid;grid-template-columns:1fr;gap:18px;}
.svc-row{display:grid;grid-template-columns:.34fr 1fr;gap:30px;align-items:start;background:var(--white);border:1px solid var(--line);border-left:5px solid var(--gold);padding:30px;}
.svc-row .meta .kind{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--gold);}
.svc-row .meta h2{font-size:1.7rem;margin:8px 0 12px;}
.svc-row .meta .price{font-family:Georgia,serif;color:var(--navy);font-size:1.9rem;font-weight:700;}
.svc-row .meta .price small{font-family:"Segoe UI",Arial,sans-serif;font-size:.9rem;color:var(--muted);font-weight:600;}
.svc-row ul{list-style:none;display:grid;gap:10px;}
.svc-row ul li{position:relative;padding-left:26px;color:var(--ink);font-size:.98rem;}
.svc-row ul li:before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;background:var(--gold);transform:rotate(45deg);}
.svc-row ul li.note{color:var(--muted);font-size:.9rem;}
.svc-row ul li.note:before{display:none;}

/* work / case grid */
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.work-card{background:var(--white);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;}
.work-card .shot{aspect-ratio:16/10;}
.work-card .body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.work-card h3{color:var(--navy-deep);}
.work-card p{color:var(--muted);font-size:.95rem;}
.tagrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;}
.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--navy);background:var(--cream);border:1px solid var(--line);padding:6px 10px;}

/* contact / forms */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
.quote-form{display:grid;gap:16px;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:30px;}
.field{display:grid;gap:7px;}
.field.row2{grid-template-columns:1fr 1fr;gap:16px;display:grid;}
.field label{font-size:.82rem;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.06em;}
.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--paper);padding:12px 14px;border-radius:6px;color:var(--ink);}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);border-color:var(--gold);background:var(--white);}
.field textarea{min-height:130px;resize:vertical;}
.req{color:var(--gold);}
.form-note{font-size:.84rem;color:var(--muted);}
.contact-side{display:grid;gap:18px;}
.contact-card{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--gold);padding:24px;}
.contact-card h3{color:var(--navy-deep);font-size:1.15rem;margin-bottom:8px;}
.contact-card p,.contact-card a{color:var(--muted);font-size:.98rem;display:block;}
.contact-card a:hover{color:var(--navy);}

@media(max-width:1050px){
  .service-grid,.price-grid{grid-template-columns:repeat(2,1fr);}
  .trust-row{grid-template-columns:1fr 1fr;}
  .hero-grid,.split,.signature-box,.case,.about-grid,.contact-grid{grid-template-columns:1fr;}
  .hero{background-size:cover;background-position:62% center;}
  .hero-grid{min-height:auto;padding-top:42px;padding-bottom:34px;}
  .hero-art{align-items:stretch;}
  .steps,.steps.five{grid-template-columns:1fr 1fr;}
  .step:nth-child(2){border-right:none;}
  .step{border-bottom:1px solid rgba(201,162,39,.26);}
  .svc-row{grid-template-columns:1fr;gap:18px;}
  .work-grid{grid-template-columns:1fr;}
}
@media(max-width:760px){
  .wrap,.narrow{width:min(100% - 28px,1180px);}
  .nav{height:auto;min-height:70px;}
  .menu{display:block;}
  .navlinks{position:absolute;left:14px;right:14px;top:72px;display:none;flex-direction:column;align-items:stretch;gap:0;padding:14px;background:var(--navy-deep);border:1px solid rgba(201,162,39,.28);}
  .navlinks.open{display:flex;}
  .navlinks a{padding:13px 8px!important;}
  .brand-logo{width:218px;}
  h1{max-width:12ch;font-size:clamp(2.1rem,10vw,2.7rem);}
  section{padding:64px 0;}
  .hero-actions{align-items:stretch;flex-direction:column;}
  .local-cue{align-items:flex-start;}
  .local-cue span{padding:6px 10px;}
  .btn{width:100%;}
  .hero-art{display:none;}
  .hero-slot{border-radius:0;aspect-ratio:16/5;}
  .hero-stamp{display:none;}
  .trust-row,.service-grid,.steps,.steps.five,.price-grid,.faq-grid,.foot,.case-list,.field.row2{grid-template-columns:1fr;}
  .trust-row{padding:24px 0;}
  .trust-item{border-left:0;border-top:1px solid var(--line);padding:16px 0 0;}
  .step{border-right:none!important;}
  .signature-box{padding:26px 18px;}
  .case-text{padding:48px 20px;}
  .footnote{display:block;}
}
