/* AC HEATING LTD — corporate site. Prefix: ach-  */

:root{
  --ach-base:#17181C;
  --ach-base-2:#1F2126;
  --ach-panel:#26282F;
  --ach-accent:#E8552D;
  --ach-accent-soft:#F2764F;
  --ach-card:#F7F3EF;
  --ach-card-ink:#22242A;
  --ach-text:#F2ECE6;
  --ach-muted:#B7B1AA;
  --ach-line:rgba(242,236,230,0.12);
  --ach-shell:1140px;
  --ach-unit:8px;
  --ach-radius:16px;
  --ach-radius-sm:11px;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--ach-base);
  color:var(--ach-text);
  font-family:"Work Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{
  font-family:"Sora","Work Sans",sans-serif;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-0.02em;
}

p{margin:0 0 1em;}
a{color:var(--ach-accent-soft);text-decoration:none;}
a:hover{text-decoration:underline;}

.ach-shell{
  width:100%;
  max-width:var(--ach-shell);
  margin:0 auto;
  padding:0 20px;
}

.ach-skip{
  position:absolute;
  left:-999px;
  top:0;
  background:var(--ach-accent);
  color:#fff;
  padding:10px 16px;
  border-radius:0 0 10px 0;
  z-index:60;
}
.ach-skip:focus{left:0;}

.ach-eyebrow{
  font-family:"Sora",sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:600;
  color:var(--ach-accent);
  margin:0 0 .8em;
}

/* ---------- header ---------- */
.ach-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(23,24,28,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ach-line);
}
.ach-header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:64px;
}
.ach-wordmark{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ach-text);
  font-family:"Sora",sans-serif;
  font-weight:800;
  letter-spacing:.04em;
}
.ach-wordmark:hover{text-decoration:none;}
.ach-wordmark-txt{font-size:1.02rem;}
.ach-flame{
  width:16px;height:22px;
  position:relative;display:inline-block;
  background:linear-gradient(180deg,var(--ach-accent-soft),var(--ach-accent));
  border-radius:50% 50% 50% 50% / 66% 66% 34% 34%;
  transform:rotate(-2deg);
  box-shadow:0 0 14px rgba(232,85,45,.55);
}
.ach-flame::after{
  content:"";position:absolute;inset:5px 4px 3px;
  background:#F7C24B;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
}

.ach-nav{display:flex;align-items:center;gap:26px;}
.ach-nav a{
  color:var(--ach-text);
  font-weight:500;
  font-size:.98rem;
}
.ach-nav a:hover{color:var(--ach-accent-soft);text-decoration:none;}
.ach-nav-cta{
  background:var(--ach-accent);
  color:#fff !important;
  padding:9px 18px;
  border-radius:999px;
  font-weight:600;
}
.ach-nav-cta:hover{background:var(--ach-accent-soft);}

.ach-burger{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:0;
  padding:8px;
  cursor:pointer;
}
.ach-burger span{
  width:24px;height:2px;
  background:var(--ach-text);
  border-radius:2px;
  transition:transform .3s ease,opacity .2s ease;
}
.ach-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ach-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.ach-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- entrance animation (opacity default 1) ---------- */
.ach-rise{
  opacity:1;
  animation:ach-rise-in .7s cubic-bezier(.2,.65,.3,1) both;
}
@keyframes ach-rise-in{
  from{opacity:.35;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}

/* ---------- hero ---------- */
.ach-hero{
  padding:56px 0 64px;
  background:
    radial-gradient(680px 420px at 82% 8%,rgba(232,85,45,.20),transparent 60%),
    linear-gradient(180deg,var(--ach-base),var(--ach-base-2));
}
.ach-hero-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:center;
}
.ach-hero-copy h1{
  font-size:2.05rem;
  font-weight:800;
}
.ach-lede{color:var(--ach-muted);font-size:1.06rem;max-width:56ch;}
.ach-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;}

.ach-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:"Sora",sans-serif;
  font-weight:600;
  font-size:.98rem;
  padding:13px 24px;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .18s ease,background .2s ease,border-color .2s ease;
}
.ach-btn:hover{text-decoration:none;transform:translateY(-2px);}
.ach-btn-primary{background:var(--ach-accent);color:#fff;box-shadow:0 10px 26px rgba(232,85,45,.28);}
.ach-btn-primary:hover{background:var(--ach-accent-soft);}
.ach-btn-ghost{background:transparent;color:var(--ach-text);border-color:var(--ach-line);}
.ach-btn-ghost:hover{border-color:var(--ach-accent);}
.ach-btn-lg{padding:16px 30px;font-size:1.05rem;}

/* ---------- hero visual: dial with flame ---------- */
.ach-hero-visual{display:flex;justify-content:center;}
.ach-dial{
  position:relative;
  width:260px;height:260px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 40%,var(--ach-panel),#131418);
  box-shadow:inset 0 2px 18px rgba(0,0,0,.6),0 18px 50px rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;
}
.ach-dial-ring{
  position:absolute;inset:14px;
  border-radius:50%;
  background:conic-gradient(from -130deg,var(--ach-accent) 0deg,var(--ach-accent-soft) 150deg,rgba(232,85,45,.12) 150deg 360deg);
  -webkit-mask:radial-gradient(circle,transparent 96px,#000 97px);
          mask:radial-gradient(circle,transparent 96px,#000 97px);
  animation:ach-spin 14s linear infinite;
}
@keyframes ach-spin{to{transform:rotate(360deg);}}
.ach-dial-ticks{
  position:absolute;inset:30px;
  border-radius:50%;
  background:
    repeating-conic-gradient(from 0deg,var(--ach-line) 0deg 1deg,transparent 1deg 30deg);
  -webkit-mask:radial-gradient(circle,transparent 82px,#000 83px 90px,transparent 91px);
          mask:radial-gradient(circle,transparent 82px,#000 83px 90px,transparent 91px);
  opacity:.7;
}
.ach-dial-core{
  position:relative;
  width:150px;height:150px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 38%,#2c2f37,#191a1f);
  border:1px solid var(--ach-line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:2;
}
.ach-dial-temp{font-family:"Sora",sans-serif;font-weight:800;font-size:2.6rem;color:var(--ach-text);line-height:1;}
.ach-dial-label{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ach-muted);margin-top:6px;}
.ach-dial-flame{
  position:absolute;
  top:-6px;left:50%;
  transform:translateX(-50%);
  width:30px;height:42px;
  background:linear-gradient(180deg,var(--ach-accent-soft),var(--ach-accent));
  border-radius:50% 50% 50% 50% / 62% 62% 38% 38%;
  box-shadow:0 0 24px rgba(232,85,45,.7);
  z-index:3;
  animation:ach-flicker 2.6s ease-in-out infinite;
}
.ach-dial-flame-inner{
  position:absolute;inset:8px 7px 6px;
  background:#F7C24B;
  border-radius:50% 50% 50% 50% / 58% 58% 42% 42%;
}
@keyframes ach-flicker{
  0%,100%{transform:translateX(-50%) scaleY(1);opacity:1;}
  50%{transform:translateX(-50%) scaleY(1.12);opacity:.86;}
}

/* ---------- section heads ---------- */
.ach-sec-head{max-width:60ch;margin-bottom:36px;}
.ach-sec-head h2{font-size:1.7rem;}

.ach-services{padding:64px 0;background:var(--ach-base);}
.ach-card-row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
.ach-card{
  background:var(--ach-card);
  color:var(--ach-card-ink);
  border-radius:var(--ach-radius);
  padding:28px 26px;
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
.ach-card h3{color:var(--ach-card-ink);font-size:1.22rem;}
.ach-card p{color:#4a4740;margin:0;}
.ach-card-mark{
  display:block;
  width:46px;height:46px;
  border-radius:13px;
  margin-bottom:18px;
  position:relative;
  background:linear-gradient(140deg,var(--ach-accent),var(--ach-accent-soft));
}
.ach-card-mark::after{
  content:"";position:absolute;inset:0;
  background-repeat:no-repeat;background-position:center;
}
.ach-mark-heat::after{
  background-image:radial-gradient(circle at 50% 62%,#fff 3px,transparent 4px),
                   linear-gradient(#fff,#fff);
  -webkit-mask:radial-gradient(circle at 50% 30%,#000 6px,transparent 7px);
  background-size:100% 100%;
  clip-path:polygon(50% 12%,62% 40%,58% 66%,50% 82%,42% 66%,38% 40%);
  background:#fff;
}
.ach-mark-air::after{
  top:14px;left:12px;right:12px;height:3px;
  background:#fff;
  box-shadow:0 8px 0 #fff,0 16px 0 #fff;
  border-radius:3px;
}
.ach-mark-plumb::after{
  top:12px;left:20px;width:6px;height:22px;background:#fff;border-radius:3px;
  box-shadow:14px 8px 0 -1px #fff;
}

/* ---------- coverage ---------- */
.ach-coverage{padding:60px 0;background:linear-gradient(180deg,var(--ach-base-2),var(--ach-base));}
.ach-coverage-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center;
}
.ach-coverage-copy h2{font-size:1.6rem;}
.ach-chips{
  list-style:none;
  margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:10px;
}
.ach-chip{
  background:var(--ach-panel);
  border:1px solid var(--ach-line);
  color:var(--ach-text);
  padding:9px 16px;
  border-radius:999px;
  font-size:.92rem;
  font-weight:500;
}
.ach-chip-home{
  background:var(--ach-accent);
  border-color:var(--ach-accent);
  color:#fff;
}

/* ---------- steps ---------- */
.ach-steps{padding:64px 0;background:var(--ach-base);}
.ach-step-row{
  list-style:none;
  margin:0;padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  counter-reset:none;
}
.ach-step{
  background:var(--ach-base-2);
  border:1px solid var(--ach-line);
  border-radius:var(--ach-radius);
  padding:26px 24px;
  position:relative;
}
.ach-step-num{
  font-family:"Sora",sans-serif;
  font-weight:800;
  font-size:1.6rem;
  color:var(--ach-accent);
  display:block;
  margin-bottom:12px;
}
.ach-step h3{font-size:1.15rem;}
.ach-step p{color:var(--ach-muted);margin:0;}

/* ---------- company ---------- */
.ach-company{padding:64px 0;background:linear-gradient(180deg,var(--ach-base),var(--ach-base-2));}
.ach-company-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:34px;
  align-items:start;
}
.ach-company-intro h2{font-size:1.6rem;}
.ach-facts{
  margin:0;
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  background:var(--ach-panel);
  border:1px solid var(--ach-line);
  border-radius:var(--ach-radius);
  overflow:hidden;
}
.ach-fact{
  padding:16px 22px;
  border-bottom:1px solid var(--ach-line);
}
.ach-fact:last-child{border-bottom:0;}
.ach-fact dt{
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ach-accent-soft);
  margin-bottom:4px;
  font-weight:600;
}
.ach-fact dd{margin:0;font-weight:500;color:var(--ach-text);}

/* ---------- contact ---------- */
.ach-contact{padding:64px 0 72px;background:var(--ach-base-2);}
.ach-contact-card{
  background:
    radial-gradient(520px 300px at 20% 0%,rgba(232,85,45,.22),transparent 60%),
    var(--ach-panel);
  border:1px solid var(--ach-line);
  border-radius:22px;
  padding:44px 34px;
  text-align:center;
}
.ach-contact-card h2{font-size:1.7rem;}
.ach-contact-card .ach-lede{margin-left:auto;margin-right:auto;}

/* ---------- footer ---------- */
.ach-footer{
  background:#111216;
  border-top:1px solid var(--ach-line);
  padding:48px 0 26px;
}
.ach-footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
.ach-footer-mark{font-family:"Sora",sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:.04em;display:inline-block;margin-bottom:10px;}
.ach-footer-brand p{color:var(--ach-muted);max-width:40ch;margin:0;}
.ach-footer-facts p{margin:0 0 4px;color:var(--ach-muted);font-size:.92rem;}
.ach-footer-facts strong{color:var(--ach-text);}
.ach-footer-nav{display:flex;flex-wrap:wrap;gap:8px 20px;}
.ach-footer-nav a{color:var(--ach-text);font-size:.94rem;}
.ach-footer-nav a:hover{color:var(--ach-accent-soft);}
.ach-footer-base{
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--ach-line);
}
.ach-footer-base p{margin:0;color:var(--ach-muted);font-size:.85rem;}

/* ---------- responsive ---------- */
@media (max-width:760px){
  .ach-burger{display:flex;}
  .ach-nav{
    position:absolute;
    top:64px;left:0;right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--ach-base-2);
    border-bottom:1px solid var(--ach-line);
    padding:8px 20px 18px;
    max-height:0;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transition:max-height .32s ease,opacity .25s ease;
  }
  .ach-nav.ach-open{
    max-height:340px;
    opacity:1;
    pointer-events:auto;
  }
  .ach-nav a{padding:12px 4px;border-bottom:1px solid var(--ach-line);}
  .ach-nav-cta{text-align:center;margin-top:12px;border-bottom:0 !important;}
}

@media (min-width:720px){
  .ach-card-row{grid-template-columns:repeat(3,1fr);}
  .ach-step-row{grid-template-columns:repeat(3,1fr);}
}

@media (min-width:900px){
  body{font-size:18px;}
  .ach-hero{padding:76px 0 84px;}
  .ach-hero-grid{grid-template-columns:1.15fr .85fr;gap:48px;}
  .ach-hero-copy h1{font-size:3rem;}
  .ach-sec-head h2,.ach-company-intro h2,.ach-coverage-copy h2,.ach-contact-card h2{font-size:2.1rem;}
  .ach-coverage-grid{grid-template-columns:1.05fr 1fr;}
  .ach-company-grid{grid-template-columns:.95fr 1.05fr;}
  .ach-dial{width:300px;height:300px;}
}

/* ---------- legal / privacy page ---------- */
.ach-legal{padding:44px 0 64px;background:linear-gradient(180deg,var(--ach-base),var(--ach-base-2));}
.ach-legal-shell{max-width:820px;}
.ach-legal-h1{font-size:2rem;font-weight:800;}
.ach-nav-static{position:static;}
.ach-legal-block{
  margin-top:34px;
  padding-top:26px;
  border-top:1px solid var(--ach-line);
}
.ach-legal-block h2{font-size:1.3rem;}
.ach-legal-block p{color:var(--ach-muted);}
.ach-legal-facts{margin-top:18px;}
.ach-legal-back{margin-top:40px;}
.ach-legal-back a{font-family:"Sora",sans-serif;font-weight:600;}

@media (min-width:900px){
  .ach-legal-h1{font-size:2.6rem;}
  .ach-legal-block h2{font-size:1.5rem;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .ach-rise{animation:none;opacity:1;transform:none;}
  .ach-dial-ring{animation:none;}
  .ach-dial-flame{animation:none;}
}
