/* ==========================================================================
   ASG — shell.css
   Preloader, topbar, header, navigation, mobile menu, search overlay,
   page banner, breadcrumbs, footer, floating actions, pagination, empty states.
   Loaded on every view.
   ========================================================================== */

/* ------------------------------------------------------------ Preloader */
.asg-pre{position:fixed;inset:0;z-index:9999;background:var(--asg-dark);display:flex;align-items:center;justify-content:center;transition:opacity .6s var(--asg-ease),visibility .6s;animation:asg-pre-safety .01s 4s forwards}
.asg-pre.is-done{opacity:0;visibility:hidden}
.asg-pre__svg{inline-size:110px;block-size:110px}
.asg-pre__ring,.asg-pre__tri,.asg-pre__bar{fill:none;stroke-linecap:round;stroke-linejoin:round}
.asg-pre__ring{stroke:var(--asg-accent);stroke-width:5;stroke-dasharray:289;stroke-dashoffset:289;transform:rotate(-120deg);transform-origin:center;animation:asg-draw 1.3s var(--asg-ease) forwards}
.asg-pre__tri{stroke:var(--asg-primary);stroke-width:6;stroke-dasharray:150;stroke-dashoffset:150;animation:asg-draw 1.1s .35s var(--asg-ease) forwards}
.asg-pre__bar{stroke:var(--asg-accent);stroke-width:4;stroke-dasharray:30;stroke-dashoffset:30;animation:asg-draw .6s .9s var(--asg-ease) forwards}
@keyframes asg-draw{to{stroke-dashoffset:0}}
@keyframes asg-pre-safety{to{opacity:0;visibility:hidden}}

/* ------------------------------------------------------------ Header shell */
.asg-header{position:relative;z-index:60;background:var(--asg-dark)}
.asg-header-overlay .asg-header{position:absolute;inset-block-start:0;inset-inline:0;background:transparent}
.admin-bar.asg-header-overlay .asg-header{inset-block-start:32px}

/* Top bar */
.asg-top{block-size:var(--asg-top-h);background:rgba(4,7,10,.55);border-block-end:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.6);font-size:12.5px}
.asg-top__in{block-size:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.asg-top__g{display:flex;align-items:center;gap:28px;min-inline-size:0}
.asg-top__i{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:color .3s}
.asg-top__i .asg-ico{color:var(--asg-accent)}
.asg-top__i:hover{color:#fff}
.asg-top__addr span{overflow:hidden;text-overflow:ellipsis}

/* Social */
.asg-soc{display:flex;gap:8px}
.asg-soc a{inline-size:28px;block-size:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.12);transition:all .3s}
.asg-soc a:hover{color:#07121C;background:var(--asg-accent);border-color:var(--asg-accent)}
.asg-soc--lg a{inline-size:40px;block-size:40px}

/* Main bar */
.asg-hdr{block-size:var(--asg-header-h);border-block-end:1px solid rgba(255,255,255,.08);transition:background .45s,block-size .45s var(--asg-ease),box-shadow .45s}
.asg-hdr__in{block-size:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}
.asg-logo{display:flex;align-items:center;flex:none}
.asg-logo__img{block-size:var(--asg-logo-h);inline-size:auto;transition:block-size .45s var(--asg-ease)}
.asg-hdr__act{display:flex;align-items:center;gap:10px;flex:none}
.asg-ibtn{inline-size:40px;block-size:40px;border-radius:6px;border:1px solid rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;color:#fff;background:transparent;transition:all .3s}
.asg-ibtn:hover{border-color:var(--asg-accent);color:var(--asg-accent)}
.asg-lang{display:inline-flex;align-items:center;gap:7px;min-block-size:40px;padding:0 12px;border-radius:6px;border:1px solid rgba(255,255,255,.14);color:#fff;font-family:'Alexandria',sans-serif;font-size:13px;transition:border-color .3s,color .3s}
.asg-lang:hover{border-color:var(--asg-accent);color:var(--asg-accent)}
.asg-burger{display:none}

/* Sticky state */
.asg-header.is-stuck{position:fixed;inset-block-start:0;inset-inline:0;animation:asg-drop .55s var(--asg-ease)}
.admin-bar .asg-header.is-stuck{inset-block-start:32px}
.asg-header.is-stuck .asg-top{display:none}
.asg-header.is-stuck .asg-hdr{--asg-header-h:72px;background:rgba(var(--asg-dark-rgb),.82);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:0 20px 40px -30px rgba(0,0,0,.8)}
.asg-header.is-stuck .asg-logo__img{block-size:calc(var(--asg-logo-h) - 6px)}
@keyframes asg-drop{from{transform:translateY(-100%)}to{transform:none}}

/* Desktop nav */
.asg-nav{flex:1;display:flex;justify-content:center;min-inline-size:0}
.asg-nav__list{display:flex;align-items:center;gap:2px}
.asg-nav__item{position:relative}
.asg-nav__link{position:relative;display:inline-flex;align-items:center;gap:6px;padding:10px 14px;font-family:var(--asg-font-h);font-size:14px;font-weight:300;color:rgba(255,255,255,.75);white-space:nowrap;transition:color .3s}
.asg-nav__link::after{content:"";position:absolute;inset-block-end:2px;inset-inline:14px;block-size:1px;background:var(--asg-accent);transform:scaleX(0);transform-origin:var(--asg-origin-start,left);transition:transform .45s var(--asg-ease)}
.asg-nav__link:hover,.asg-nav__link.is-active{color:#fff}
.asg-nav__link:hover::after,.asg-nav__link.is-active::after{transform:scaleX(1)}
.asg-nav__sub{position:absolute;inset-block-start:100%;inset-inline-start:0;min-inline-size:230px;padding:10px;border-radius:10px;background:rgba(var(--asg-dark-rgb),.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 60px -20px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .35s var(--asg-ease)}
.asg-nav__item.has-sub:hover > .asg-nav__sub,.asg-nav__item.has-sub:focus-within > .asg-nav__sub{opacity:1;visibility:visible;transform:none}
.asg-nav__sub .asg-nav__link{display:flex;padding:10px 14px;border-radius:6px}
.asg-nav__sub .asg-nav__link::after{display:none}
.asg-nav__sub .asg-nav__link:hover{background:rgba(255,255,255,.06)}

/* ------------------------------------------------------------ Mobile menu */
.asg-mmenu{position:fixed;inset:0;z-index:200}
.asg-mmenu__bg{position:absolute;inset:0;background:rgba(3,6,9,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .4s}
.asg-mmenu__panel{position:absolute;inset-block:0;inset-inline-end:0;inline-size:min(420px,88vw);background:var(--asg-dark);display:flex;flex-direction:column;transform:translateX(var(--asg-off,100%));transition:transform .5s var(--asg-ease);overflow-y:auto;overscroll-behavior:contain}
.asg-mmenu.is-open .asg-mmenu__bg{opacity:1}
.asg-mmenu.is-open .asg-mmenu__panel{transform:none}
.asg-mmenu__head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-block-end:1px solid rgba(255,255,255,.08)}
.asg-mmenu__head .asg-logo__img{block-size:var(--asg-logo-h-m)}
.asg-mmenu__nav{padding:12px 20px;flex:1}
.asg-mnav li a{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-block-end:1px solid rgba(255,255,255,.07);font-family:var(--asg-font-h);font-size:17px;font-weight:300;color:rgba(255,255,255,.85)}
.asg-mnav li a:hover,.asg-mnav .is-active > a,.asg-mnav .current-menu-item > a{color:var(--asg-accent)}
.asg-mnav .sub-menu{padding-inline-start:14px}
.asg-mnav .sub-menu a{font-size:15px}
.asg-mmenu__foot{padding:20px;display:flex;flex-direction:column;gap:12px;border-block-start:1px solid rgba(255,255,255,.08)}
.asg-mmenu__tel{display:inline-flex;align-items:center;gap:10px;color:rgba(255,255,255,.75);font-size:14px;justify-content:center;padding-block:6px}
.asg-mmenu__foot .asg-soc{justify-content:center}
.asg-mmenu-open{overflow:hidden}

/* ------------------------------------------------------------ Search overlay */
.asg-search{position:fixed;inset:0;z-index:210;display:flex;align-items:flex-start;justify-content:center;padding-block-start:18vh}
.asg-search__bg{position:absolute;inset:0;background:rgba(3,6,9,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .4s}
.asg-search__box{position:relative;inline-size:min(720px,90vw);opacity:0;transform:translateY(20px);transition:all .45s var(--asg-ease)}
.asg-search.is-open .asg-search__bg,.asg-search.is-open .asg-search__box{opacity:1;transform:none}
.asg-search__x{position:absolute;inset-block-end:calc(100% + 18px);inset-inline-end:0}
.asg-search__hint{margin-block-start:14px;color:rgba(255,255,255,.5);font-size:13.5px;text-align:center}
.asg-sform{position:relative;display:flex}
.asg-sform__in{inline-size:100%;min-block-size:64px;padding-block:0;padding-inline:22px 64px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font-size:18px;outline:0;transition:border-color .3s,background .3s}
.asg-sform__in:focus{border-color:var(--asg-accent);background:rgba(255,255,255,.1)}
.asg-sform__btn{position:absolute;inset-block:0;inset-inline-end:0;inline-size:60px;display:flex;align-items:center;justify-content:center;color:var(--asg-accent)}
.asg-soft .asg-sform__in,.asg-empty .asg-sform__in{background:#fff;border-color:var(--asg-line);color:var(--asg-ink);font-size:16px;min-block-size:56px}
.asg-soft .asg-sform__btn,.asg-empty .asg-sform__btn{color:var(--asg-primary)}

/* ------------------------------------------------------------ Page banner */
.asg-ban{padding-block-start:calc(var(--asg-top-h) + var(--asg-header-h));background:radial-gradient(800px 500px at var(--asg-ban-x,18%) 60%,rgba(var(--asg-primary-rgb),.45),transparent 62%),linear-gradient(180deg,#0A0E13,#0C131B);overflow:hidden}
.asg-ban__bg{position:absolute;inset:0;z-index:-2}
.asg-ban__bg img{inline-size:100%;block-size:100%;object-fit:cover}
.asg-ban.has-img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(var(--asg-dark-rgb),calc(var(--asg-banner-overlay) + .1)),rgba(var(--asg-dark-rgb),var(--asg-banner-overlay)))}
.asg-ban__in{min-block-size:var(--asg-banner-h);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:18px;position:relative;z-index:2;padding-block:40px;max-inline-size:760px}
.asg-ban__title{font-size:clamp(2rem,1.2rem + 2.6vw,2.9rem);font-weight:500;color:#fff;margin:0;line-height:1.35}
.asg-ban__sub{font-size:1rem;color:rgba(255,255,255,.66);max-inline-size:620px;margin:0}
.asg-deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.asg-deco--banner .asg-arc--a{inline-size:760px;block-size:760px;inset-inline-end:-190px;inset-block-start:-120px;border-color:rgba(var(--asg-accent-rgb),.35) rgba(var(--asg-accent-rgb),.35) transparent transparent;transform:rotate(20deg)}
.asg-deco--banner .asg-float{position:absolute;display:block}
.asg-deco--banner .asg-float--1{inset-inline-end:170px;inset-block-start:190px;inline-size:150px;block-size:330px;animation:asg-float 9s ease-in-out infinite}
.asg-deco--banner .asg-float--2{inset-inline-end:330px;inset-block-start:250px;inline-size:110px;block-size:250px;animation:asg-float2 11s ease-in-out infinite;opacity:.8}
.asg-deco--banner .asg-pane{inset:0;transform:perspective(900px) rotateY(var(--asg-tilt,-24deg))}
.asg-deco__mark{position:absolute;inset-inline-end:92px;inset-block-start:250px;inline-size:200px;opacity:.07}

/* Breadcrumbs */
.asg-crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--asg-font-h);font-size:13px;font-weight:300;color:rgba(255,255,255,.55)}
.asg-crumb li{display:inline-flex;align-items:center;gap:8px}
.asg-crumb a:hover{color:var(--asg-accent)}
.asg-crumb [aria-current] span{color:var(--asg-accent)}
.asg-crumb__sep{opacity:.5}

/* ------------------------------------------------------------ Footer */
.asg-foot{position:relative;isolation:isolate;overflow:hidden;background:#080B0E;color:rgba(255,255,255,.62);font-size:14.5px}
.asg-foot .asg-gridbg{opacity:.6}
.asg-foot__mark{position:absolute;inset-inline-end:-60px;inset-block-end:-80px;inline-size:520px;opacity:.035;z-index:-1;pointer-events:none}
.asg-foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:64px;padding-block:84px 60px}
.asg-foot__brand{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.asg-foot__logo .asg-logo__img{block-size:54px}
.asg-foot__brand p{line-height:1.95;margin:0}
.asg-foot__tag{font-family:'Alexandria',sans-serif;color:var(--asg-accent);font-size:14.5px}
.asg-foot__h{font-size:15.5px;color:#fff;font-weight:400;margin:0 0 22px}
.asg-foot__list{display:flex;flex-direction:column;gap:12px}
.asg-foot__list a{display:inline-flex;transition:color .3s,transform .3s var(--asg-ease)}
.asg-foot__list a:hover{color:var(--asg-accent);transform:translateX(calc(4px * var(--asg-dir,1)))}
.asg-foot__ci{display:flex;flex-direction:column;gap:18px}
.asg-foot__ci li{display:flex;gap:12px;align-items:flex-start}
.asg-foot__ci .asg-ico{color:var(--asg-accent);margin-block-start:5px}
.asg-foot__ci a:hover{color:var(--asg-accent)}
.asg-foot__phones{display:flex;flex-direction:column;align-items:flex-start}
.asg-foot__bar{border-block-start:1px solid rgba(255,255,255,.08);padding-block:26px;font-size:13.5px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.asg-foot__bar a{color:#fff}
.asg-foot__bar a:hover{color:var(--asg-accent)}

/* ------------------------------------------------------------ Floaters */
.asg-floaters{position:fixed;inset-block-end:24px;inset-inline-end:24px;z-index:90;display:flex;flex-direction:column;gap:12px;align-items:center}
.asg-wa{inline-size:54px;block-size:54px;border-radius:50%;background:#1FAF5A;color:#fff;display:flex;align-items:center;justify-content:center;animation:asg-pulse 2.4s infinite;box-shadow:0 14px 30px -8px rgba(31,175,90,.6);transition:transform .35s var(--asg-ease)}
.asg-wa:hover{transform:scale(1.08)}
.asg-up{position:relative;inline-size:48px;block-size:48px;border-radius:50%;background:rgba(var(--asg-dark-rgb),.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .4s var(--asg-ease)}
.asg-up.is-visible{opacity:1;visibility:visible;transform:none}
.asg-up:hover{color:var(--asg-accent)}
.asg-up__ring{position:absolute;inset:0;inline-size:100%;block-size:100%;transform:rotate(-90deg)}
.asg-up__ring circle{fill:none;stroke:var(--asg-accent);stroke-width:2;stroke-dasharray:138.2;stroke-dashoffset:calc(138.2 - 138.2 * var(--asg-progress,0));transition:stroke-dashoffset .15s linear}

/* ------------------------------------------------------------ Listing / pagination / empty */
.asg-cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.asg-pag{display:flex;gap:8px;justify-content:center;margin-block-start:56px;flex-wrap:wrap}
.asg-pag .page-numbers{min-inline-size:44px;block-size:44px;padding:0 10px;border-radius:6px;border:1px solid var(--asg-line);display:inline-flex;align-items:center;justify-content:center;font-family:'Alexandria',sans-serif;font-size:14.5px;background:#fff;color:var(--asg-ink);transition:all .3s}
.asg-pag a.page-numbers:hover{border-color:var(--asg-primary);color:var(--asg-primary)}
.asg-pag .current{background:var(--asg-primary);border-color:var(--asg-primary);color:#fff}
.asg-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;max-inline-size:620px;margin-inline:auto}
.asg-empty__mark{inline-size:110px;opacity:.6}
.asg-empty .asg-sform{inline-size:100%}

/* Blog/listing cards also used outside widgets */
.asg-bc{position:relative;display:flex;flex-direction:column;border-radius:var(--asg-radius);overflow:hidden;background:#fff;border:1px solid var(--asg-line);transition:transform .5s var(--asg-ease),box-shadow .5s}
.asg-bc:hover{transform:translateY(-6px);box-shadow:var(--asg-shadow-m)}
.asg-bc__img{position:relative;display:block;block-size:230px;overflow:hidden}
.asg-bc:hover .asg-media img,.asg-bc:hover .asg-ph{transform:scale(1.06)}
.asg-bc .asg-ph{transition:transform 1.1s var(--asg-ease)}
.asg-bc:hover .asg-ph::after{transform:translateX(-100%)}
.asg-bc__b{padding:24px 26px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;flex:1}
.asg-bc__m{font-size:13px;color:var(--asg-mute);display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.asg-bc__m span{display:inline-flex;align-items:center;gap:6px}
.asg-bc__title{font-size:18px;font-weight:500;line-height:1.6;margin:0}
.asg-bc__title a{transition:color .3s}
.asg-bc:hover .asg-bc__title a{color:var(--asg-primary)}
.asg-bc__ex{font-size:14.5px;margin:0}
.asg-bc .asg-link{margin-block-start:auto}

/* Comments */
.asg-comments{margin-block-start:64px;padding-block-start:40px;border-block-start:1px solid var(--asg-line)}
.asg-comments__title{font-size:var(--asg-h4)}

/* ------------------------------------------------------------ Responsive */
@media (max-width:1200px){
	.asg-nav__link{padding-inline:10px}
	.asg-top__addr{display:none}
}
@media (max-width:1024px){
	:root{--asg-header-h:74px}
	.asg-nav{display:none}
	.asg-burger{display:inline-flex}
	.asg-logo__img{block-size:var(--asg-logo-h-m)}
	.asg-top{display:none}
	.asg-ban{padding-block-start:var(--asg-header-h)}
	.asg-ban__in{min-block-size:var(--asg-banner-h-m)}
	.asg-deco--banner .asg-float,.asg-deco__mark{opacity:.35}
	.asg-foot__grid{grid-template-columns:1fr 1fr;gap:44px}
	.asg-cards3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:782px){
	.admin-bar .asg-header.is-stuck{inset-block-start:46px}
	.admin-bar.asg-header-overlay .asg-header{inset-block-start:46px}
}
@media (max-width:640px){
	.asg-foot__grid{grid-template-columns:1fr;gap:36px;padding-block:60px 40px}
	.asg-foot__bar{flex-direction:column;align-items:center;text-align:center;gap:6px}
	.asg-cards3{grid-template-columns:1fr}
	.asg-floaters{inset-block-end:16px;inset-inline-end:16px}
	.asg-deco--banner .asg-float,.asg-deco__mark{display:none}
	.asg-hdr__act{gap:8px}
}
