/* Charleston AI Support — onsite.ai-chs.com
   Hand-written CSS. No framework, no build step, no dependencies.
   Design tokens are identical to ai-chs.com and fluency.ai-chs.com so all
   three properties read as one company. */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --dark:#431E10; --graphite:#5C2B17; --charcoal:#904632;
  --platinum:#F7FBFE; --dust:#DCDBD9; --silver:#CCCAC6;
  --brand:#68B1F4; --brand-soft:rgba(104,177,244,.12); --gold:#EEC015;
  --radius:12px;
  color-scheme:dark;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--dark); color:var(--platinum); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:var(--brand);text-decoration:none;transition:color .2s}
a:hover{color:#9dcbf7}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
::selection{background:rgba(104,177,244,.3)}

.wrap{max-width:960px;margin:0 auto;padding:0 20px}
.wrap-narrow{max-width:720px;margin:0 auto;padding:0 20px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;
  color:var(--brand);font-weight:700;margin-bottom:12px}
h1{font-size:clamp(30px,5vw,50px);line-height:1.1;letter-spacing:-.02em;font-weight:800}
h2{font-size:clamp(22px,3vw,32px);line-height:1.2;letter-spacing:-.01em;font-weight:800}
h3{font-size:18px;line-height:1.35;font-weight:700}
.lede{color:var(--dust);font-size:clamp(17px,2vw,21px);line-height:1.6}
.muted{color:var(--dust)}
.small{font-size:14px}
.accent{color:var(--brand)}

/* header / footer */
.site-header{position:sticky;top:0;z-index:50;background:rgba(67,30,16,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--charcoal)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:12px 20px;max-width:960px;margin:0 auto}
.brand{font-weight:800;color:var(--platinum);font-size:17px;letter-spacing:-.01em;white-space:nowrap}
.brand:hover{color:var(--platinum)}
.brand .brand-tag{color:var(--brand)}
.site-header nav{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:600}
.site-header nav a{color:var(--dust)}
.site-header nav a:hover{color:var(--brand)}
.nav-book{padding:9px 16px;font-size:14px}
.site-footer{border-top:1px solid var(--charcoal);margin-top:72px;padding:36px 0 56px;
  color:var(--dust);font-size:14px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:18px;font-weight:600}
.site-footer p{margin-bottom:12px}
.foot-cols{display:grid;gap:22px;margin-bottom:20px}
@media(min-width:720px){.foot-cols{grid-template-columns:repeat(3,1fr)}}
.foot-cols h3{font-size:13px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--brand);margin-bottom:8px}
.foot-cols p{margin:0;line-height:1.6}
@media(max-width:700px){
  .site-header .bar{flex-wrap:wrap;gap:8px;padding:10px 16px}
  .brand{font-size:16px}
  .site-header nav{gap:14px;font-size:13px;width:100%;justify-content:space-between;order:2}
  .nav-book{padding:7px 14px;font-size:13px}
}

/* buttons */
.btn{display:inline-block;padding:15px 26px;border-radius:10px;font-weight:800;
  font-size:16px;border:1px solid transparent;cursor:pointer;transition:opacity .2s,background .2s}
.btn-primary{background:var(--brand);color:var(--dark)}
.btn-primary:hover{opacity:.9;color:var(--dark)}
.btn-ghost{border-color:var(--charcoal);color:var(--platinum)}
.btn-ghost:hover{border-color:var(--brand);color:var(--platinum)}
.btn-lg{padding:18px 34px;font-size:18px}
.btn-block{display:block;width:100%;text-align:center}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* hero */
.hero{position:relative;padding:64px 0 40px;text-align:center;overflow:hidden}
.hero::before{content:"";position:absolute;top:-180px;right:-180px;width:460px;height:460px;
  border-radius:50%;background:rgba(104,177,244,.07);filter:blur(80px);pointer-events:none}
.hero .btn-row{justify-content:center}
.hero .lede{margin:22px auto 0;max-width:660px}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px}
.pill{font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;
  background:var(--brand-soft);color:var(--brand);border:1px solid rgba(104,177,244,.25)}

section{padding:12px 0}
.section-pad{padding:44px 0}
.note{background:var(--brand-soft);border:1px solid rgba(104,177,244,.25);
  border-radius:var(--radius);padding:16px 18px;color:var(--dust);font-size:15px}
.note strong{color:var(--platinum)}
.grid{display:grid;gap:16px}
@media(min-width:700px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}
.card{border:1px solid var(--charcoal);border-radius:var(--radius);padding:22px;
  background:rgba(92,43,23,.25);transition:border-color .2s,background .2s}
.card:hover{border-color:var(--brand);background:rgba(104,177,244,.05)}
.card h3{margin-bottom:8px}
.card p{color:var(--dust);font-size:15px}

/* brands serviced */
.brands{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;list-style:none;padding:0}
.brands li{border:1px solid var(--charcoal);border-radius:999px;padding:9px 18px;
  background:rgba(0,0,0,.18);font-size:15px;font-weight:700;color:var(--platinum)}

/* pricing */
.prices{display:grid;gap:18px;margin-top:28px;align-items:start}
@media(min-width:760px){.prices{grid-template-columns:1fr 1fr}}
.price{display:flex;flex-direction:column;border:1px solid var(--charcoal);
  border-radius:16px;padding:26px 24px 24px;background:rgba(92,43,23,.25)}
.price.is-lead{border-color:var(--brand);background:rgba(104,177,244,.07)}
.price h3{font-size:15px;text-transform:uppercase;letter-spacing:.09em;color:var(--dust);
  font-weight:800;margin-bottom:10px}
.price .amount{display:flex;align-items:baseline;gap:8px;margin-bottom:18px}
.price .amount strong{font-size:clamp(40px,7vw,56px);font-weight:800;line-height:1;
  color:var(--brand);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.price .amount span{font-size:15px;font-weight:700;color:var(--dust)}
.price ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.price ul li{position:relative;padding-left:26px;font-size:15px;color:var(--dust);line-height:1.55}
.price ul li::before{content:"";position:absolute;left:4px;top:8px;width:8px;height:8px;
  border-radius:50%;background:var(--brand)}
.price .price-foot{margin-top:auto;padding-top:22px}
.price .price-foot .btn{width:100%;text-align:center}

/* service area */
.area{border:1px dashed rgba(104,177,244,.45);border-radius:var(--radius);
  padding:22px 22px;background:rgba(0,0,0,.18);margin-top:22px}
.area strong{color:var(--platinum)}
.area p{color:var(--dust);font-size:15px}
/* the list under the service map — same source array as the map's dots */
.towns{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;list-style:none;padding:0}
.towns li{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;
  padding:5px 12px;border-radius:999px;background:var(--brand-soft);
  color:var(--brand);border:1px solid rgba(104,177,244,.25)}
.towns li.is-base{background:rgba(238,192,21,.14);color:var(--gold);
  border-color:rgba(238,192,21,.4)}
.towns li .tag{font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;opacity:.75}

/* the service-area map. Inline SVG: no requests, no JavaScript, no Google. */
.map-wrap{margin-top:20px;display:flex;justify-content:center}
.svc-map{width:100%;max-width:620px;height:auto;display:block}
.svc-map .mp-area{fill:rgba(104,177,244,.06);stroke:var(--brand);stroke-width:2.5}
.svc-map .mp-ring{fill:none;stroke:rgba(104,177,244,.3);stroke-width:1.5;stroke-dasharray:5 8}
.svc-map .mp-scale{fill:var(--brand);font-size:17px;font-weight:700;opacity:.7;
  font-family:inherit}
.svc-map .mp-sea{fill:var(--dust);font-size:16px;font-weight:700;opacity:.35;
  letter-spacing:.15em;font-family:inherit}
.svc-map .mp-compass path{fill:rgba(220,219,217,.45)}
.svc-map .mp-compass text{fill:var(--dust);font-size:16px;font-weight:800;opacity:.55;
  font-family:inherit}
.svc-map .mp-leader{stroke:rgba(104,177,244,.38);stroke-width:1.5}
.svc-map .mp-anchor{fill:rgba(104,177,244,.55)}
.svc-map .mp-town circle{fill:var(--brand)}
.svc-map .mp-centre{fill:none;stroke:var(--brand);stroke-width:2}
.svc-map .mp-town text{fill:var(--platinum);font-size:20px;font-weight:700;
  font-family:inherit}
.svc-map .mp-base .mp-leader{stroke:rgba(238,192,21,.6)}
.svc-map .mp-base circle{fill:var(--gold)}
.svc-map .mp-base .mp-anchor{fill:rgba(238,192,21,.7)}
.svc-map .mp-base text{fill:var(--gold);font-size:20px;font-weight:800;font-family:inherit}
.svc-map .mp-sub{font-size:15px;font-weight:700;opacity:.8}

/* form */
form label{display:block;font-size:14px;font-weight:700;margin-bottom:6px;color:var(--platinum)}
form .field{margin-bottom:16px}
form .req{color:var(--brand)}
input,textarea,select{width:100%;padding:13px 14px;font:inherit;font-size:16px;
  background:rgba(0,0,0,.22);border:1px solid var(--charcoal);border-radius:9px;
  color:var(--platinum)}
input:focus,textarea:focus,select:focus{border-color:var(--brand);outline:none}
input::placeholder,textarea::placeholder{color:#9b8f88}
textarea{min-height:110px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-card{border:1px solid var(--charcoal);border-radius:16px;padding:26px 24px;
  background:rgba(92,43,23,.25);margin-top:26px}
@media(min-width:700px){.form-card{padding:32px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}}
.radio-row{display:flex;flex-wrap:wrap;gap:10px}
.radio-row label{display:flex;align-items:center;gap:9px;border:1px solid var(--charcoal);
  border-radius:11px;padding:12px 16px;background:rgba(0,0,0,.18);cursor:pointer;
  margin-bottom:0;transition:border-color .2s,background .2s}
.radio-row label:hover{border-color:var(--brand)}
.radio-row input{width:auto;flex:0 0 auto;accent-color:var(--brand)}
.radio-row label:has(input:checked){border-color:var(--brand);background:rgba(104,177,244,.09)}
.direct{color:var(--dust);font-size:15px;margin-top:14px}
.direct a{font-weight:700}

/* success page */
.ok-box{border:1px solid var(--brand);background:var(--brand-soft);
  border-radius:var(--radius);padding:34px 28px;text-align:center;margin-top:28px}
.ok-box h1{color:var(--brand);margin-bottom:12px;font-size:clamp(26px,4vw,38px)}
.ok-box p{color:var(--dust);margin-bottom:14px}
.ok-box .btn-row{justify-content:center;margin-top:22px}

.cta-block{margin:44px 0 0;padding:30px 26px;border:1px solid var(--charcoal);
  border-radius:var(--radius);background:rgba(104,177,244,.06);text-align:center}
.cta-block h2{margin-bottom:8px}
.cta-block p{color:var(--dust);margin-bottom:18px}
[hidden]{display:none!important}

@media(min-width:640px){
  .hero{padding:88px 0 52px}
  .section-pad{padding:56px 0}
  .wrap,.wrap-narrow{padding:0 32px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
