:root {
  --ink: #08131f;
  --ink-2: #0e2031;
  --panel: #11283c;
  --teal: #42e6c5;
  --blue: #68b6ff;
  --white: #f3f7fa;
  --muted: #a9bac8;
  --line: #284157;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--ink); color: var(--white); line-height: 1.65; }
a { color: var(--teal); }
img { max-width: 100%; height: auto; }
.container { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 99; background: #fff; color: #000; padding: .7rem 1rem; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(8,19,31,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand img { display:block; width: 236px; }
.nav { display:flex; align-items:center; flex-wrap:wrap; gap:1.15rem; }
.nav a { color: var(--white); text-decoration:none; font-size:.95rem; }
.nav a:hover { color: var(--teal); }
.hero { padding: 6.5rem 0 5rem; background: radial-gradient(circle at 80% 15%, rgba(66,230,197,.13), transparent 36%), radial-gradient(circle at 18% 10%, rgba(104,182,255,.12), transparent 32%); }
.eyebrow { color: var(--teal); text-transform: uppercase; letter-spacing: .13em; font-weight: 800; font-size: .78rem; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.025em; }
h1 { font-size: clamp(2.65rem, 6vw, 5.5rem); max-width: 980px; margin:.5rem 0 1.25rem; }
h2 { font-size: clamp(2rem, 4vw, 3.3rem); margin:0 0 1rem; }
h3 { font-size: 1.28rem; }
.lede { color: #d4e0e8; font-size: clamp(1.15rem, 2vw, 1.38rem); max-width: 850px; }
.hero-actions { display:flex; gap:.85rem; flex-wrap:wrap; margin-top:2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; background:var(--teal); color:#051318 !important; text-decoration:none; font-weight:850; padding:.9rem 1.25rem; border:1px solid var(--teal); border-radius:10px; cursor:pointer; }
.button:hover { filter: brightness(1.08); }
.button-secondary { background:transparent; color:var(--white)!important; border-color:#668097; }
.button-small { padding:.58rem .85rem; }
.section { padding: 5rem 0; }
.section-alt { background: var(--ink-2); border-block:1px solid var(--line); }
.grid-2, .grid-3 { display:grid; gap:1.35rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.card { background:linear-gradient(180deg, #122c42, #0d2234); border:1px solid var(--line); border-radius:16px; padding:1.5rem; }
.card p, .muted { color: var(--muted); }
.stat { font-size:2.3rem; font-weight:900; color:var(--teal); line-height:1; }
.kicker { color:var(--blue); font-weight:800; }
.checklist { list-style:none; padding:0; }
.checklist li { margin:.75rem 0; padding-left:1.8rem; position:relative; }
.checklist li::before { content:'✓'; position:absolute; left:0; color:var(--teal); font-weight:900; }
.code-strip { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background:#050c12; border:1px solid var(--line); border-radius:12px; padding:1rem 1.25rem; color:#b8f4e9; overflow:auto; }
.quote { border-left:4px solid var(--teal); margin:1.5rem 0; padding:.2rem 0 .2rem 1.25rem; color:#dce8ee; }
.faq details { border-top:1px solid var(--line); padding:1rem 0; }
.faq summary { cursor:pointer; font-weight:800; }
.form-grid { display:grid; gap:1rem; }
label { font-weight:750; }
input, textarea { width:100%; background:#07121c; color:var(--white); border:1px solid #496177; border-radius:9px; padding:.85rem .9rem; font:inherit; }
input:focus, textarea:focus { outline:2px solid var(--teal); outline-offset:2px; }
textarea { min-height:180px; resize:vertical; }
.notice { padding:1rem 1.15rem; border-radius:10px; margin-bottom:1rem; }
.notice-success { background:#10372f; border:1px solid #2d8d78; }
.notice-error { background:#401d22; border:1px solid #9c4e58; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.site-footer { border-top:1px solid var(--line); padding:3rem 0 1.5rem; color:var(--muted); }
.footer-grid { display:grid; grid-template-columns:1.1fr .7fr 1.2fr; gap:2rem; }
.footer-grid strong { color:var(--white); }
.footer-bottom { border-top:1px solid var(--line); margin-top:2rem; padding-top:1.2rem; font-size:.9rem; }
.breadcrumbs { padding:1rem 0 0; color:var(--muted); font-size:.9rem; }
.breadcrumbs a { color:var(--muted); }
.prose { max-width:850px; }
.prose p, .prose li { color:#c2d0da; }
@media (max-width: 900px) {
  .nav { display:none; }
  .grid-2,.grid-3,.footer-grid { grid-template-columns:1fr; }
  .hero { padding-top:4.5rem; }
}

/* Scheduling widget (GoHighLevel); its script resizes the height, min-height avoids a collapsed frame before that runs */
.booking-embed { display:block; width:100%; max-width:900px; margin:1.5rem auto 0;
  min-height:650px; border:none; overflow:hidden; border-radius:12px; background:#fff; }

/* Centered section intro (schedule block) */
.section-head-center { text-align:center; }
.section-head-center .lede { margin-inline:auto; }

/* Phone number: sits beside the nav; stays visible on mobile where the nav is hidden */
.nav-right { display:flex; align-items:center; gap:1.25rem; }
.header-phone { color:var(--white); font-weight:800; text-decoration:none; white-space:nowrap; }
.header-phone:hover { color:var(--teal); }

/* Custom web application page */
.feature-list { margin:.5rem 0 0; padding-left:1.15rem; color:var(--muted); }
.feature-list li { margin:0 0 .4rem; }
.stat-card .stat-num { display:block; font-size:1.7rem; font-weight:900; color:var(--teal); line-height:1.2; margin:.25rem 0 .6rem; }
.fine { font-size:.88rem; color:var(--muted); margin-top:1.1rem; max-width:none; }
.pills { display:flex; flex-wrap:wrap; gap:.55rem; list-style:none; margin:0; padding:0; }
.pills li { background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:.3rem .95rem; font-size:.93rem; color:#d4e0e8; }
.page-foot { margin-top:2.5rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.page-foot .updated-note { font-size:.82rem; color:#8294a3; margin-top:1.4rem; }

/* Whole card is clickable through its one link */
.card-linked { position:relative; transition:border-color .15s; }
.card-linked:hover { border-color:var(--teal); }
.card-linked a::after { content:""; position:absolute; inset:0; border-radius:16px; }

/* nav-fit: the header (logo, five nav links, button, phone) outgrows mid-size screens, so tighten it before it wraps */
@media (max-width: 1180px) {
  .brand img { width: 190px; }
  .nav { gap: .65rem; }
  .nav a { font-size: .88rem; }
  .nav-right { gap: .8rem; }
  .header-phone { font-size: .9rem; }
}

/* nav-rows: between phone and desktop widths the nav no longer fits beside the logo, so give it its own centered row */
@media (max-width: 1040px) and (min-width: 901px) {
  .nav-wrap { flex-wrap: wrap; }
  .nav-right { display: contents; }
  .brand { order: 1; margin-right: auto; }
  .header-phone { order: 2; }
  .nav { order: 3; flex-basis: 100%; justify-content: center; padding: 0 0 .75rem; }
}

/* Mobile header: logo left, phone in the middle, hamburger right; the links drop down under the bar */
.nav-toggle { display:none; }
@media (max-width: 900px) {
  .nav-wrap { flex-wrap:wrap; justify-content:space-between; min-height:64px; column-gap:.75rem; }
  .nav-right { display:contents; }
  .brand { order:1; }
  .brand img { width:150px; }
  .header-phone { order:2; font-size:.95rem; }
  .nav-toggle { order:3; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; background:transparent; border:1px solid var(--line); border-radius:10px; color:var(--white); cursor:pointer; }
  .nav-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
  .nav-toggle .bars, .nav-toggle .bars::before, .nav-toggle .bars::after { display:block; width:20px; height:2px; background:currentColor; border-radius:2px; position:relative; transition:transform .2s, top .2s, background .2s; }
  .nav-toggle .bars::before, .nav-toggle .bars::after { content:""; position:absolute; left:0; }
  .nav-toggle .bars::before { top:-6px; }
  .nav-toggle .bars::after { top:6px; }
  .nav-toggle[aria-expanded="true"] .bars { background:transparent; }
  .nav-toggle[aria-expanded="true"] .bars::before { top:0; transform:rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .bars::after { top:0; transform:rotate(-45deg); }
  .nav { order:4; flex-basis:100%; display:none; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; padding:.25rem 0 1rem; border-top:1px solid var(--line); }
  .nav.is-open, html:not(.js) .nav { display:flex; }
  .nav a { padding:.85rem .25rem; font-size:1rem; border-bottom:1px solid var(--line); }
  .nav a.button { margin-top:.9rem; padding:.9rem 1rem; border:1px solid var(--teal); }
}
@media (max-width: 380px) {
  .brand img { width:128px; }
  .header-phone { font-size:.85rem; }
}

