/* ============================================================
   SHARED SUBPAGE SYSTEM — Services / Pricing / Ops / Audit
   Layered on top of custom.css for the /custom multi-page funnel.
   ============================================================ */

/* ---- Nav: Services dropdown ---- */
.nav-links { align-items: center; }
.nav-dropdown { position: relative; }
.nav-dd-toggle { display:inline-flex; align-items:center; gap:6px; font-family:var(--font); font-size:0.92rem; font-weight:600; color:rgba(245,245,247,0.72); background:none; border:none; cursor:pointer; padding:0; }
.nav-dd-toggle:hover { color:#F5F5F7; }
.nav-dd-caret { width:13px; height:13px; transition:transform .25s ease; }
.nav-dropdown:hover .nav-dd-caret, .nav-dropdown:focus-within .nav-dd-caret { transform:rotate(180deg); }
.nav-dd-menu { position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(8px); width:540px; max-width:80vw; background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:14px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease, transform .2s ease; display:grid; grid-template-columns:1fr 1fr; gap:4px; z-index:60; }
.nav-dd-menu::before { content:""; position:absolute; top:-16px; left:0; right:0; height:16px; }
.nav-dropdown:hover .nav-dd-menu, .nav-dropdown:focus-within .nav-dd-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.nav-dd-menu a { display:flex; flex-direction:column; gap:3px; padding:11px 14px; border-radius:var(--radius-md); text-decoration:none; transition:background .18s ease; }
.nav-dd-menu a strong { font-size:0.9rem; font-weight:700; color:var(--ink); }
.nav-dd-menu a span { font-size:0.75rem; color:var(--text-muted); line-height:1.4; }
.nav-dd-menu a:hover { background:var(--bg-tint); }

/* ---- Subpage hero ---- */
.subhero { padding:148px 0 56px; position:relative; overflow:hidden; }
.subhero .container { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,0.94fr); grid-template-rows:auto auto auto auto; column-gap:52px; align-items:center; align-content:center; text-align:left; }
.subhero .eyebrow { grid-column:1; grid-row:1; justify-self:start; display:inline-flex; align-items:center; gap:8px; font-size:0.76rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--nc-green-deep); background:var(--bg-tint); border:1px solid var(--line-strong); padding:7px 16px; border-radius:var(--radius-pill); margin-bottom:22px; }
.subhero h1 { grid-column:1; grid-row:2; font-size:clamp(2rem, 3.6vw, 3.1rem); font-weight:800; line-height:1.07; color:var(--ink); max-width:20ch; margin:0 0 20px; letter-spacing:-0.02em; }
.subhero .sub { grid-column:1; grid-row:3; font-size:1.1rem; color:var(--text); max-width:56ch; margin:0 0 30px; }
.subhero-ctas { grid-column:1; grid-row:4; display:flex; gap:14px; justify-content:flex-start; flex-wrap:wrap; }
.subhero-video { grid-column:2; grid-row:1 / 5; align-self:center; justify-self:center; width:100%; max-width:560px; margin:0; aspect-ratio:916/720; background:transparent; border:1px solid var(--line-strong); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.subhero-video video { width:100%; height:100%; object-fit:cover; display:block; }

/* ---- Generic section scaffolding ---- */
.sec { padding:78px 0; }
.sec-tint { background:var(--bg-soft); }
.sec-dark { background:var(--nc-green-ink); }
.sec-head { text-align:center; max-width:66ch; margin:0 auto 46px; }
.sec-head .k { font-size:0.76rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--nc-green-deep); margin-bottom:14px; }
.sec-head h2 { font-size:clamp(1.7rem, 3.6vw, 2.55rem); font-weight:800; color:var(--ink); line-height:1.1; letter-spacing:-0.02em; margin-bottom:14px; }
.sec-head p { font-size:1.06rem; color:var(--text); }
.sec-dark .sec-head h2 { color:#fff; }
.sec-dark .sec-head p { color:rgba(255,255,255,0.82); }

/* ---- Service "how we build" flow ---- */
.buildflow { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.buildflow-3 { grid-template-columns:repeat(3,1fr); max-width:1000px; margin-left:auto; margin-right:auto; }
.bf-step { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:26px 22px; position:relative; }
.bf-step .n { width:34px; height:34px; border-radius:50%; background:var(--nc-green-deep); color:#fff; font-weight:800; font-size:0.9rem; display:grid; place-items:center; margin-bottom:16px; }
.bf-step h4 { font-size:1.04rem; font-weight:700; color:var(--ink); margin-bottom:8px; }
.bf-step p { font-size:0.9rem; color:var(--text); }

/* ---- "A fractional partner comes in and…" analyze block ---- */
.analyze { display:grid; grid-template-columns:1.05fr 1fr; gap:44px; align-items:center; }
.analyze-list { display:grid; gap:13px; }
.analyze-list li { list-style:none; display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-md); padding:16px 18px; }
.analyze-list li .chk { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--bg-tint); color:var(--nc-green-deep); display:grid; place-items:center; margin-top:1px; }
.analyze-list li strong { display:block; color:var(--ink); font-size:0.97rem; margin-bottom:3px; }
.analyze-list li span { font-size:0.87rem; color:var(--text); }

/* ---- diagram frame ---- */
.diagram { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-md); }
.diagram svg { width:100%; height:auto; display:block; }
.diagram-cap { margin-top:16px; font-size:0.85rem; color:var(--text-muted); text-align:center; }

/* ---- CTA band ---- */
.ctaband { background:var(--nc-green-ink); border-radius:var(--radius-xl); padding:56px 40px; text-align:center; color:#fff; position:relative; overflow:hidden; }
.ctaband h2 { font-size:clamp(1.6rem,3.4vw,2.35rem); font-weight:800; color:#fff; margin-bottom:14px; }
.ctaband p { color:rgba(255,255,255,0.82); max-width:54ch; margin:0 auto 26px; font-size:1.04rem; }
.ctaband-ctas { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* Ghost buttons on dark/green backgrounds become solid white so they stay visible.
   (Default .btn-ghost is transparent + dark ink text — invisible on the green card.) */
.ctaband .btn-ghost,
.pcard.dark .btn-ghost {
    background:#fff;
    color:var(--nc-green-ink);
    border-color:#fff;
    font-weight:700;
}
.ctaband .btn-ghost:hover,
.pcard.dark .btn-ghost:hover {
    background:rgba(255,255,255,0.88);
    border-color:#fff;
    color:var(--nc-green-ink);
}

/* ---- pricing ---- */
.ptable { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; align-items:stretch; max-width:920px; margin:0 auto; }
.pcard { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:36px 30px; display:flex; flex-direction:column; }
.pcard.dark { background:var(--nc-green-ink); color:#fff; border-color:transparent; box-shadow:var(--shadow-lg); }
.pcard .pk { font-size:0.76rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--nc-green-deep); margin-bottom:12px; }
.pcard.dark .pk { color:var(--nc-green-bright); }
.pcard h3 { font-size:1.45rem; font-weight:800; margin-bottom:8px; color:var(--ink); }
.pcard.dark h3 { color:#fff; }
.pcard .pdesc { font-size:0.94rem; color:var(--text); margin-bottom:22px; }
.pcard.dark .pdesc { color:rgba(255,255,255,0.82); }
.pcard ul { list-style:none; display:grid; gap:11px; margin-bottom:26px; }
.pcard li { display:flex; gap:10px; font-size:0.91rem; align-items:flex-start; color:var(--text); }
.pcard.dark li { color:rgba(255,255,255,0.9); }
.pcard li .chk { flex-shrink:0; color:var(--nc-green-deep); margin-top:2px; }
.pcard.dark li .chk { color:var(--nc-green-bright); }
.pcard .pfoot { margin-top:auto; display:grid; gap:10px; }

/* ---- single flat-price card (website builds) ---- */
.pricewrap { max-width:560px; margin:0 auto; }
.pricecard { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:36px 32px; display:flex; flex-direction:column; box-shadow:var(--shadow-lg); }
.pricecard .pk { font-size:0.76rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--nc-green-deep); margin-bottom:14px; }
.pricecard .priceline { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.pricecard .priceline .amt { font-size:3.4rem; font-weight:900; line-height:1; color:var(--ink); letter-spacing:-0.02em; }
.pricecard .priceline .per { font-size:0.95rem; font-weight:600; color:var(--text); }
.pricecard .pdesc { font-size:0.94rem; color:var(--text); margin-bottom:22px; }
.pricecard ul { list-style:none; display:grid; gap:11px; margin-bottom:22px; }
.pricecard li { display:flex; gap:10px; font-size:0.91rem; align-items:flex-start; color:var(--text); }
.pricecard li .chk { flex-shrink:0; color:var(--nc-green-deep); margin-top:2px; }
.pricecard .pricefoot { background:var(--nc-green-tint,#E8F8F0); border:1px solid rgba(12,196,129,0.28); border-radius:var(--radius-md,12px); padding:14px 16px; margin-bottom:22px; }
.pricecard .maint-note { font-size:0.9rem; color:var(--text); line-height:1.5; }
.pricecard .maint-note strong { color:var(--nc-green-deep); }
.pricecard .pfoot { margin-top:auto; display:grid; gap:10px; }

/* ---- Mia 2.0 pricing note ---- */
.mia-pricing-note { max-width:820px; margin:26px auto 0; text-align:center; font-size:0.92rem; line-height:1.6; color:var(--text-muted,#7A8780); }

/* ---- SEO stat grid ---- */
.statgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.statcard { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:28px 24px; box-shadow:var(--shadow-md); display:flex; flex-direction:column; }
.statcard .stat-num { font-size:2.9rem; font-weight:900; line-height:1; color:var(--nc-green-deep); letter-spacing:-0.02em; margin-bottom:12px; }
.statcard .stat-claim { font-size:0.98rem; font-weight:600; color:var(--ink); line-height:1.4; margin-bottom:8px; }
.statcard .stat-body { font-size:0.88rem; color:var(--text); line-height:1.5; margin-bottom:14px; }
.statcard .stat-src { margin-top:auto; font-size:0.72rem; color:var(--text-muted); }
.statcard .stat-src a { color:var(--nc-green-deep); text-decoration:none; }
.statcard .stat-src a:hover { text-decoration:underline; }

/* ---- SEO method row ---- */
.seo-method { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.seo-step { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:26px 24px; position:relative; }
.seo-step .n { width:32px; height:32px; border-radius:50%; background:var(--nc-green-deep); color:#fff; font-weight:800; font-size:0.85rem; display:grid; place-items:center; margin-bottom:16px; }
.seo-step h4 { font-size:1.02rem; font-weight:700; color:var(--ink); margin-bottom:8px; }
.seo-step p { font-size:0.89rem; color:var(--text); line-height:1.5; }
.stat-disclaimer { margin-top:26px; font-size:0.78rem; color:var(--text-muted); text-align:center; line-height:1.6; }

/* ---- small helpers ---- */
.center { text-align:center; }
.mt40 { margin-top:40px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-quad { grid-template-columns:repeat(2,1fr); max-width:900px; margin-left:auto; margin-right:auto; }
.mini-card { background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:26px 24px; }
.mini-card h4 { font-size:1.05rem; font-weight:700; color:var(--ink); margin-bottom:8px; }
.mini-card p { font-size:0.9rem; color:var(--text); }

@media (max-width: 900px){
  .subhero .container { grid-template-columns:1fr; grid-template-rows:none; row-gap:0; text-align:center; }
  .subhero .eyebrow, .subhero h1, .subhero .sub, .subhero-ctas { grid-column:1; grid-row:auto; }
  .subhero .eyebrow { justify-self:center; }
  .subhero h1, .subhero .sub { max-width:100%; }
  .subhero-ctas { justify-content:center; }
  .subhero-video { grid-column:1; grid-row:1; width:min(440px,100%); margin:0 auto 34px; align-self:auto; justify-self:center; }
  .buildflow { grid-template-columns:repeat(2,1fr); }
  .analyze { grid-template-columns:1fr; gap:30px; }
  .ptable { grid-template-columns:1fr; }
  .grid-3 { grid-template-columns:1fr; }
  .statgrid { grid-template-columns:1fr; }
  .seo-method { grid-template-columns:1fr; }
  .nav-dd-menu { grid-template-columns:1fr; width:320px; }
}
@media (max-width:520px){ .buildflow { grid-template-columns:1fr; } }
