:root{
  --bg:#f6f8fc;
  --bg2:#eef3fa;
  --card:#ffffff;
  --text:#0b2a57;
  --muted:#50637d;
  --line:rgba(11,42,87,.14);
  --accent:#ff6a00;
  --accent2:#0b2a57;
  --danger:#ff4d4d;
  --shadow:0 18px 55px rgba(11,42,87,.14);
  --radius:18px;
  --radiusSm:12px;
  --container:1350px;
  --panel:var(--container);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:16px/1.45 "TASA Explorer", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  position:relative;
  background:linear-gradient(180deg, var(--bg), var(--bg2));
  color:var(--text);
}
body.noScroll{overflow:hidden}
html::before,
body::before{
  content:"";
  position:fixed;
  left:0; right:0; top:0;
  height:100vh;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0;
  transition: opacity 900ms ease;
  will-change: opacity;
  pointer-events:none;
}
html::before{
  background-image: var(--hero-bg-a, var(--hero-bg, url("hero/hero.jpg")));
  opacity: var(--hero-bg-a-opacity, 1);
  z-index:-3;
}
body::before{
  background-image: var(--hero-bg-b, var(--hero-bg, url("hero/hero.jpg")));
  opacity: var(--hero-bg-b-opacity, 0);
  z-index:-2;
}
body::after{
  content:"";
  position:fixed;
  left:0; right:0; top:0;
  height:100vh;
  background:
    radial-gradient(1100px 640px at 15% 10%, rgba(11,42,87,.10), transparent 62%),
    radial-gradient(1000px 640px at 80% 12%, rgba(255,106,0,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(246,248,252,.15) 45%, rgba(246,248,252,.88) 92%, rgba(246,248,252,1) 100%);
  z-index:-1;
  pointer-events:none;
}

.material-symbols-outlined{
  font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 20;
  font-size:20px;
  line-height:1;
}
a{
  color:inherit;
  text-decoration:none;
  transition: color 160ms ease, opacity 160ms ease;
}
a:not(.btn):not(.btn--primary):not(.pill):not(.iconBtn):not(.phoneBtn):hover{color:var(--accent)}
a:focus-visible{
  outline:3px solid rgba(255,106,0,.35);
  outline-offset:3px;
  border-radius:10px;
}
/* Don't recolor links that are already styled as orange/solid UI controls. */
a.btn:hover,
a.btn:focus-visible,
a.btn--primary:hover,
a.btn--primary:focus-visible,
a.iconBtn:hover,
a.iconBtn:focus-visible{
  color:inherit;
}
a.btn--primary:hover,
a.btn--primary:focus-visible{
  opacity:.95;
}
.container{width:min(var(--container), calc(100% - 40px)); margin:0 auto}
.muted{color:var(--muted)}
.sep{opacity:.5; padding:0 8px}

.header{
  position:sticky; top:0; z-index:20;
  backdrop-filter: blur(10px);
  background:rgba(246,248,252,.78);
  border-bottom:1px solid var(--line);
}
.header--page{position:static}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; padding:14px 0;
}
.burgerBtn{
  display:none;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.82);
  color:var(--text);
  cursor:pointer;
}
.burgerBtn__bars{
  display:block;
  width:18px;
  height:2px;
  margin:0 auto;
  position:relative;
  background:rgba(11,42,87,.78);
  border-radius:999px;
}
.burgerBtn__bars::before,
.burgerBtn__bars::after,
.burgerBtn__bars{
  background:rgba(11,42,87,.78);
}
.burgerBtn__bars::before,
.burgerBtn__bars::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:rgba(11,42,87,.78);
  border-radius:999px;
}
.burgerBtn__bars::before{top:-6px}
.burgerBtn__bars::after{top:6px}
.burgerBtn:hover{
  border-color:rgba(255,106,0,.40);
  background:rgba(255,106,0,.10);
}

.mobileNav{
  position:fixed;
  inset:0;
  z-index:60;
}
.mobileNav__overlay{
  position:absolute;
  inset:0;
  background:rgba(11,42,87,.42);
}
.mobileNav__panel{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(420px, 92vw);
  background:rgba(255,255,255,.98);
  border-left:1px solid rgba(11,42,87,.12);
  box-shadow:var(--shadow);
  padding:16px 16px 18px;
  overflow:auto;
}
.mobileNav__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(11,42,87,.10);
}
.mobileNav__brand img{width:120px; height:auto; display:block}
.mobileNav__close{
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(246,248,252,.95);
  cursor:pointer;
  font-size:26px;
  line-height:1;
  color:rgba(11,42,87,.80);
}
.mobileNav__section{
  padding:14px 0;
  border-bottom:1px solid rgba(11,42,87,.10);
}
.mobileNav__section:last-child{border-bottom:0}
.mobileNav__kicker{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(11,42,87,.55);
  margin:0 0 10px;
}
.mobileNav__link{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 8px;
  border-radius:12px;
  color:rgba(11,42,87,.86);
  font-weight:900;
}
.mobileNav__link:hover{
  background:rgba(255,106,0,.10);
  color:rgba(11,42,87,.92);
}
.mobileNav__link .material-symbols-outlined{font-size:20px; color:rgba(11,42,87,.62)}
.mobileNav__link:hover .material-symbols-outlined{color:var(--accent)}
.brand{display:flex; flex-direction:column; line-height:1}
.brand__mark{font-weight:900; letter-spacing:.12em; font-size:18px; color:var(--accent)}
.brand__logo{
  display:block;
  width:170px;
  height:auto;
  filter: drop-shadow(0 6px 12px rgba(255,255,255,.65));
}
.brand__logo--small{width:104px}
.brand__sub{font-size:12px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; margin-top:4px}
.brand--small .brand__mark{font-size:16px}

.nav{display:flex; gap:18px; align-items:center}
.nav a{color:rgba(11,42,87,.75); font-weight:800; font-size:14px}
.nav a{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.nav .material-symbols-outlined{
  font-size:18px;
  color:rgba(11,42,87,.62);
}
.navLabel--short{display:none}
.navLabel--long{display:inline}
.header .nav a{white-space:nowrap}
.header .nav a .navLabel{line-height:1}
.nav a:hover{color:var(--accent)}
.nav a:hover .material-symbols-outlined{color:var(--accent)}
.nav a[aria-current="page"]{color:var(--text)}
.header__contacts{
  display:flex; gap:0; align-items:center;
  color:rgba(11,42,87,.80); font-size:13px; white-space:nowrap;
}
.header__contacts a{color:rgba(11,42,87,.82)}
.header__contacts a{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.header__contacts .material-symbols-outlined{
  font-size:18px;
  color:rgba(11,42,87,.62);
}
.icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.icon svg{
  width:18px;
  height:18px;
}
.icon--wa{color:rgba(11,42,87,.62)}
.icon--wa svg{
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.header__contacts a:hover .icon--wa{color:#25D366}
.contactCombo{display:inline-flex; align-items:center; gap:8px}
.contactIcon{display:inline-flex; align-items:center}
.contactNumber{color:rgba(11,42,87,.82)}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.65);
  color:var(--text);
  font-weight:700;
  cursor:pointer;
}
.btn--sm{padding:8px 12px; font-size:13px}
.btn--primary{background:linear-gradient(180deg, #ff7a1b, var(--accent)); border-color:rgba(255,106,0,.55); color:#ffffff}
.btn--ghost{background:rgba(255,255,255,.85)}
.btn--ghost:hover{border-color:rgba(255,106,0,.40)}
.btn--danger{background:rgba(255,77,77,.08); border-color:rgba(255,77,77,.35); color:#8b1515}
.iconBtn{
  width:42px; height:42px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line);
  background:rgba(255,255,255,.82);
  color:var(--text);
  cursor:pointer;
  font-size:22px;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
}
.iconBtn:hover{
  background:rgba(255,106,0,.12);
  border-color:rgba(255,106,0,.40);
  color:var(--accent);
}
.iconBtn--hero{width:40px;height:40px;background:rgba(255,255,255,.88)}

.hero{min-height:calc(100vh - 66px); display:flex}
.hero--single{display:block; min-height:unset}
.heroSlider{
  position:relative;
  width:100%;
  overflow:hidden;
}
.heroSlider__track{
  display:flex;
  width:100%;
  height:calc(100vh - 66px);
  will-change:transform;
}
.heroSlide{
  min-width:100%;
  height:auto;
  display:flex;
  align-items:center;
  padding:40px 0;
}
.hero--single .heroSlide{
  min-height:auto;
  padding:40px 0;
  align-items:flex-start;
}
.heroSlide--offer{
  background:transparent;
}
.heroSlide--projects{
  background:
    linear-gradient(180deg, rgba(246,248,252,.86), rgba(246,248,252,.96)),
    radial-gradient(900px 520px at 22% 30%, rgba(11,42,87,.12), transparent 60%),
    radial-gradient(900px 520px at 82% 65%, rgba(255,106,0,.10), transparent 60%);
}
.heroSlide__inner{width:100%}
.heroSlider__controls{
  position:absolute;
  left:0; right:0; bottom:18px;
  display:flex; align-items:center; justify-content:center;
  gap:14px;
  pointer-events:none;
}
.heroSlider__controls > *{pointer-events:auto}

.dots{display:flex; gap:8px; align-items:center; justify-content:center}
.dots button{
  width:10px; height:10px; border-radius:999px;
  border:1px solid rgba(11,42,87,.25);
  background:rgba(11,42,87,.10);
  cursor:pointer;
  padding:0;
}
.dots button[aria-current="true"]{
  width:22px;
  background:var(--accent);
  border-color:transparent;
}

.projectError{
  border-radius:18px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 30px rgba(11,42,87,.10);
  padding:16px 18px;
  color:rgba(11,42,87,.86);
}
.projectError__title{font-weight:950; font-size:18px; letter-spacing:-.01em}
.projectError__body{margin-top:6px; font-weight:700; color:rgba(11,42,87,.80)}
.projectError__hint{margin-top:8px; font-size:13px; color:rgba(11,42,87,.60); font-weight:700}
.projectError code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-weight:800;
}

.heroHeadline{
  font-size:clamp(40px, 4vw, 80px);
  line-height:.92;
  margin:0 0 14px;
  letter-spacing:-.03em;
}
.heroHeadline{color:#fff}
.heroHeadline__line{display:block}
.offer__sub{
  margin:6px 0 0;
  color:var(--accent);
  font-size:22px;
  font-weight:900;
  max-width:62ch;
}
.offer__cta{margin-top:22px; display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-start}
.offer__meta{margin-top:28px; display:flex; gap:12px; flex-wrap:wrap}
.metaCard{
  border:1px solid var(--line);
  background:rgba(255,255,255,.82);
  border-radius:var(--radiusSm);
  padding:14px 16px;
  min-width:260px;
}
.metaCard__k{color:var(--muted); font-size:12px; letter-spacing:.1em; text-transform:uppercase}
.metaCard__v{margin-top:6px; font-weight:700}

.heroOffer{
  position:relative;
  padding-top:0;
  text-align:left;
  margin-top:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  width:100%;
  padding:22px 22px 22px 1px;
}
.heroOffer::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  transform:translateX(-50%);
  width:110%;
  height:100%;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(11,42,87,.62);
  box-shadow:var(--shadow);
  backdrop-filter: blur(6px);
  z-index:0;
}
.heroOffer > *{position:relative; z-index:1}
.heroOffer__panel{
  position:relative;
  z-index:1;
  padding:0;
  width:100%;
  margin:0;
  border:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  clip-path:none;
}

.heroOffer__kicker{display:none}
.heroOffer__kicker{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(11,42,87,.55);
  font-weight:900;
  margin-bottom:8px;
}
.heroOffer__bar{
  position:relative;
  z-index:1;
  margin-top:18px;
  display:flex;
  gap:10px;
  align-items:stretch;
  flex-wrap:wrap;
  justify-content:flex-start;
}
.heroBadge{display:none}
.heroCall{
  border-radius:16px;
  border:1px solid rgba(255,106,0,.35);
  background:linear-gradient(180deg, rgba(255,122,27,.92), rgba(255,106,0,.92));
  color:#fff;
  padding:10px 14px;
  min-width:240px;
}
.heroCall__k{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.9;
  font-weight:900;
}
.heroCall__v{margin-top:4px; font-weight:900}

.projectsOverlap{
  position:relative;
  z-index:6;
  margin-top:0;
  padding-bottom:5px;
}
.projectsOverlap .projectsHero{
  border-radius:24px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
  padding:22px 22px 18px;
  max-width:var(--panel);
  margin:0 auto;
  transform:none;
}

.pillStrip{
  position:relative;
  z-index:7;
  margin-top:18px;
  margin-bottom:0;
}
.pillStrip__inner{
  max-width:var(--panel);
  margin:0;
  display:flex;
  justify-content:flex-start;
  gap:12px;
  flex-wrap:wrap;
  padding:0;
  border-radius:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid rgba(255,106,0,.85);
  background:rgba(255,255,255,.92);
  color:var(--accent);
  font-weight:900;
  white-space:nowrap;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
}
.pill:hover{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
  opacity:1;
}
.pill .material-symbols-outlined{color:var(--accent)}
.pill:hover .material-symbols-outlined{color:#fff}
.pillStrip--inHero{width:100%}
.projectsOverlap .projectsHero__head{
  align-items:center;
}
.projectsOverlap .projectsHero__head > div:first-child{
  text-align:left;
  width:auto;
}
.projectsOverlap .projectsHero__nav{
  justify-content:flex-end;
}
.projectsOverlap .projectsHero__head{
  flex-wrap:nowrap;
  justify-content:space-between;
}
.projectsOverlap .projectsSlider{
  margin-top:18px;
}

/* trustStrip removed */

.split{
  display:grid;
  grid-template-columns: 1.15fr 1fr;
  gap:22px;
  align-items:start;
}
.split__panel{
  position:relative;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.split__panel::after{
  content:"";
  position:absolute;
  right:-60px; top:-60px;
  width:220px; height:220px;
  background:radial-gradient(circle at 30% 30%, rgba(255,106,0,.22), transparent 60%);
  pointer-events:none;
}
.split__kicker{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(11,42,87,.55);
  font-weight:900;
}
.split__actions{margin-top:14px; display:flex; gap:10px; flex-wrap:wrap}
.featureGrid{display:grid; gap:12px}
.featureCard{
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  border-radius:var(--radius);
  padding:16px 16px 14px;
}
.featureIcon{
  width:44px; height:44px;
  border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,106,0,.10);
  border:2px solid rgba(255,106,0,.35);
  color:rgba(11,42,87,.90);
  font-weight:900;
}
.featureCard h3{margin:12px 0 6px; font-size:16px}
.featureCard p{margin:0}

.aboutBox{
  border-radius:26px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 40px rgba(11,42,87,.10);
  padding:22px 22px 28px;
  position:relative;
  overflow:hidden;
}
.aboutBox::before{
  content:"";
  position:absolute;
  left:22px;
  top:22px;
  width:6px;
  height:44px;
  border-radius:999px;
  background:linear-gradient(180deg, #ff7a1b, var(--accent));
}
.aboutTop{
  padding-left:18px;
  padding-bottom:8px;
}
.aboutBox__kicker{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(11,42,87,.55);
}
.aboutTop h2{
  margin:10px 0 10px;
  font-size:44px;
  letter-spacing:-.03em;
}
.aboutDivider{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(11,42,87,.14), transparent);
  margin:18px 0 18px;
}
.aboutContent{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:34px;
  align-items:start;
}
.aboutLeft{margin-left:45px}
.aboutLeft{
  width:calc(100% - 140px);
}
.aboutLeft p{margin:0}
.aboutLeft p.muted{margin-top:18px}
.aboutRight{
  width:auto;
  justify-self:stretch;
  width:100%;
}
.aboutRight p{margin:0 0 14px}
.aboutLead{
  margin:0 0 34px;
  font-weight:900;
  font-size:18px;
  color:rgba(11,42,87,.86);
  max-width:96ch;
}
.aboutLeadDivider{
  height:1px;
  width:min(520px, 100%);
  background:linear-gradient(90deg, rgba(11,42,87,.16), transparent);
  margin:-18px 0 18px;
}
.aboutKeypoints{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.aboutKeypoints li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(11,42,87,.72);
  font-weight:800;
}
.aboutKeypoints li::before{
  content:"";
  width:10px;
  height:10px;
  margin-top:6px;
  border-radius:999px;
  background:linear-gradient(180deg, #ff7a1b, var(--accent));
  flex:0 0 auto;
}
.aboutPillars{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.aboutPillar{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(246,248,252,.95);
  width:447px;
}
.aboutPillar .material-symbols-outlined{
  font-size:22px;
  color:rgba(255,106,0,.95);
  margin-top:2px;
}
.aboutPillar__t{font-weight:900; color:rgba(11,42,87,.86)}
.aboutPillar__d{margin-top:2px; color:rgba(11,42,87,.62); font-weight:700; font-size:13px}
.aboutGrid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:clamp(18px, 4vw, 70px);
  margin-top:18px;
  margin-bottom:10px;
}
.aboutItem{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:14px;
}
.aboutCircle{
  width:160px;
  height:160px;
  border-radius:999px;
  border:6px solid var(--accent);
  padding:2px;
  background:#fff;
  box-shadow:0 10px 30px rgba(11,42,87,.10);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.aboutCircle img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:999px;
  display:block;
}
.aboutText{
  font-weight:900;
  color:rgba(11,42,87,.86);
  letter-spacing:-.01em;
  line-height:1.2;
  max-width:22ch;
}

.ctaBand{
  padding:11px 0 4px;
}
.ctaBand__inner{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  border-radius:26px;
  border:1px solid rgba(11,42,87,.14);
  box-shadow:0 14px 46px rgba(11,42,87,.12);
  overflow:hidden;
  padding:24px 28px;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.92), rgba(246,248,252,.86)),
    var(--hero-bg, url("hero/hero.jpg"));
  background-size: cover;
  background-position: center;
}
.ctaBand__inner::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 360px at 12% 45%, rgba(11,42,87,.08), transparent 60%),
    radial-gradient(900px 360px at 92% 25%, rgba(255,106,0,.12), transparent 62%),
    linear-gradient(90deg, rgba(255,255,255,.60) 0%, rgba(255,255,255,.38) 40%, rgba(255,255,255,.20) 100%);
  pointer-events:none;
  z-index:0;
}
.ctaBand__inner::after{
  content:"";
  position:absolute;
  right:-140px;
  top:-120px;
  width:520px;
  height:360px;
  background:
    radial-gradient(circle at 35% 45%, rgba(255,106,0,.22), transparent 64%),
    radial-gradient(circle at 60% 30%, rgba(11,42,87,.10), transparent 62%);
  pointer-events:none;
  z-index:0;
}
.ctaBand__left,
.ctaBand__phone{
  position:relative;
  z-index:1;
}
.ctaBand__title{
  font-size:34px;
  line-height:1.05;
  letter-spacing:-.02em;
  font-weight:900;
  color:rgba(11,42,87,.92);
}
.ctaBand__accent{color:var(--accent)}
.ctaBand__sub{
  margin-top:10px;
  font-weight:900;
  color:rgba(11,42,87,.70);
}
.ctaBand__phone{
  font-size:40px;
  line-height:1;
  font-weight:900;
  color:var(--accent);
  letter-spacing:-.02em;
  white-space:nowrap;
  text-shadow:0 10px 28px rgba(11,42,87,.18);
}
.ctaBand__phone:hover{opacity:.95}

.servicesGrid{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
}
.svcCard{
  border:1px solid rgba(11,42,87,.14);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
}
.svcPhoto{
  height:190px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.svcPhoto{
  background-image:
    linear-gradient(180deg, rgba(11,42,87,.06), rgba(11,42,87,.10)),
    radial-gradient(700px 300px at 20% 40%, rgba(255,255,255,.65), transparent 60%),
    linear-gradient(135deg, rgba(11,42,87,.20), rgba(255,106,0,.10));
}
.svcBody{padding:16px}
.svcIcon{
  width:52px;
  height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--accent);
  border:2px solid rgba(255,255,255,.95);
  color:rgba(11,42,87,.90);
  margin-top:-34px;
}
.svcIcon .material-symbols-outlined{font-size:26px; color:#fff}
.svcCard h3{margin:12px 0 8px; font-size:18px}
.svcCard p{margin:0}

.svcSections{margin-top:10px; display:grid; gap:12px}
.svcSection{
  border-top:1px solid rgba(11,42,87,.10);
  padding-top:10px;
}
.svcSection:first-child{border-top:0; padding-top:0}
.svcSection__title{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  color:rgba(11,42,87,.78);
}
.svcList{
  margin:8px 0 0;
  padding-left:18px;
  color:rgba(11,42,87,.72);
}
.svcList li{margin:8px 0}

.projectsHero__head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:18px;
}
.projectsHero__head h2{margin:0; font-size:28px}
.projectsHero__title{
  font-size:44px;
  letter-spacing:-.03em;
  line-height:1.05;
  margin:10px 0 10px;
}
.projectsHero__head p{margin:8px 0 0}
.projectsHero__head p.muted{
  line-height:1.45;
}
.projectsHero__head > div:first-child{
  position:relative;
  padding-left:16px;
}
.projectsHero__head > div:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:2px;
  width:6px;
  height:40px;
  border-radius:999px;
  background:linear-gradient(180deg, #ff7a1b, var(--accent));
}
.projectsHero__kicker{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(11,42,87,.55);
  margin:0 0 8px;
}
.projectsHero__nav{display:flex; gap:10px}

.projectsSlider{
  margin-top:24px;
}
.projectsSlider__viewport{
  overflow:hidden;
  border-radius:var(--radius);
}
.projectsSlider,
.projectCard{
  -webkit-user-select:text;
  user-select:text;
}
.projectsSlider__track{
  display:flex;
  will-change:transform;
}

.projectCard{
  min-width:100%;
  height:min(52vh, 520px);
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:18px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.projectCard__cover{
  position:relative;
  background:
    linear-gradient(135deg, rgba(11,42,87,.16), rgba(255,106,0,.10)),
    radial-gradient(700px 380px at 20% 40%, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(700px 380px at 85% 65%, rgba(11,42,87,.08), transparent 62%);
}
.projectCard__cover img{width:100%; height:100%; object-fit:cover; display:block}
.projectCard__tag{
  position:absolute; left:16px; top:16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(11,42,87,.16);
  padding:8px 12px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
}
.projectCard__body{padding:18px 18px 18px 0; display:flex; flex-direction:column; justify-content:space-between}
.projectCard__title{margin:0; font-size:22px; line-height:1.15}
.projectCard__line{margin:8px 0 0; color:rgba(11,42,87,.72)}
.projectCard__what{
  margin-top:12px;
}
.projectCard__whatTitle{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(11,42,87,.55);
  font-weight:900;
  margin-bottom:8px;
}
.whatPills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.whatPill{
  display:inline-flex;
  align-items:center;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(246,248,252,.95);
  color:rgba(11,42,87,.72);
  font-weight:800;
  font-size:13px;
  line-height:1;
}
.projectCard__summary{
  margin:10px 0 0;
  color:rgba(11,42,87,.68);
  font-weight:700;
  font-size:14px;
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.moreLink{
  margin-left:8px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--accent);
  font-weight:900;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.moreLink:hover{opacity:.9}
.metrics{
  margin-top:14px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
}
.metric{
  border:1px solid var(--line);
  border-radius:var(--radiusSm);
  background:rgba(246,248,252,.95);
  padding:10px 12px;
}
.metric__k{color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase}
.metric__v{margin-top:6px; font-weight:800}
.projectCard__actions{display:flex; gap:10px; align-items:center; margin-top:16px}
.projectCard__click{
  position:absolute; inset:0;
  background:transparent; border:0;
  cursor:pointer;
}
.projectsSlider .dots{margin-top:12px}

.section{padding:32px 0}
.section--alt{position:relative; background:transparent; border-top:0; border-bottom:0}
.section--alt::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 520px at 18% 30%, rgba(11,42,87,.06), transparent 60%),
    radial-gradient(900px 520px at 82% 70%, rgba(255,106,0,.06), transparent 60%);
  pointer-events:none;
}
.section--alt > .container{position:relative; z-index:1}

.sectionHead{
  max-width:var(--panel);
  margin:0 auto 9px;
  padding:18px 18px 16px;
  border-radius:22px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 34px rgba(11,42,87,.10);
  position:relative;
}
.sectionHead::before{
  content:"";
  position:absolute;
  left:18px;
  top:16px;
  width:6px;
  height:40px;
  border-radius:999px;
  background:linear-gradient(180deg, #ff7a1b, var(--accent));
}
.sectionHead__kicker{
  margin-left:16px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(11,42,87,.55);
}
.sectionHead h2{
  margin:8px 0 8px 16px;
  font-size:34px;
  letter-spacing:-.02em;
}
.sectionHead p{
  margin:0 0 0 16px;
  max-width:90ch;
}
.twoCol{display:grid; grid-template-columns: 1.2fr 1fr; gap:22px; align-items:start}
.grid3{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:18px; margin-top:18px}
.grid2{display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:14px}
.grid2__span{grid-column:1 / -1}
.grid3{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid3__span{grid-column:1 / -1}

.card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  border-radius:var(--radius);
  padding:18px;
}
.card--narrow{max-width:520px; margin:0 auto}
.card--inner{background:rgba(246,248,252,.92)}
.adminPanel{
  max-width:var(--panel);
  margin:0 auto;
  border-radius:24px;
  padding:28px;
  box-shadow:var(--shadow);
}
.adminPanel h1{
  margin:0 0 18px;
  font-size:32px;
  letter-spacing:-.02em;
}
.adminPanel h2{
  margin:0 0 16px;
  font-size:18px;
  letter-spacing:-.01em;
}
.adminSection{padding:24px}
.adminPanel .tableWrap{margin-top:18px}
.adminTopActions{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  margin:0 0 22px;
  flex-wrap:wrap;
}
.adminPanel .form{
  gap:22px;
  margin-top:0;
}
.adminPanel .form label{
  gap:10px;
}
.adminPanel .form small{
  display:block;
  margin-top:6px;
}
.adminPanel .card--inner{
  padding:24px;
}
.adminPanel .card--inner > :last-child{
  margin-bottom:0;
}
.adminPanel .card--inner > .btn:last-child,
.adminPanel .card--inner > .muted:last-child,
.adminPanel .card--inner > .form__actions:last-child{
  margin-top:18px;
}
.adminPanel .card--inner > .grid2 + .btn,
.adminPanel .card--inner > .grid3 + .btn,
.adminPanel .card--inner > .listEditor + .btn,
.adminPanel .card--inner > .preview + label,
.adminPanel .card--inner > .galleryGrid + .muted,
.adminPanel .card--inner > .mdField__head + textarea,
.adminPanel .card--inner > h2 + .listEditor,
.adminPanel .card--inner > h2 + .grid2,
.adminPanel .card--inner > h2 + .grid3{
  margin-top:18px;
}
.adminPanel .card--inner > h2 + .mdField{
  margin-top:18px;
}
.adminPanel .muted{
  line-height:1.55;
}
.adminPanel .btn{
  min-height:44px;
}
.adminPanel .btn--sm{
  min-height:38px;
}
.adminPanel__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}
.adminPanel__top > div:first-child{
  min-width:0;
}
.adminPanel--content .adminTopActions{
  margin:0;
}
.adminContentLayout{
  display:grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap:22px;
  align-items:start;
}
.adminSidebar{
  position:sticky;
  top:18px;
  border-radius:22px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(246,248,252,.92);
  box-shadow:0 14px 32px rgba(11,42,87,.08);
  padding:18px;
}
.adminSidebar__kicker{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(11,42,87,.50);
  font-weight:900;
  margin-bottom:14px;
}
.adminSidebar__nav{
  display:grid;
  gap:10px;
}
.adminSidebar__link{
  display:block;
  border-radius:18px;
  border:1px solid rgba(11,42,87,.10);
  background:rgba(255,255,255,.88);
  padding:14px 15px;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.adminSidebar__link:hover{
  border-color:rgba(255,106,0,.30);
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 24px rgba(11,42,87,.08);
}
.adminSidebar__link.is-active{
  border-color:rgba(255,106,0,.38);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,245,237,.98));
  box-shadow:0 14px 28px rgba(255,106,0,.10);
}
.adminSidebar__title{
  display:block;
  font-weight:900;
  color:rgba(11,42,87,.92);
}
.adminSidebar__desc{
  display:block;
  margin-top:5px;
  color:rgba(11,42,87,.58);
  font-size:13px;
  line-height:1.45;
}
.adminWorkspace{
  min-width:0;
}
.adminWorkspace > .form{
  gap:20px;
}
.phoneEditorRow .form__actions,
.teamEditorRow .form__actions{
  margin-top:0;
  padding-top:0;
}
.phoneEditorRow label input[type="checkbox"],
.teamEditorRow label input[type="checkbox"]{
  width:auto;
}
.srOnly{
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.removeDot{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:999px;
  cursor:pointer;
  user-select:none;
}
.removeDotChk{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.removeDot__ui{
  width:34px;
  height:34px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.92);
  color:rgba(11,42,87,.88);
  border:1px solid rgba(11,42,87,.18);
  font-weight:900;
  font-size:18px;
  line-height:1;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease, opacity 160ms ease, box-shadow 160ms ease;
  box-shadow:0 10px 26px rgba(11,42,87,.14);
}
.removeDot:hover .removeDot__ui{opacity:.95}
.removeDotChk:focus-visible ~ .removeDot .removeDot__ui{
  outline:3px solid rgba(255,106,0,.28);
  outline-offset:3px;
}
.preview--withRemove{position:relative}
.preview--withRemove .removeDot--cover{
  position:absolute;
  right:12px;
  top:12px;
  margin:0;
}
.preview--withRemove .removeDotChk:checked ~ .removeDot .removeDot__ui{
  background:rgba(255,77,77,.95);
  color:#fff;
  border-color:rgba(255,255,255,.92);
  transform: scale(1.03);
}
.preview--withRemove .removeDotChk:checked ~ img{
  outline:3px solid rgba(255,106,0,.92);
  outline-offset:-3px;
}
.galleryGrid--admin{grid-template-columns: repeat(3, minmax(0, 1fr))}
.galleryItem{
  position:relative;
  display:block;
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--line);
  background:rgba(246,248,252,.95);
  cursor:pointer;
}
.galleryItem input{
  position:absolute;
  inset:0;
  opacity:0;
  z-index:2;
}
.galleryItem img{
  width:100%;
  height:110px;
  object-fit:cover;
  display:block;
  opacity:.95;
}
.galleryItem .removeDot__ui{
  position:absolute;
  right:10px;
  top:10px;
  z-index:2;
  width:34px;
  height:34px;
}
.galleryItem input:checked ~ img{
  opacity:.55;
  outline:3px solid rgba(255,106,0,.92);
  outline-offset:-3px;
}
.galleryItem input:checked ~ .removeDot__ui{
  background:rgba(255,77,77,.95);
  color:#fff;
  border-color:rgba(255,255,255,.92);
}
.galleryItem input:focus-visible ~ .removeDot__ui{
  outline:3px solid rgba(255,106,0,.28);
  outline-offset:3px;
}
.checkList{margin:12px 0 0; padding-left:18px; color:var(--muted)}
.checkList li{margin:8px 0}

.footer{
  border-top:0;
  padding:17px 0 9px;
  background:rgba(255,255,255,.70);
  color:var(--text);
}
.footerGrid{
  display:grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  gap:24px;
  align-items:start;
}
.footerCol{display:flex; flex-direction:column; gap:12px}
.footerCol--left{gap:18px}
.footerCopy{font-weight:800; color:rgba(255,255,255,.78)}
.footerCopy{font-weight:700; color:rgba(11,42,87,.62); font-size:13px}
.footerSite{
  color:var(--accent);
  font-weight:800;
  font-size:18px;
  letter-spacing:-.01em;
}
.footerLabel{
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(11,42,87,.55);
  font-size:12px;
}
.footerLink{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(11,42,87,.75);
  font-weight:800;
  font-size:14px;
}
.footerLink--mail{color:rgba(11,42,87,.75)}
.footerText{
  color:rgba(11,42,87,.62);
  font-weight:700;
  font-size:14px;
}
.footer .material-symbols-outlined{
  font-size:18px;
  color:rgba(11,42,87,.55);
}
.footerBottom{
  margin-top:22px;
  padding-top:14px;
  border-top:1px solid rgba(11,42,87,.12);
  display:flex;
  justify-content:center;
}
.footerMadeBy{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(11,42,87,.55);
  font-weight:700;
  font-size:13px;
}
.footerMadeBy__logo{
  width:26px;
  height:26px;
  border-radius:999px;
  filter: grayscale(1) brightness(.9);
  opacity:.9;
  transition: filter 180ms ease, opacity 180ms ease;
}
.footerMadeBy:hover .footerMadeBy__logo{
  filter:none;
  opacity:1;
}

.section--contacts{padding-top:17px}
.contactsPhones{
  margin-top:16px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:18px;
}
.phoneCard{
  border-radius:22px;
  border:1px solid rgba(11,42,87,.14);
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 42px rgba(11,42,87,.10);
  overflow:hidden;
}
.phoneCard__top{
  display:grid;
  grid-template-columns: auto 1fr;
  gap:14px;
  align-items:center;
  padding:16px 18px 14px;
}
.phoneIcons{
  display:flex;
  gap:10px;
  align-items:center;
}
.phoneIcon{
  width:44px;
  height:44px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(11,42,87,.18);
  background:rgba(246,248,252,.95);
  color:rgba(11,42,87,.70);
}
.phoneIcon .material-symbols-outlined{font-size:22px; color:currentColor}
.phoneIcon .icon svg{width:22px; height:22px}
.phoneIcon--wa{color:#25D366}
.phoneLabel{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(11,42,87,.62);
  font-weight:900;
}
.phoneNumber{
  display:inline-block;
  margin-top:6px;
  font-weight:950;
  letter-spacing:-.02em;
  font-size:22px;
  color:rgba(11,42,87,.92);
}
.phoneActions{
  display:flex;
  gap:10px;
  padding:12px 14px 14px;
  border-top:1px solid rgba(11,42,87,.12);
  background:rgba(246,248,252,.92);
}
.phoneBtn{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 14px;
  border-radius:999px;
  border:1px solid rgba(255,106,0,.35);
  background:rgba(255,255,255,.92);
  color:var(--accent);
  font-weight:900;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}
.phoneBtn .material-symbols-outlined{font-size:22px; color:currentColor}
.phoneBtn .icon svg{width:22px; height:22px}
.phoneBtn:hover{
  background:rgba(255,106,0,.92);
  border-color:rgba(255,106,0,.55);
  color:#fff;
}
.phoneBtn--wa:hover .icon--wa{color:#fff}

.contactGrid{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:18px;
}
.contactCard{
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
  overflow:hidden;
  border:1px solid rgba(11,42,87,.14);
  display:flex;
  flex-direction:column;
  min-height:260px;
}
.contactCard__inner{
  padding:22px;
  display:grid;
  grid-template-columns: 140px 1fr;
  gap:18px;
  align-items:center;
}
.contactInfo{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}
.contactPhotoFrame{
  width:140px;
  height:140px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(255,255,255,.92);
  padding:6px;
  box-shadow:0 10px 26px rgba(11,42,87,.10);
}
.contactPhoto{
  width:100%;
  height:100%;
  border-radius:12px;
  border:1px solid rgba(11,42,87,.10);
  object-fit:cover;
  display:block;
}
.contactCard h3{
  margin:0 0 8px;
  font-size:26px;
  letter-spacing:-.02em;
}
.contactRole{
  font-weight:800;
  color:rgba(11,42,87,.78);
}
.contactLine{
  width:min(360px, 100%);
  height:4px;
  border-radius:999px;
  background:rgba(255,106,0,.85);
  margin:14px 0 12px;
}
.contactTeam{
  font-weight:900;
  color:rgba(11,42,87,.82);
}
.contactEmail{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 18px;
  border-top:1px solid rgba(11,42,87,.12);
  background:rgba(246,248,252,.95);
  color:rgba(11,42,87,.86);
  font-weight:900;
  font-size:16px;
  line-height:1.2;
}
.contactEmail span:last-child{min-width:0; overflow:hidden; text-overflow:ellipsis}
.contactEmail .material-symbols-outlined{
  font-size:28px;
  color:var(--accent);
}
.contactEmail:hover{opacity:.95}

/* Hero background overlays disabled (photo-only hero). */

.page{min-height:100%}
.form{display:grid; gap:12px; margin-top:14px}
.form--wide{max-width:980px}
.form label{display:grid; gap:8px}
.form span{color:var(--muted); font-size:13px; font-weight:700}
.form input, .form textarea, .form select{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  color:var(--text);
  outline:none;
}
.form--wide{max-width:none}
.form input:focus, .form textarea:focus, .form select:focus{border-color:rgba(255,106,0,.55); box-shadow:0 0 0 4px rgba(255,106,0,.10)}
.form__actions{display:flex; gap:12px; margin-top:10px; padding-top:6px; flex-wrap:wrap}
.err{color:#ffd3d3}
.alert{padding:12px 14px; border-radius:12px; border:1px solid rgba(255,77,77,.45); background:rgba(255,77,77,.10); margin:12px 0}

.tableWrap{overflow:auto; border-radius:var(--radius); border:1px solid var(--line); background:rgba(255,255,255,.92)}
.table{width:100%; border-collapse:collapse; min-width:820px}
.table th,.table td{
  padding:16px 18px;
  text-align:left;
  border-bottom:0;
  vertical-align:top;
}
.table tr{border-bottom:1px solid var(--line)}
.table tbody tr:last-child{border-bottom:0}
.table th{color:var(--muted); font-size:12px; letter-spacing:.12em; text-transform:uppercase}

@media (max-width: 940px){
  .ctaBand__inner{flex-direction:column; align-items:flex-start}
  .ctaBand__phone{font-size:34px}
}

/* Prevent hero headline/buttons from sticking to the viewport edge on mid widths */
@media (max-width: 1405px) and (min-width: 961px){
  .heroOffer{padding-left:22px}
}

/* <1501px: hero panel becomes full-bleed rectangle (no rounding). */
@media (max-width: 1500px){
  .heroOffer::before{
    left:calc(50% - 50vw);
    right:calc(50% - 50vw);
    width:auto;
    transform:none;
    border-radius:0;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
  }
}

/* Desktop-only: shorten labels on narrower desktop windows. */
@media (max-width: 1168px) and (hover: hover) and (pointer: fine){
  .header .nav .navLabel--long{display:none}
  .header .nav .navLabel--short{display:inline}
}

/* Desktop-only: switch to burger on narrow desktop windows. */
@media (max-width: 1080px) and (hover: hover) and (pointer: fine){
  .header .nav{display:none}
  .header .header__contacts{display:none}
  .burgerBtn{display:inline-flex; align-items:center; justify-content:center}
}
.table__actions{display:flex; gap:12px; justify-content:flex-end; align-items:center}
.table__actions form{margin:0}

.preview{margin:14px 0 16px; border-radius:14px; overflow:hidden; border:1px solid var(--line); background:rgba(246,248,252,.95); min-height:140px; display:flex; align-items:center; justify-content:center}
.preview img{width:100%; height:180px; object-fit:cover; display:block}
.preview--placeholder{color:var(--muted); font-weight:700}
.galleryGrid{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px; margin:14px 0 16px}
.galleryGrid img{width:100%; height:90px; object-fit:cover; border-radius:12px; border:1px solid var(--line)}

.listEditor{display:grid; gap:12px; margin-top:16px}
.listEditor__row{display:grid; grid-template-columns: 1fr auto; gap:12px; align-items:center}
.listEditor + .btn{
  margin-top:18px;
}
.listEditor__row input[type="file"]{
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
}
.mdField__head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:12px;
  margin-bottom:14px;
}
.mdToolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-start;
  padding-top:2px;
}
.mdPreview{
  margin-top:16px;
  border:1px solid rgba(11,42,87,.14);
  border-radius:14px;
  background:rgba(246,248,252,.95);
  padding:18px 18px 14px;
}
.mdPreview h1,.mdPreview h2,.mdPreview h3{
  margin:10px 0 8px;
  color:rgba(11,42,87,.90);
}
.mdPreview p{margin:0 0 10px; color:rgba(11,42,87,.70)}
.mdPreview ul{margin:0 0 10px; padding-left:18px; color:rgba(11,42,87,.70)}

@media (max-width: 900px){
  .adminPanel__top{
    flex-direction:column;
    align-items:stretch;
  }
  .adminContentLayout{
    grid-template-columns: 1fr;
  }
  .adminSidebar{
    position:static;
  }
  .adminPanel{
    padding:22px;
  }
  .adminSection,
  .adminPanel .card--inner{
    padding:20px;
  }
  .mdField__head{
    align-items:stretch;
  }
  .mdToolbar{
    justify-content:flex-start;
  }
  .table th,.table td{
    padding:14px 16px;
  }
}

.skeleton{background:rgba(11,42,87,.06)}
.skeleton--line{height:14px; border-radius:999px; margin:10px 0}
.skeleton--grid{height:110px; border-radius:14px; margin-top:14px}
.projectCard--skeleton{grid-template-columns:1fr 1fr}
.projectCard--skeleton .projectCard__body{padding:18px}

.modal[hidden]{display:none}
.modal{
  position:fixed; inset:0; z-index:50;
}
.modal__overlay{
  position:absolute; inset:0;
  background:rgba(11,42,87,.42);
}
.modal__dialog{
  position:relative;
  width:min(1488px, calc(100% - 36px));
  margin:4vh auto;
  border-radius:22px;
  border:1px solid rgba(11,42,87,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,252,.98));
  box-shadow:var(--shadow);
  max-height:92vh;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color: rgba(255,106,0,.55) rgba(11,42,87,.06);
}
.modal__dialog::-webkit-scrollbar{width:12px}
.modal__dialog::-webkit-scrollbar-track{
  background:rgba(11,42,87,.06);
  border-left:1px solid rgba(11,42,87,.10);
  margin:12px 0;
  border-radius:999px;
}
.modal__dialog::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(255,122,27,.95), rgba(255,106,0,.95));
  border-radius:999px;
  border:3px solid rgba(11,42,87,.06);
}
.modal__dialog::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, rgba(255,122,27,1), rgba(255,106,0,1));
}
.modal__close{
  position:sticky; top:0;
  float:right;
  margin:14px;
  width:38px; height:38px;
  border-radius:999px;
  border:1px solid rgba(11,42,87,.16);
  background:rgba(255,255,255,.90);
  color:var(--text);
  cursor:pointer;
  font-size:22px;
}
.modal__content{padding:18px 22px 22px}
.modal h2{margin:0; font-size:34px; letter-spacing:-.02em}
.modal h3{margin:22px 0 10px; font-size:18px}
.md p{color:var(--muted); margin:0 0 12px}
.md ul{color:var(--muted); margin:0 0 12px; padding-left:18px}
.md h1,.md h2,.md h3{margin:14px 0 10px}

.modalLayout{display:grid; gap:18px}
.modalHeader{
  position:relative;
  border-radius:18px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 32px rgba(11,42,87,.10);
  padding:16px 18px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  overflow:hidden;
}
.modalHeader::before{
  content:"";
  position:absolute;
  left:18px;
  top:16px;
  width:6px;
  height:44px;
  border-radius:999px;
  background:linear-gradient(180deg, #ff7a1b, var(--accent));
}
.modalHeader__left{padding-left:16px}
.modalKicker{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(11,42,87,.55);
}
.modalTitle{margin-top:10px}
.modalMeta{
  margin-top:8px;
  color:rgba(11,42,87,.70);
  font-weight:700;
}
.modalHeader__right{display:flex; align-items:center; gap:10px}

.modalGrid{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:18px;
  align-items:start;
}
.modalMedia{
  border-radius:0;
  border:0;
  background:transparent;
  box-shadow:none;
  padding:0;
}
.modalMediaGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
.modalMediaGrid--single{
  grid-template-columns: 1fr;
}
.modalMediaGrid--two{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.modalMediaItem{
  border-radius:16px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(255,255,255,.92);
  padding:6px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(11,42,87,.10);
  height:220px;
}
.modalMediaGrid--single .modalMediaItem{
  height:min(520px, 56vh);
}
.modalMediaGrid--two .modalMediaItem{
  height:min(380px, 44vh);
}
.modalMediaItem img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:12px;
  border:1px solid rgba(11,42,87,.10);
  display:block;
}
.modalMediaItem.ph{
  padding:6px;
  background:
    radial-gradient(700px 320px at 22% 30%, rgba(255,255,255,.70), transparent 60%),
    linear-gradient(135deg, rgba(11,42,87,.12), rgba(255,106,0,.10));
}

.modalInfo{
  border-radius:18px;
  border:1px solid rgba(11,42,87,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 32px rgba(11,42,87,.10);
  padding:16px 16px 18px;
}
.modalSection + .modalSection{margin-top:18px; padding-top:16px; border-top:1px solid rgba(11,42,87,.10)}
.modalSection__title{
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(11,42,87,.78);
  font-size:12px;
  margin:0 0 10px;
}

.kvGrid{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:10px}
.kv{border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:rgba(246,248,252,.95)}
.kv .k{color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase}
.kv .v{margin-top:6px; font-weight:800}
.modalCta{margin-top:16px; display:flex; gap:10px; flex-wrap:wrap}

@media (max-width: 960px){
  /* Mobile: no global background image/overlays. */
  html::before{display:none}
  body::before{display:none}
  body::after{display:none}
  body{background:var(--bg)}

  .nav{display:none}
  .header__contacts{display:none}
  .burgerBtn{display:inline-flex; align-items:center; justify-content:center}
  .pillStrip--inHero{display:none}

  /* Mobile layout: sections stack flush with thin separators. */
  .section{padding:16px 0 0; border-top:1px solid rgba(11,42,87,.12)}
  .projectsOverlap{padding:16px 0 0; border-top:1px solid rgba(11,42,87,.12)}
  .ctaBand{padding:16px 0 0; border-top:1px solid rgba(11,42,87,.12)}
  .footer{
    padding:22px 0 18px;
    border-top:1px solid rgba(11,42,87,.12);
  }

  .projectsOverlap{margin-top:0}
  .projectsOverlap .projectsHero{
    border-radius:0;
    border:0;
    background:transparent;
    box-shadow:none;
    padding:16px 0 10px;
  }
  .aboutBox,
  .sectionHead,
  .svcCard,
  .contactCard,
  .ctaBand__inner{
    border-radius:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .sectionHead{padding:0 0 10px}
  .sectionHead::before{display:none}
  .sectionHead__kicker{margin-left:0}
  .sectionHead h2{margin-left:0}
  .sectionHead p{margin-left:0}

  .aboutBox{padding:16px 0 10px}
  .aboutBox::before{display:none}
  .aboutTop{padding-left:0}
  .aboutDivider{margin:14px 0}

  .servicesGrid{gap:14px; margin-top:12px}
  .svcBody{padding:14px 0}
  .svcPhoto{border-radius:14px}
  .svcIcon{margin-top:-28px}

  .contactCard{
    border-top:1px solid rgba(11,42,87,.10) !important;
    padding-top:14px;
    min-height:unset;
  }
  .contactCard__inner{padding:16px 0}
  .contactEmail{
    border-radius:0;
    border-left:0;
    border-right:0;
    padding:14px 0;
  }

  .ctaBand__inner{padding:16px 0}
  .ctaBand__inner::before,
  .ctaBand__inner::after{display:none}
  .ctaBand__title{font-size:28px}
  .ctaBand__phone{font-size:30px}

  .projectCard{grid-template-columns:1fr}
  .projectCard{
    height:auto;
    border-radius:0;
    box-shadow:none;
    border:0;
    background:transparent;
  }
  .projectCard__cover{
    min-height:220px;
    height:auto;
    border-radius:0;
    border:1px solid rgba(11,42,87,.10);
  }
  .projectCard__body{padding:14px 0}
  .metrics{gap:8px}
  .metric{padding:10px 10px}
  .projectCard__actions{margin-top:12px}
  .metrics{grid-template-columns: repeat(2, minmax(0, 1fr))}
  .twoCol{grid-template-columns:1fr}
  .grid3{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .aboutGrid{grid-template-columns: repeat(2, minmax(0, 1fr)); gap:14px}
  .aboutCircle{width:140px; height:140px}
  .aboutTop h2{font-size:30px}
  .aboutContent{grid-template-columns:1fr; gap:18px}
  .aboutLeft{width:100%; margin-left:0}
  .aboutRight{width:100%}
  .servicesGrid{grid-template-columns:1fr}
  .contactsPhones{grid-template-columns:1fr; gap:14px}
  .contactGrid{grid-template-columns:1fr; gap:14px}
  .contactCard__inner{grid-template-columns: 110px 1fr; padding:16px}
  .contactPhotoFrame{width:110px; height:110px}
  .contactCard h3{font-size:22px}
  .contactEmail{font-size:15px}
  .hero--single .heroSlide{
    min-height:auto;
    padding:0;
  }
  .heroSlide{align-items:flex-start}
  /* Full-bleed hero panel on mobile (no side gaps). */
  .heroSlide__inner.container{
    width:100%;
    margin:0;
  }
  .heroFrame{
    max-width:100%;
    margin:0;
  }
  .heroOffer{
    margin-top:0;
    padding:0;
  }
	  .heroOffer::before{
	    left:0;
	    right:0;
	    top:0;
	    transform:none;
	    border-radius:0;
	    border:0;
	    box-shadow:none;
	    background:rgba(11,42,87,.92);
	  }
  .heroOffer__panel{padding:22px 18px 18px}
  /* Hide everything in hero except the blue offer panel */
  .heroOffer > :not(.heroOffer__panel){display:none !important}
  .heroOffer__panel > :not(.heroHeadline){display:none !important}
  .heroHeadline{font-size:clamp(34px, 9vw, 54px)}
  .heroHeadline__line{display:block}
  .heroOffer__panel{clip-path:none; border-radius:0}
  .heroCall{min-width:unset; width:100%}
  .pillStrip{margin-top:14px}
  .pillStrip__inner{padding:0}
  .projectsOverlap .projectsSlider{margin-top:12px}
  .projectsSlider__viewport{border-radius:0}
  .modalGrid{grid-template-columns:1fr}
  .modalMediaItem{height:190px}
  .kvGrid{grid-template-columns: repeat(2, minmax(0, 1fr))}
  .footerGrid{grid-template-columns:1fr; gap:18px}
  .footerBottom{justify-content:flex-start}
}

/* Touch devices: keep desktop layout until the real mobile breakpoint (<= 960px). */
@media (min-width: 961px){
  html.isTouch .burgerBtn{display:none}
  html.isTouch .header .nav{display:flex}
  html.isTouch .header .header__contacts{display:flex}
  html.isTouch .header .nav .navLabel--long{display:inline}
  html.isTouch .header .nav .navLabel--short{display:none}
  html.isTouch .pillStrip--inHero{display:block}
}
.heroFrame{
  max-width:var(--panel);
  margin:0 auto;
}
.heroWordmark{
  display:inline-flex;
  align-items:baseline;
  margin:0;
  gap:0;
  white-space:nowrap;
}
.heroWordmark__logo{
  height:.92em;
  width:auto;
  display:block;
  transform: translateY(calc(.06em + 2px));
}
.heroWordmark__tail{
  display:inline-block;
  margin-left:0;
}
