/* ══════════════════════════════════════════════════════════
   SH Electrical — stylesheet
   Palette pulled from the logo:
     dark green  #019950   light green #7ED957
     yellow      #FFCC00   blue        #004AAD
   ══════════════════════════════════════════════════════════ */

:root{
  --green:        #019950;
  --green-deep:   #046B39;
  --green-ink:    #06301C;
  --green-light:  #7ED957;
  --yellow:       #FFCC00;
  --yellow-deep:  #E6B800;
  --blue:         #004AAD;

  --ink:    #12211A;
  --body:   #4C5B53;
  --muted:  #74847B;
  --line:   #E3EAE5;
  --bg:     #FFFFFF;
  --bg-alt: #F4F8F5;

  --wrap: 1180px;
  --r:    14px;
  --r-sm: 9px;

  --shadow-sm: 0 1px 2px rgba(6,48,28,.06), 0 2px 8px rgba(6,48,28,.05);
  --shadow-md: 0 4px 12px rgba(6,48,28,.07), 0 12px 32px rgba(6,48,28,.07);
  --shadow-lg: 0 18px 50px rgba(6,48,28,.16);

  --font: "Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont,
          "Inter", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:104px; }

body{
  margin:0;
  font-family:var(--font);
  font-size:17px;
  line-height:1.65;
  color:var(--body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}

img,svg{ max-width:100%; }
img{ height:auto; display:block; }

h1,h2,h3{
  color:var(--ink);
  line-height:1.12;
  letter-spacing:-.022em;
  margin:0 0 .5em;
  font-weight:800;
}
h1{ font-size:clamp(2.05rem,4.2vw,3.1rem); text-wrap:balance; }
h2{ font-size:clamp(1.75rem,3.4vw,2.6rem); }
h3{ font-size:1.14rem; letter-spacing:-.012em; font-weight:700; }
p{ margin:0 0 1.1em; }

a{ color:var(--green-deep); }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--yellow); color:var(--ink); padding:12px 20px;
  font-weight:700; border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--yellow); outline-offset:2px; border-radius:4px; }

.ico{ width:1.1em; height:1.1em; fill:currentColor; flex:none; }

/* ─── Buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:13px 24px;
  border:2px solid transparent; border-radius:var(--r-sm);
  font-family:inherit; font-size:.97rem; font-weight:700; letter-spacing:.005em;
  text-decoration:none; white-space:nowrap; cursor:pointer;
  transition:transform .15s ease, background-color .18s ease, color .18s ease,
             border-color .18s ease, box-shadow .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn--lg{ padding:16px 30px; font-size:1.03rem; }

.btn--yellow{ background:var(--yellow); color:var(--green-ink); box-shadow:var(--shadow-sm); }
.btn--yellow:hover{ background:var(--yellow-deep); box-shadow:var(--shadow-md); }

.btn--green{ background:var(--green); color:#fff; box-shadow:var(--shadow-sm); }
.btn--green:hover{ background:var(--green-deep); box-shadow:var(--shadow-md); }

.btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.42); }
.btn--ghost:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

.btn--dark{ background:var(--green-ink); color:#fff; }
.btn--dark:hover{ background:#0a4429; }

.btn--outline-dark{ background:transparent; color:var(--green-ink); border-color:rgba(6,48,28,.32); }
.btn--outline-dark:hover{ background:rgba(6,48,28,.07); border-color:var(--green-ink); }

/* ─── Eyebrow ─────────────────────────────────────────────── */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  margin:0 0 .85em;
  font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--green-light);
}
.eyebrow::before{
  content:""; width:26px; height:3px; border-radius:2px; background:var(--yellow);
}
.eyebrow--dark{ color:var(--green-deep); }

/* ─── Top bar ─────────────────────────────────────────────── */
.topbar{ background:var(--green-ink); color:rgba(255,255,255,.82); font-size:.83rem; }
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:40px; flex-wrap:wrap;
}
.topbar__note{ letter-spacing:.02em; }
.topbar__links{ display:flex; align-items:center; gap:14px; }
.topbar a{ color:#fff; text-decoration:none; font-weight:600; }
.topbar a:hover{ color:var(--yellow); }
.topbar__sep{ width:1px; height:14px; background:rgba(255,255,255,.25); }

/* ─── Header ──────────────────────────────────────────────── */
.header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .2s ease;
}
.header.is-stuck{ box-shadow:var(--shadow-md); }
.header__inner{ display:flex; align-items:center; gap:28px; min-height:76px; }

.brand{ flex:none; display:block; }
.brand img{ width:auto; height:46px; }

.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav a{
  position:relative;
  padding:9px 13px; border-radius:var(--r-sm);
  color:var(--ink); text-decoration:none;
  font-size:.94rem; font-weight:600;
  transition:color .15s ease, background-color .15s ease;
}
.nav a::after{
  content:""; position:absolute; left:13px; right:13px; bottom:3px; height:2.5px;
  border-radius:2px; background:var(--yellow);
  transform:scaleX(0); transform-origin:left; transition:transform .2s ease;
}
.nav a:hover{ color:var(--green-deep); }
.nav a.is-active{ color:var(--green-deep); }
.nav a.is-active::after{ transform:scaleX(1); }

.header__cta{ flex:none; }

.burger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:46px; height:42px; margin-left:auto; padding:0 10px;
  background:transparent; border:1px solid var(--line); border-radius:var(--r-sm);
  cursor:pointer;
}
.burger span{
  height:2.5px; border-radius:2px; background:var(--ink);
  transition:transform .22s ease, opacity .18s ease;
}
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ─── Hero ────────────────────────────────────────────────── */
.hero{
  position:relative; overflow:hidden;
  padding:clamp(64px,9vw,116px) 0 clamp(72px,10vw,124px);
  background:
    radial-gradient(900px 520px at 88% -8%, rgba(1,153,80,.55), transparent 62%),
    linear-gradient(155deg, #073a22 0%, var(--green-ink) 58%, #04281a 100%);
  color:#fff;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom, #000, transparent 78%);
  pointer-events:none;
}
.hero__bolt{
  position:absolute; top:-6%; right:2%; width:min(46vw,560px); opacity:.13;
  pointer-events:none;
}
.hero__bolt svg{ width:100%; height:auto; }
.hero__bolt path{ fill:var(--yellow); }

.hero__inner{ position:relative; z-index:1; }
.hero h1{ color:#fff; margin-bottom:.5em; max-width:1000px; }
.hero h1 .hl{ color:var(--green-light); }
.lead{
  max-width:62ch; font-size:clamp(1.04rem,1.7vw,1.2rem);
  color:rgba(255,255,255,.86); margin-bottom:2em;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; }

/* ─── Trust strip ─────────────────────────────────────────── */
.trust{ background:var(--bg); border-bottom:1px solid var(--line); }
.trust__inner{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,5vw,64px);
  align-items:center; padding-block:clamp(36px,5vw,54px);
}
.trust__badge{
  flex:none; padding:18px 22px;
  border:1px solid var(--line); border-radius:var(--r); background:#fff;
  box-shadow:var(--shadow-sm);
}
.trust__badge img{ width:112px; height:auto; }
.trust__items{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,38px); }
.trust__item h3{
  display:flex; align-items:center; gap:.5em;
  margin-bottom:.35em; font-size:1.02rem;
}
.trust__item h3::before{
  content:""; width:9px; height:9px; border-radius:50%;
  background:var(--green); box-shadow:0 0 0 4px rgba(126,217,87,.28);
}
.trust__item p{ margin:0; font-size:.93rem; color:var(--muted); }

/* ─── Sections ────────────────────────────────────────────── */
.section{ padding-block:clamp(64px,8vw,104px); }
.section--alt{ background:var(--bg-alt); }
.section--green{
  background:linear-gradient(140deg, var(--green-deep), var(--green-ink) 78%);
  color:rgba(255,255,255,.88);
}
.section--green h2{ color:#fff; }

.section__head{ max-width:660px; margin-bottom:clamp(38px,5vw,56px); }
.section__lead{ font-size:1.06rem; color:var(--muted); margin:0; }
.section--green .section__lead{ color:rgba(255,255,255,.8); }
.section__foot{
  margin:clamp(30px,4vw,44px) 0 0; text-align:center;
  font-size:.98rem; color:var(--muted);
}
.section__foot.note{ font-size:.87rem; font-style:italic; }

.grid{ display:grid; gap:clamp(18px,2.2vw,26px); }
.grid--3{ grid-template-columns:repeat(3,1fr); }

/* ─── Service cards ───────────────────────────────────────── */
.card{
  position:relative; overflow:hidden;
  padding:30px 28px 28px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card::before{
  content:""; position:absolute; inset:0 0 auto; height:4px;
  background:linear-gradient(90deg, var(--green), var(--green-light), var(--yellow));
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md); border-color:transparent;
}
.card:hover::before{ transform:scaleX(1); }
.card__ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; margin-bottom:18px;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(1,153,80,.12), rgba(126,217,87,.2));
  color:var(--green-deep);
}
.card__ico svg{ width:26px; height:26px; fill:currentColor; }
.card h3{ margin-bottom:.45em; }
.card p{ margin:0; font-size:.95rem; color:var(--muted); }

/* ─── How I work ──────────────────────────────────────────── */
.howiwork{
  display:grid; grid-template-columns:1fr 1.4fr;
  gap:clamp(28px,5vw,72px); align-items:start;
}
.howiwork__head h2{ margin:0; }
.howiwork__text{
  padding-left:clamp(0px,2vw,28px);
  border-left:3px solid var(--green-light);
}
.howiwork__text p{ font-size:1.03rem; }
.howiwork__text p:last-of-type{ margin-bottom:1.8em; }

/* ─── Recent work ─────────────────────────────────────────── */
.work__loading{ grid-column:1/-1; text-align:center; color:var(--muted); }
.work__error{
  grid-column:1/-1; padding:26px; text-align:center;
  border:1px dashed var(--line); border-radius:var(--r);
  color:var(--muted); font-size:.94rem;
}

.post{
  display:flex; flex-direction:column; overflow:hidden;
  padding:0; text-align:left;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  font:inherit; color:inherit; cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.post:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }

.post__media{ position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--bg-alt); }
.post__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.post:hover .post__media img{ transform:scale(1.05); }
.post__tag{
  position:absolute; left:14px; top:14px;
  padding:5px 12px; border-radius:100px;
  background:var(--yellow); color:var(--green-ink);
  font-size:.74rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
}
.post__count{
  position:absolute; right:14px; bottom:14px;
  display:inline-flex; align-items:center; gap:.4em;
  padding:5px 11px; border-radius:100px;
  background:rgba(6,48,28,.72); color:#fff;
  font-size:.76rem; font-weight:700;
  backdrop-filter:blur(4px);
}
.post__count svg{ width:13px; height:13px; fill:currentColor; }

.post__body{ display:flex; flex-direction:column; flex:1; padding:22px 24px 24px; }
.post__meta{
  display:flex; align-items:center; gap:.55em;
  margin:0 0 .6em;
  font-size:.79rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--green-deep);
}
.post__meta span{ color:var(--muted); font-weight:600; }
.post__meta i{ width:3px; height:3px; border-radius:50%; background:var(--line); }
.post h3{ margin-bottom:.45em; }
.post__body p{ flex:1; margin:0 0 1.1em; font-size:.94rem; color:var(--muted); }
.post__more{
  display:inline-flex; align-items:center; gap:.45em;
  font-size:.9rem; font-weight:700; color:var(--green-deep);
}
.post__more svg{ width:15px; height:15px; fill:currentColor; transition:transform .2s ease; }
.post:hover .post__more svg{ transform:translateX(4px); }

/* ─── Areas ───────────────────────────────────────────────── */
.areas{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,64px); align-items:center;
}
.areas__text p{ margin:0; color:rgba(255,255,255,.8); max-width:46ch; }
.areas__list{
  display:flex; flex-wrap:wrap; gap:12px; margin:0; padding:0; list-style:none;
}
.areas__list li{
  display:inline-flex; align-items:baseline; gap:.5em;
  padding:13px 22px; border-radius:100px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  color:#fff; font-weight:700; font-size:1rem;
}
.areas__list li.is-base{
  background:var(--yellow); border-color:var(--yellow); color:var(--green-ink);
}
.areas__list li span{
  font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  opacity:.7;
}

/* ─── Reviews ─────────────────────────────────────────────── */
.review{
  display:flex; flex-direction:column;
  padding:28px 26px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow-sm);
}
.stars{ display:flex; gap:3px; margin-bottom:16px; }
.stars svg{ width:19px; height:19px; fill:#FFB400; }
.review blockquote{
  flex:1; margin:0 0 20px;
  font-size:1rem; color:var(--ink); line-height:1.6;
}
.review footer{
  display:flex; flex-direction:column;
  padding-top:16px; border-top:1px solid var(--line);
}
.review footer strong{ color:var(--ink); font-size:.95rem; }
.review footer span{ font-size:.83rem; color:var(--muted); }

/* ─── CTA band ────────────────────────────────────────────── */
.cta{ background:var(--yellow); }
.cta__inner{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:28px; padding-block:clamp(40px,5vw,58px);
}
.cta h2{ margin-bottom:.25em; color:var(--green-ink); }
.cta p{ margin:0; color:rgba(6,48,28,.78); font-size:1.05rem; }
.cta__buttons{ display:flex; flex-wrap:wrap; gap:14px; }

/* ─── Footer ──────────────────────────────────────────────── */
.footer{ background:var(--green-ink); color:rgba(255,255,255,.72); font-size:.94rem; }
.footer__grid{
  display:grid; grid-template-columns:1.5fr 1.2fr .9fr .9fr;
  gap:clamp(28px,4vw,52px);
  padding-block:clamp(50px,6vw,72px);
}
.footer h3{
  margin-bottom:1em;
  font-size:.82rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-light);
}
.footer p{ font-size:.93rem; line-height:1.6; }
.footer a{ color:#fff; text-decoration:none; }
.footer a:hover{ color:var(--yellow); text-decoration:underline; }

.footer__logo{
  display:inline-block; padding:14px 18px; margin-bottom:20px;
  background:#fff; border-radius:var(--r);
}
.footer__logo img{ width:auto; height:52px; }

.footer__social{ display:flex; gap:10px; margin-top:18px; }
.footer__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  color:#fff;
  transition:background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.footer__social a:hover{
  background:var(--yellow); border-color:var(--yellow); color:var(--green-ink);
  transform:translateY(-2px);
}
.footer__social svg{ width:19px; height:19px; fill:currentColor; }

.footer__list{ list-style:none; margin:0; padding:0; }
.footer__list li{ padding:5px 0; }

.footer__contact{ list-style:none; margin:0; padding:0; }
.footer__contact li{
  display:flex; align-items:flex-start; gap:11px;
  padding:8px 0;
}
.footer__contact .ico{ width:17px; height:17px; margin-top:4px; color:var(--green-light); }

.footer__bar{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
  padding-block:20px;
  border-top:1px solid rgba(255,255,255,.12);
}
.footer__bar p{ margin:0; font-size:.83rem; color:rgba(255,255,255,.5); }

/* ─── 404 ─────────────────────────────────────────────────── */
.notfound{
  position:relative; overflow:hidden;
  display:flex; align-items:center;
  min-height:58vh; padding-block:clamp(56px,8vw,96px);
  background:
    radial-gradient(760px 460px at 82% -10%, rgba(1,153,80,.5), transparent 62%),
    linear-gradient(155deg, #073a22 0%, var(--green-ink) 60%, #04281a 100%);
  color:#fff;
}
.notfound__inner{ position:relative; z-index:1; max-width:620px; }
.notfound__code{
  margin:0 0 .1em;
  font-size:clamp(4.5rem,12vw,7.5rem); font-weight:800; line-height:1;
  letter-spacing:-.04em; color:var(--yellow); opacity:.9;
}
.notfound h1{ color:#fff; font-size:clamp(1.7rem,3.4vw,2.5rem); }
.notfound .lead{ margin-bottom:2em; }
.notfound__cta{ display:flex; flex-wrap:wrap; gap:14px; }
.footer__bar--only{ border-top:0; padding-block:26px; }

/* ─── Legal / text pages ──────────────────────────────────── */
.pagehead{
  padding-block:clamp(44px,6vw,72px);
  background:linear-gradient(150deg, #073a22 0%, var(--green-ink) 70%);
  color:#fff;
}
.pagehead h1{ color:#fff; margin:0; font-size:clamp(1.9rem,3.6vw,2.7rem); }
.pagehead p{ margin:.7em 0 0; color:rgba(255,255,255,.72); font-size:.95rem; }

.legal{ max-width:760px; padding-block:clamp(48px,6vw,80px); }
.legal .notice{
  padding:18px 20px; margin-bottom:2.6em;
  background:#FFF8DC; border:1px solid var(--yellow); border-left-width:5px;
  border-radius:var(--r-sm);
  font-size:.92rem; color:#6B5600;
}
.legal .notice strong{ color:#4A3C00; }
.legal h2{
  margin-top:2em; margin-bottom:.5em;
  font-size:1.28rem; padding-top:1.4em; border-top:1px solid var(--line);
}
.legal h2:first-of-type{ margin-top:0; padding-top:0; border-top:0; }
.legal p, .legal li{ font-size:.98rem; }
.legal ul{ margin:0 0 1.2em; padding-left:1.3em; }
.legal li{ margin-bottom:.45em; }
.legal .updated{ font-size:.88rem; color:var(--muted); font-style:italic; }
.legal .back{
  display:inline-flex; align-items:center; gap:.5em;
  margin-top:2.4em; font-weight:700; text-decoration:none;
}
.legal .back:hover{ text-decoration:underline; }

/* ─── Mobile sticky call bar ──────────────────────────────── */
.callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  display:none; align-items:center; justify-content:center; gap:.6em;
  padding:15px;
  background:var(--yellow); color:var(--green-ink);
  font-weight:800; font-size:1.02rem; text-decoration:none;
  box-shadow:0 -4px 20px rgba(6,48,28,.18);
}
.callbar .ico{ width:19px; height:19px; }

/* ─── Lightbox ────────────────────────────────────────────── */
.lb{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(12px,3vw,40px);
  background:rgba(4,26,15,.9);
  backdrop-filter:blur(6px);
  animation:fade .18s ease;
}
.lb[hidden]{ display:none; }
@keyframes fade{ from{ opacity:0; } }

.lb__panel{
  display:grid; grid-template-columns:1.55fr 1fr;
  width:min(1080px,100%); max-height:100%;
  overflow:hidden;
  background:#fff; border-radius:var(--r); box-shadow:var(--shadow-lg);
  animation:pop .22s cubic-bezier(.2,.8,.3,1);
}
@keyframes pop{ from{ opacity:0; transform:translateY(14px) scale(.985); } }

.lb__stage{ position:relative; background:var(--green-ink); min-height:0; }
.lb__stage img{ width:100%; height:100%; max-height:76vh; object-fit:cover; }

.lb__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  background:rgba(255,255,255,.9); color:var(--green-ink);
  border:0; border-radius:50%;
  font-size:26px; line-height:1; cursor:pointer;
  transition:background-color .15s ease, transform .15s ease;
}
.lb__nav:hover{ background:#fff; transform:translateY(-50%) scale(1.07); }
.lb__nav--prev{ left:14px; }
.lb__nav--next{ right:14px; }
.lb__nav[hidden]{ display:none; }

.lb__count{
  position:absolute; left:50%; bottom:14px; transform:translateX(-50%);
  padding:5px 13px; border-radius:100px;
  background:rgba(6,48,28,.75); color:#fff;
  font-size:.78rem; font-weight:700;
}

.lb__info{ padding:34px 32px; overflow-y:auto; }
.lb__meta{
  margin:0 0 .7em;
  font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green-deep);
}
.lb__info h3{ font-size:1.5rem; margin-bottom:.6em; }
.lb__info p{ font-size:.96rem; color:var(--muted); }
.lb__info p:last-child{ margin-bottom:0; }

.lb__close{
  position:absolute; top:18px; right:20px; z-index:2;
  width:44px; height:44px;
  background:rgba(255,255,255,.14); color:#fff;
  border:1px solid rgba(255,255,255,.28); border-radius:50%;
  font-size:28px; line-height:1; cursor:pointer;
  transition:background-color .15s ease;
}
.lb__close:hover{ background:rgba(255,255,255,.28); }

body.is-locked{ overflow:hidden; }

/* ─── Reveal on scroll ────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(20px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .55s ease, transform .55s cubic-bezier(.2,.8,.3,1);
}

/* ─── Responsive ──────────────────────────────────────────── */
@media (max-width:1000px){
  .grid--3{ grid-template-columns:repeat(2,1fr); }
  .howiwork{ grid-template-columns:1fr; gap:26px; }
  .howiwork__head h2 br{ display:none; }
  .howiwork__text{ padding-left:22px; }
  .areas{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .trust__inner{ grid-template-columns:1fr; justify-items:start; }
  .lb__panel{ grid-template-columns:1fr; }
  .lb__stage img{ max-height:44vh; }
}

@media (max-width:860px){
  html{ scroll-padding-top:80px; }
  .topbar__note{ display:none; }
  .topbar__inner{ justify-content:center; }
  .header__inner{ min-height:66px; gap:14px; }
  .brand img{ height:38px; }
  .header__cta{ display:none; }
  .burger{ display:flex; }

  .nav{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:0;
    margin:0; padding:8px 16px 18px;
    background:#fff; border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-md);
    display:none;
  }
  .nav.is-open{ display:flex; }
  .nav a{ padding:13px 10px; border-bottom:1px solid var(--line); border-radius:0; }
  .nav a:last-child{ border-bottom:0; }
  .nav a::after{ display:none; }

  .hero__cta .btn{ width:100%; }
  .callbar{ display:flex; }
  body{ padding-bottom:58px; }
  .cta__buttons{ width:100%; }
  .cta__buttons .btn{ flex:1; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .grid--3{ grid-template-columns:1fr; }
  .trust__items{ grid-template-columns:1fr; gap:20px; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__bar{ justify-content:center; text-align:center; }
  .lb__info{ padding:24px 22px; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important; transition-duration:.01ms !important;
  }
  .reveal{ opacity:1; transform:none; }
}
