/* Shared public chrome. Also loaded by the sealed editor's header template.
   Chrome rules and tokens stay scoped; cube motion is shared by public actions. */
@font-face { font-family:Manrope; src:url('./fonts/manrope-variable.woff2') format('woff2'); font-weight:200 800; font-style:normal; font-display:swap; }
:is(.site-header,.site-footer,.nojs-nav) {
  --gutter:clamp(22px,4.6vw,72px); --max:1320px; --navy:#101827; --orange:#ff6b35; --orange-light:#ff8c5a; --orange-deep:#e55a2b; --line:#dfe4e8;
  font-family:Manrope,'Segoe UI',sans-serif; font-synthesis:none; font-size:14px; font-weight:400; line-height:1.5; letter-spacing:normal; text-align:left;
}
:is(.site-header,.site-footer,.nojs-nav),:is(.site-header,.site-footer,.nojs-nav) * { box-sizing:border-box; }
:is(.site-header,.site-footer,.nojs-nav) a { color:inherit; text-decoration:none; }
:is(.site-header,.site-footer,.nojs-nav) :is(button,a) { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
:is(.site-header,.site-footer,.nojs-nav) :focus-visible { outline:3px solid #ff8c5a; outline-offset:4px; border-radius:4px; }
:is(.site-header,.site-footer,.nojs-nav) [hidden] { display:none!important; }
:is(.site-header,.site-footer,.nojs-nav) .container { width:100%; max-width:calc(1320px + var(--gutter)*2); margin-inline:auto; padding-inline:var(--gutter); }
:is(.site-header,.site-footer) .brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; min-width:0; }
:is(.site-header,.site-footer) .brand img { display:block; width:34px; height:34px; max-width:100%; }
:is(.site-header,.site-footer) .brand>span { font-size:28px; font-weight:800; letter-spacing:-.04em; line-height:1.2; padding-right:.08em; background:none; -webkit-text-fill-color:currentColor; color:#f2622c; }
:is(.site-header,.site-footer) svg { display:block; flex-shrink:0; width:21px; height:21px; }
.site-header { position:sticky; top:0; z-index:80; height:88px; border-bottom:1px solid #dce3e7; background:#fff; color:#172333; backdrop-filter:none; }
.site-header .header-inner { height:100%; min-width:0; display:flex; align-items:center; gap:28px; }
.site-header .primary-nav { display:flex; align-items:center; gap:28px; margin-left:auto; }
.site-header .primary-nav>a { display:inline-flex; align-items:center; gap:6px; position:relative; padding-block:14px; font-size:13px; font-weight:650; white-space:nowrap; }
.site-header .primary-nav>a::after { content:''; position:absolute; inset:auto 0 5px; height:2px; background:#ff6b35; transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.site-header .primary-nav>a:is(:hover,[aria-current])::after { transform:scaleX(1); }
.site-header .nav-dot { display:block; width:5px; height:5px; border-radius:50%; background:#ff6b35; }
.site-header .header-actions { display:flex; align-items:center; gap:17px; }
.site-header .btn-calculator { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-width:44px; min-height:44px; padding:11px 15px; border:1px solid #dfe4e8; border-radius:8px; background:#fff; color:#172333; font-size:12px; font-weight:600; line-height:1.3; white-space:nowrap; transition:background .2s,border-color .2s,transform .2s; }
.site-header .btn-calculator:hover { background:#f6f7f8; border-color:#aab5c2; transform:translateY(-2px); }
.site-header .btn-calculator svg { width:19px; height:19px; }
/* Approved cube 01: separate along the projected face normals, hold, return.
   Only the glyph moves; its action and hit area remain in the same position. */
.icon.icon--cube { --cube-open:0; overflow:visible; pointer-events:none; }
.icon--cube .cube-face { transition:transform .39s cubic-bezier(.215,.61,.355,1); }
.icon--cube .cube-face--top { transform:translateY(calc(-2.8125px * var(--cube-open))); }
.icon--cube .cube-face--left { transform:translate(calc(-2.4357px * var(--cube-open)),calc(1.40625px * var(--cube-open))); }
.icon--cube .cube-face--right { transform:translate(calc(2.4357px * var(--cube-open)),calc(1.40625px * var(--cube-open))); }
.btn:has(.icon--cube) { transform:none!important; }
:is(a,button):not(:disabled,[aria-disabled="true"]):focus-visible .icon--cube { --cube-open:1; }
@media(hover:hover) and (pointer:fine) {
  :is(a,button):not(:disabled,[aria-disabled="true"]):hover .icon--cube { --cube-open:1; }
}
@media(prefers-reduced-motion:reduce) {
  .icon.icon--cube { --cube-open:0!important; }
  .icon--cube .cube-face { transition:none; }
}
.site-header .cart-button { display:grid; place-items:center; position:relative; width:44px; height:44px; min-width:44px; min-height:44px; }
.site-header .cart-count { position:absolute; right:0; top:0; min-width:18px; height:18px; padding:0 3px; border:2px solid #fff; border-radius:20px; background:#ff6b35; color:white; text-align:center; font-size:9px; font-weight:650; line-height:14px; }
.site-header .menu-toggle { display:none; align-items:center; justify-content:center; flex-shrink:0; min-width:44px; min-height:44px; padding:0; border:0; border-radius:7px; background:transparent; color:#172333; cursor:pointer; }
.site-header .menu-toggle:disabled { visibility:hidden; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:300; background:#cf4a21; color:white; padding:12px 20px; font:600 14px/1.5 Manrope,'Segoe UI',sans-serif; text-decoration:none; }
.skip-link:focus { top:15px; }
.nojs-nav { display:none; }
.site-footer { background:#0c131f; color:#99a8bd; padding:60px 0 24px; }
.site-footer .footer-main { display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:55px; padding-bottom:48px; }
.site-footer .footer-main>div { min-width:0; }
.site-footer .footer-brand .brand img { background:#fff; border-radius:6px; padding:3px; }
.site-footer .footer-brand>p { margin:23px 0; color:#e0e7f0; font-size:22px; font-weight:450; line-height:1.35; letter-spacing:-.045em; }
.site-footer .footer-location { display:flex; align-items:center; gap:7px; font-size:10px; }
.site-footer .status-dot { width:6px; height:6px; border-radius:50%; background:#ff6b35; }
.site-footer .footer-label { display:block; margin:6px 0 24px; font-size:11px; text-transform:uppercase; letter-spacing:.13em; color:#aebed1; }
.site-footer .footer-main>div>a:not(.brand) { display:block; padding-block:4px; margin-bottom:11px; font-size:13px; }
.site-footer .footer-main>div>a.footer-phone { color:#fff; font-size:17px; font-weight:500; letter-spacing:-.04em; white-space:nowrap; }
.site-footer a { text-underline-offset:5px; }
.site-footer a:not(.brand):hover { color:#fff; text-decoration:underline; }
.site-footer .brand:is(:link,:visited,:hover,:focus-visible,:active) { text-decoration:none; }
.site-footer .social-links { display:flex; gap:20px; margin-top:24px; }
.site-footer .social-link { display:flex; align-items:center; gap:7px; min-height:44px; font-size:13px; font-weight:650; }
.site-footer .social-icon { width:17px; height:17px; fill:currentColor; }
.site-footer .social-link--telegram { color:#73c9ed; }
.site-footer .social-link--vk { color:#84b8ff; }
.site-footer .social-link:hover { color:#fff; }
.site-footer .footer-presence { margin:0 0 24px; font-size:12px; color:#b7c2ce; }
.site-footer .footer-bottom { display:flex; align-items:flex-start; gap:32px; border-top:1px solid #283547; padding-top:23px; font-size:13px; color:#71859f; }
.site-footer .footer-bottom>span { margin-right:auto; white-space:nowrap; }
.site-footer .footer-bottom nav { display:flex; flex-wrap:wrap; gap:12px 24px; }
.site-footer .footer-bottom nav a,.site-footer .footer-bottom>a { display:inline-flex; align-items:center; min-height:24px; }
@media(max-width:1250px) {
  .site-header .primary-nav { gap:18px; }
  .site-header .header-inner { gap:20px; }
  .site-header .header-actions { gap:10px; }
  :is(.site-header,.site-footer) .brand>span { font-size:25px; }
  :is(.site-header,.site-footer) .brand img { width:31px; height:31px; }
  .site-header .btn-calculator { padding:10px; }
  .site-footer .footer-main { gap:25px; }
}
@media(max-width:1100px) {
  .site-header .primary-nav { gap:13px; }
  .site-header .primary-nav>a { font-size:12px; }
  .site-header .btn-calculator span { display:none; }
}
@media(max-width:1000px) {
  .site-footer .footer-main { grid-template-columns:1.1fr 1fr 1fr; gap:35px; }
  .site-footer .footer-contacts { grid-column:1/-1; display:flex; align-items:center; gap:25px; border-top:1px solid #283547; padding-top:25px; }
  .site-footer .footer-contacts .footer-label { margin:0 auto 0 0; }
  .site-footer .footer-main>.footer-contacts>a:not(.brand) { margin:0; }
  .site-footer .social-links { margin:0; gap:15px; }
  .site-footer .footer-bottom { gap:20px; }
}
@media(max-width:760px) {
  :is(.site-header,.site-footer,.nojs-nav) { --gutter:22px; }
  .site-header { height:72px; }
  .site-header .header-inner { gap:15px; }
  .site-header .brand img { width:30px; height:30px; }
  .site-header .header-actions { margin-left:auto; gap:11px; }
  .site-header .menu-toggle { display:flex; }
  .site-header .menu-toggle svg { width:23px; }
  .site-header .primary-nav { display:none; position:absolute; left:0; right:0; top:71px; margin:0; flex-direction:column; align-items:stretch; gap:0; }
  .site-header .primary-nav.is-open { display:flex; padding:16px var(--gutter) 24px; border-bottom:3px solid #fa7845; background:#14243a; box-shadow:0 24px 44px #10182730; max-height:calc(100dvh - 72px - env(safe-area-inset-bottom,0px)); overflow-y:auto; overscroll-behavior:contain; }
  .site-header .primary-nav>a { min-height:67px; padding:18px 38px 18px 2px; border-bottom:1px solid #526b825c; color:#f3f7fa; font-size:19px; font-weight:700; }
  .site-header .primary-nav>a:last-child { border-bottom:0; }
  .site-header .primary-nav>a:is(:hover,[aria-current]) { color:#ff9c70; }
  .site-header .primary-nav>a::after { display:block; inset:50% 8px auto auto; width:10px; height:10px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; background:none; transform:translateY(-50%) rotate(45deg); }
  .site-header .primary-nav>a:is(:hover,[aria-current])::after { transform:translateY(-50%) rotate(45deg); }
  .site-header .menu-toggle[aria-expanded=true] { position:relative; }
  .site-header .menu-toggle[aria-expanded=true] svg { opacity:0; }
  .site-header .menu-toggle[aria-expanded=true]::before,.site-header .menu-toggle[aria-expanded=true]::after { content:''; position:absolute; left:50%; top:50%; width:19px; height:2px; border-radius:2px; background:#e55a2b; transform:translate(-50%,-50%) rotate(45deg); }
  .site-header .menu-toggle[aria-expanded=true]::after { transform:translate(-50%,-50%) rotate(-45deg); }
  .nojs-nav { display:block; border-bottom:1px solid #dfe4e8; background:#fff; }
  .nojs-nav summary { min-height:48px; padding-block:12px; cursor:pointer; font-weight:650; }
  .nojs-nav nav .container { display:flex; flex-wrap:wrap; gap:0 20px; padding-block:10px; }
  .nojs-nav a { display:inline-flex; align-items:center; min-height:44px; }
  .site-footer { padding-top:43px; }
  .site-footer .footer-main { grid-template-columns:1fr 1fr; gap:32px 24px; padding-bottom:30px; }
  .site-footer .footer-brand { grid-column:1/-1; display:grid; grid-template-columns:1fr; gap:20px; }
  .site-footer .footer-brand>p { margin:0; font-size:19px; }
  .site-footer .footer-label { margin:0 0 17px; }
  .site-footer .footer-contacts { display:block; }
  .site-footer .footer-contacts .footer-label { margin-bottom:15px; }
  .site-footer .footer-main>.footer-contacts>a:not(.brand) { margin-bottom:12px; }
  .site-footer .footer-main>.footer-contacts>a.footer-phone { font-size:19px; }
  .site-footer .social-links { margin-top:19px; gap:25px; }
  .site-footer .footer-bottom { flex-wrap:wrap; gap:12px 20px; }
  .site-footer .footer-bottom>span { width:100%; }
}
@media(max-width:420px) {
  .site-header .header-inner { gap:12px; }
  .site-header .header-actions { gap:4px; }
  .site-header .brand { gap:7px; }
  .site-header .brand>span { font-size:clamp(21px,6vw,28px); }
}
@media(max-width:370px) {
  :is(.site-header,.site-footer,.nojs-nav) { --gutter:17px; }
  .site-header .brand>span { font-size:21px; }
  .site-header .brand img { width:28px; height:28px; }
  .site-header .header-actions .btn-calculator { display:none; }
}
@media(prefers-reduced-motion:reduce) { .site-header * { transition:none!important; } }
@media print { .site-header,.site-footer,.nojs-nav { display:none; } }
