/* ============================================================
   Instroi — footer (Figma 106:634) + floating call button (110:682).
   Dark body (#334659) with a deeper bottom band (#1f3346).
   ============================================================ */

.site-footer {
	background: var(--c-dark);
	color: var(--c-on-dark-muted);
	font-size: var(--fs-small);
}
.site-footer a { color: var(--c-on-dark-muted); text-decoration: none; }
.site-footer a:hover { color: var(--c-white); }

.site-footer__main { padding-block: clamp(40px, 6vw, 64px); }

.site-footer__grid {
	display: grid;
	gap: 40px var(--gap-lg);
}
@media (min-width: 640px) {
	.site-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
	.site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; }
}

/* Brand column */
.site-footer__brand img { max-height: 44px; width: auto; opacity: 0.85; }
.site-footer__brand .site-title { font-size: 24px; color: var(--c-on-dark-muted); }
.site-footer__desc { margin: 20px 0 0; line-height: 1.6; }
.site-footer__copy { margin: 16px 0 0; }

/* Nav columns */
.site-footer__title {
	margin: 0 0 16px;
	font-size: var(--fs-small);
	font-weight: 700;
	color: var(--c-on-dark);
}
.site-footer__menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

/* Contacts column */
.site-footer__contacts { display: grid; gap: 10px; }
.site-footer__contacts p { margin: 0; }
.site-footer__contacts .phone { font-weight: 700; color: var(--c-on-dark); }
.site-footer__contacts .phone:hover { color: var(--c-white); }

.site-footer__social {
	display: flex;
	gap: 12px;
	margin-top: 6px;
}
.site-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; /* ≥44px tap target */
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	transition: border-color var(--transition), color var(--transition), background var(--transition);
}
.site-footer__social a:hover {
	color: var(--c-white);
	border-color: var(--c-primary);
	background: var(--c-primary);
}

/* Bottom band */
.site-footer__bottom {
	background: var(--c-dark-deep);
	padding-block: 18px;
}
.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	align-items: center;
}

/* ============================================================
   Floating action stack (.c-fab) — Figma 110:682.
   A right-hand column of 54px buttons (messenger shortcuts +
   scroll-to-top). It is offset up from the corner so the Binotel
   «getcall» call button (injected bottom-right by instroi-core)
   sits below it as the bottom of the same stack.
   ============================================================ */
.c-fab {
	position: fixed;
	right: clamp(12px, 2vw, 24px);
	bottom: clamp(140px, 16vh, 160px);  /* clear the Binotel getcall button (with its pulsing ring) below */
	z-index: 90;
	display: flex;
	flex-direction: column;
	gap: 12px;
	pointer-events: none;               /* children re-enable — an empty stack ignores clicks */
}

.c-fab__btn {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	color: var(--c-white);
	background: var(--c-primary);
	border: 0;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(31, 51, 70, 0.22);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--transition), transform var(--transition);
}
.c-fab__btn:hover { background: var(--c-primary-light); transform: translateY(-2px); }
.c-fab__btn:active { background: var(--c-primary-dark); transform: translateY(0); }
.c-fab__btn:focus-visible { outline: none; box-shadow: var(--focus-ring), 0 8px 24px rgba(31, 51, 70, 0.22); }

.c-fab__btn--telegram { background: #29a9eb; }
.c-fab__btn--telegram:hover { background: #34b7f1; }
.c-fab__btn--viber { background: #7360f2; }
.c-fab__btn--viber:hover { background: #8a79ff; }

/* Scroll-to-top: hidden until main.js reveals it after scrolling.
   Needed because .c-fab__btn sets display:inline-flex, which would
   otherwise win over the UA [hidden] rule. */
.c-fab__top[hidden] { display: none; }

@media (max-width: 600px) {
	.c-fab { bottom: clamp(130px, 34vw, 150px); gap: 10px; }
	.c-fab__btn { width: 48px; height: 48px; border-radius: 10px; }
}

@media print {
	.c-fab { display: none; }
}
