/* SKIN: professional (law, accounting, medical, consulting, B2B services)
   Feel: clean, credible, quiet confidence. Structured, restrained color.

   THIS SITE'S COPY (solomons-corporate-solutions, 2026-10-08) is tuned to the
   client's logo: a near-black navy band fading to deep teal behind a chrome
   serif monogram. Skins are per-site files (qa.ps1 does not gate them against
   the template); base.css stays untouched. What this copy does differently
   from the stock professional skin, and why:
   - DARK heroes (the fleet's standard overlay) but tinted toward the logo's
     navy/teal rather than neutral gray, so the stock photos read as the same
     brand as the logo band in the header.
   - Serif display face (Cormorant Garamond) at heavier weights, with a
     spaced-caps eyebrow in the body sans - the same pairing as the logo.
   - Flat, hairline surfaces (--shadow:none) and square-ish 6px radii: this is
     an analyst's site, not a storefront.
   - Brand: navy #0B2F4A (primary), teal #006C91 (accent, white text 5.6:1),
     chrome gray #C9D3DB as a DECORATIVE rule color only - fails as text. */
:root{
  --paper:#ffffff; --ink:#172230; --muted:#4b5665;
  --radius:6px;
  --shadow:none;
  --tile-border:1px solid #dde4ea;
  --header-line:1px solid #e3e9ee;
  --section-bg-alt:#f3f6f8;
  --chrome:#c9d3db;
  --teal-soft:#e4f0f4;
  --hero-overlay:linear-gradient(100deg,rgba(6,26,42,.86) 0%,rgba(8,40,62,.72) 50%,rgba(0,108,145,.42) 100%);
}
body{font-size:1.02rem}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:.005em;color:var(--primary)}
h1{font-size:clamp(2.3rem,4.8vw,3.5rem);line-height:1.08}
h2{font-size:clamp(1.8rem,3.4vw,2.5rem);line-height:1.12}
h3{font-size:1.25rem}
.eyebrow{color:var(--accent);letter-spacing:.2em;font-size:.74rem;font-weight:600;text-transform:uppercase}
section{padding:4.8rem 0}
.sub{color:var(--muted)}
.sub + .sub{margin-top:1rem}
h2 + .sub,h2 + .lede{margin-top:.5rem}
.narrow{max-width:800px}
.lede{font-size:1.16rem;color:var(--ink);max-width:62ch;line-height:1.65}
a.more-link,.more-link{color:var(--accent);font-weight:600;text-decoration:none;border-bottom:1px solid var(--chrome)}
a.more-link:hover{border-bottom-color:var(--accent)}

/* ---- header: DARK (navy), carrying the chrome logo keyed out of the client's
   banded original. History, 2026-10-08: the banded logo on a white header was
   rejected ("dark slab"); the client's own no-backdrop gunmetal export on white
   was rejected too ("don't like the new logo on white either"); the chrome on
   navy is what reads. The same file serves the footer. ---- */
.site-header{padding:12px 28px;background:var(--dark);border-bottom:1px solid rgba(255,255,255,.08)}
.site-header .main-nav a,.site-header .nav-item > a{color:rgba(255,255,255,.88)}
.site-header .main-nav a:hover,.site-header .nav-item > a:hover,
.site-header .main-nav a[aria-current],.site-header .nav-item > a[aria-current],
.site-header .nav-item > a.is-ancestor{color:#9fd3e6}
.site-header .caret{border-top-color:rgba(255,255,255,.75)}
/* The dropdown panel is white (base.css); the white nav-link color above must
   NOT reach into it (found live 2026-10-08: white-on-white menu items). */
.site-header .sub-menu{background:#fff;border:1px solid #dde4ea;box-shadow:0 10px 30px rgba(6,26,42,.25)}
.site-header .sub-menu a,.site-header .main-nav .sub-menu a{color:var(--ink)}
.site-header .sub-menu a:hover,.site-header .main-nav .sub-menu a:hover,
.site-header .sub-menu a[aria-current],.site-header .main-nav .sub-menu a[aria-current]{color:var(--primary);background:var(--section-bg-alt)}
.site-header .nav-caret{color:#fff}
.site-header .tel-mini{color:#fff}
.site-header .menu-btn{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.site-header .btn-accent{border-color:var(--accent)}
.site-header .btn-accent:hover{background:#fff;border-color:#fff;color:var(--primary)}
.skip{color:#fff}
.brand img{height:66px}
.main-nav{gap:24px}
.main-nav a,.nav-item > a{font-weight:500;color:var(--ink)}
.main-nav a,.nav-item > a,.hdr-cta .btn{white-space:nowrap}
@media (max-width:1180px){.tel-mini{display:none}.main-nav{gap:18px}.brand img{height:58px}}
/* 861-1040px: the wide lockup + 6 nav items + CTA only fit if everything
   steps down a size. */
@media (max-width:1040px){.site-header{padding:10px 18px;gap:12px}.brand img{height:50px}
  .main-nav{gap:13px}.main-nav a,.nav-item > a{font-size:.86rem}.hdr-cta .btn{padding:.6rem 1rem;font-size:.86rem}}
@media (max-width:860px){.brand img{height:54px}}
.menu-btn{border:1.5px solid var(--primary);color:var(--primary);border-radius:var(--radius);
  font-family:var(--body);font-weight:600;padding:.45rem 1rem}

/* ---- buttons: flat, squared, no shadow ---- */
.btn{border-radius:var(--radius);border:1.5px solid var(--primary);color:var(--primary);
  background:transparent;box-shadow:none;font-weight:600;letter-spacing:.02em;padding:.74rem 1.4rem;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.btn:hover{transform:none;background:var(--primary);color:#fff}
.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-text,#fff)}
.btn-accent:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-big{padding:.92rem 1.7rem}
.hero .btn:not(.btn-accent){border-color:rgba(255,255,255,.75);color:#fff}
.hero .btn:not(.btn-accent):hover{background:#fff;color:var(--primary)}
.mobile-nav a.mobile-cta{border-radius:var(--radius);border-width:1.5px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6rem}

/* ---- hero ---- */
.hero{min-height:70vh;padding:8rem 0 4.4rem}
.hero h1{color:#fff;max-width:18ch}
.hero .sub{font-size:1.1rem;margin-top:1.1rem;max-width:56ch}
.hero .eyebrow + h1{margin-top:.8rem}
.hero .eyebrow{color:#9fd3e6;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.hero-page{min-height:50vh;padding-top:8rem}
.hero-page h1{max-width:22ch}
.hero-points{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.5rem;
  font-size:.94rem;font-weight:500;color:#fff}
.hero-points li{display:flex;align-items:center;gap:.5rem;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.hero-points li::before{content:"";width:7px;height:7px;background:#9fd3e6;transform:rotate(45deg)}

/* ---- surfaces: hairlines, not shadows ---- */
.tile{border-radius:var(--radius);background:#fff}
.tile h3{color:var(--primary);font-size:1.2rem}
.lead-panel{border-radius:var(--radius);border:1px solid #d6dfe6;box-shadow:0 1px 2px rgba(11,47,74,.06)}
.lead-head{background:#fff;color:var(--primary);font-weight:700;font-family:var(--display);font-size:1.3rem}
.lead-form input,.lead-form textarea,.lead-form select{border:1.5px solid #cbd6df;border-radius:var(--radius);
  font-family:var(--body);font-size:.95rem;padding:.72rem .8rem;background:#fff;width:100%}
.lead-form select{appearance:auto}
.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus{outline:3px solid rgba(0,108,145,.3);border-color:var(--accent)}
.split img{border-radius:var(--radius)}
.ticks li::before{background:var(--accent);transform:rotate(45deg);border-radius:0}
.steps li::before{background:var(--primary);color:#fff;font-family:var(--display);font-weight:700;border-radius:var(--radius)}
.faq details{border-bottom:1px solid #dde4ea}
.faq summary{font-weight:700;color:var(--primary);font-size:1.12rem}

/* Service cards: the whole card is the link. */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:2.4rem}
.cards.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.cards.cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.cards,.cards.cols4{grid-template-columns:minmax(0,1fr)}}
.card{display:flex;flex-direction:column;gap:.55rem;text-decoration:none;background:#fff;
  border:1px solid #dde4ea;border-top:3px solid var(--primary);border-radius:var(--radius);padding:1.7rem 1.6rem;
  transition:border-color .15s ease}
.card:hover{border-color:var(--accent)}
.card h3{font-size:1.4rem}
.card p{font-size:.96rem;color:var(--muted)}
.card .more{margin-top:auto;padding-top:.6rem;color:var(--accent);font-weight:600;font-size:.95rem}
.card .tag{align-self:flex-start;font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);background:var(--teal-soft);border-radius:3px;padding:.28rem .7rem}

/* Definition grid: "what SOLVR looks at", "who it is for", a town's business map. */
.def-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:2rem}
.def-grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.def-grid.cols3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.def-grid,.def-grid.cols3{grid-template-columns:minmax(0,1fr)}}
.def-grid > div{background:#fff;border:1px solid #dde4ea;border-radius:var(--radius);padding:1.3rem 1.4rem}
.def-grid dt{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.def-grid dd{margin:.4rem 0 0;font-size:.96rem;color:var(--ink)}
.def-grid dd b{color:var(--primary)}

/* The Intelligence Cycle strip: six numbered stages in a row. */
.cycle{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:2rem;counter-reset:stage}
@media (max-width:960px){.cycle{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.cycle{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cycle li{counter-increment:stage;background:var(--primary);color:#fff;border-radius:var(--radius);padding:1.1rem 1rem}
.cycle li::before{content:"0" counter(stage);display:block;font-family:var(--display);font-size:1.5rem;font-weight:700;color:#9fd3e6;line-height:1}
.cycle b{display:block;margin-top:.4rem;font-size:.95rem}
.cycle span{display:block;margin-top:.3rem;font-size:.82rem;color:rgba(255,255,255,.8)}

/* Owner quote band. */
.quote-band{background:var(--primary);color:#fff;padding:4.5rem 0}
.quote-band blockquote{font-family:var(--display);font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.3;max-width:28ch;margin:0}
.quote-band blockquote::before{content:"\201C";color:#9fd3e6}
.quote-band blockquote::after{content:"\201D";color:#9fd3e6}
.quote-band cite{display:block;margin-top:1.2rem;font-style:normal;font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:#9fd3e6}

/* Two-column comparison (Deep Dive vs Core). */
.compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:2.2rem}
@media (max-width:760px){.compare{grid-template-columns:minmax(0,1fr)}}
.compare > div{background:#fff;border:1px solid #dde4ea;border-radius:var(--radius);padding:1.8rem 1.7rem}
.compare > div.lead{border-color:var(--accent);border-top:3px solid var(--accent)}
.compare h3{font-size:1.5rem}
.compare .fit{margin-top:.3rem;font-size:.9rem;color:var(--accent);font-weight:600}
.compare ul{margin-top:1rem;padding-left:1.1rem;font-size:.95rem;color:var(--ink)}
.compare li + li{margin-top:.4rem}

/* "Who we help" chips. */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.4rem}
.chips li,.chips a{display:inline-block;border:1px solid #cbd6df;background:#fff;color:var(--primary);
  border-radius:3px;padding:.42rem .95rem;font-size:.92rem;font-weight:500;text-decoration:none}
.chips a:hover{border-color:var(--accent);color:var(--accent)}

/* Hours strip on the contact page. */
.hours-list{list-style:none;margin-top:1rem;border-top:1px solid #dde4ea;max-width:420px}
.hours-list li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid #dde4ea;font-size:.96rem}
.hours-list li span:last-child{color:var(--muted)}

/* Thin chrome rule above a closing band. */
.rule{height:2px;width:64px;background:linear-gradient(90deg,var(--accent),var(--chrome));margin:0 0 1.4rem}

/* Legal / plain pages with no hero. */
.page-top{padding-top:8.5rem}
.prose h2{font-size:1.4rem;margin-top:2rem}

.foot-logo{height:44px}
.foot-areas-all,.foot-areas a:hover,.foot-links a:hover{color:#9fd3e6}
.fine-print{margin-top:2rem;font-size:.84rem;color:var(--muted);max-width:80ch}
.stock-note{font-size:.78rem;color:var(--muted);margin-top:.5rem}

/* Q4: The Final Four — price comparison strip and the terms block. */
.offer-table{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:1.8rem;max-width:760px}
@media (max-width:620px){.offer-table{grid-template-columns:minmax(0,1fr)}}
.offer-table > div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:1rem 1.1rem;color:#fff}
.offer-table dt{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#9fd3e6}
.offer-table dd{margin:.35rem 0 0;font-family:var(--display);font-size:1.9rem;font-weight:700;line-height:1.1}
.offer-table dd s{font-size:1.05rem;font-weight:500;color:rgba(255,255,255,.6);margin-right:.5rem;font-family:var(--body)}
.offer-table dd small{display:block;font-family:var(--body);font-size:.82rem;font-weight:400;color:rgba(255,255,255,.75);margin-top:.2rem}
.terms{background:#fff;border:1px solid #dde4ea;border-left:3px solid var(--accent);border-radius:var(--radius);padding:1.6rem 1.7rem;max-width:860px}
.terms p{font-size:.95rem;color:var(--ink)}
.terms p + p{margin-top:.8rem}
