/*
 * Autore:   Carlo Zamponi <c.zamponi@bearsoftware.it>
 * Progetto: studioniro_wp (bs-theme-studioniro)
 * Git:      https://git.bearsoftware.it/cst-studioniro/studioniro_wp.git
 * Licenza:  Proprietaria - Bear Software Group - Vietata la diffusione
 *
 * Stili tema Studio NiRò su Bootstrap 5.
 */

@font-face {
	font-family: "ProximaNova";
	src: url("../fonts/proximanova-regular-webfont.woff2") format("woff2"),
	     url("../fonts/proximanova-regular-webfont.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "ProximaNova";
	src: url("../fonts/proximanova-semibold-webfont.woff2") format("woff2"),
	     url("../fonts/proximanova-semibold-webfont.woff") format("woff");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "ProximaNova";
	src: url("../fonts/proximanova-bold-webfont.woff2") format("woff2"),
	     url("../fonts/proximanova-bold-webfont.woff") format("woff");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

:root {
	--bsn-blue: #5f95d3;
	--bsn-blue-deep: #3f6ea8;
	--bsn-ink: #333333;
	--bsn-slate: #545454;
	--bsn-mist: #f0f4f9;
	--bsn-band: #253a52;

	--bs-primary: #5f95d3;
	--bs-primary-rgb: 95, 149, 211;
	--bs-link-color: #3f6ea8;
	--bs-link-hover-color: #3f6ea8;
	--bs-body-font-family: "ProximaNova", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--bs-body-color: #545454;
}

.btn-primary {
	--bs-btn-bg: #5f95d3;
	--bs-btn-border-color: #5f95d3;
	--bs-btn-hover-bg: #3f6ea8;
	--bs-btn-hover-border-color: #3f6ea8;
	--bs-btn-active-bg: #3f6ea8;
	--bs-btn-active-border-color: #3f6ea8;
}

body { background: #fff; }

/* ── Header ─────────────────────────────────────────────────────────── */
.bsn-header { background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid #e5ecf4; }
.bsn-header.scrolled { box-shadow: 0 6px 18px rgba(29, 56, 92, 0.08); }
.navbar-brand { display: inline-flex; align-items: center; gap: 0.55rem; }
.bsn-brand-mark {
	display: inline-grid; place-items: center;
	width: 2rem; height: 2rem; border-radius: 8px;
	background: var(--bsn-blue); color: #fff; font-weight: 700;
}
.bsn-brand-name { font-weight: 700; color: var(--bsn-ink); margin: 0; }
.navbar-brand .bsn-brand-name { font-weight: 700; color: var(--bsn-ink); }
.navbar-nav .nav-link { color: var(--bsn-slate); font-weight: 600; }
.navbar-nav .nav-link:hover { color: var(--bsn-blue-deep); }

/* ── Hero ───────────────────────────────────────────────────────────── */
.bsn-hero {
	position: relative;
	background-size: cover;
	background-position: center;
	background-color: var(--bsn-band);
	display: flex;
	align-items: center;
	padding: 5rem 0;
	min-height: min(78vh, 640px);
}
.bsn-hero::after,
.bsn-hero-veil {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(104deg, rgba(29, 56, 92, 0.90) 8%, rgba(63, 110, 168, 0.55) 58%, rgba(95, 149, 211, 0.18) 100%);
}
.bsn-hero .container { position: relative; z-index: 1; }
.bsn-hero-title {
	font-size: clamp(2rem, 4.6vw, 3.3rem);
	font-weight: 700; line-height: 1.08; letter-spacing: -0.01em;
	color: #fff; margin: 1rem 0 1.25rem;
}
.bsn-hero-sub { color: #e6eef8; font-size: 1.05rem; max-width: 36rem; }

/* ── Sezioni comuni ─────────────────────────────────────────────────── */
.bsn-section { padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
.bsn-section-alt { background: var(--bsn-mist); }
.bsn-sec-head { max-width: 46rem; margin: 0 auto 2.5rem; }
.bsn-sec-head:not(.text-center) { margin-left: 0; }
.bsn-eyebrow {
	font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--bsn-blue-deep); margin-bottom: 0.5rem;
}
.bsn-eyebrow-light { color: #9cc0ea; }
.bsn-h2 { font-weight: 700; color: var(--bsn-ink); letter-spacing: -0.01em; }
.bsn-lead { color: var(--bsn-slate); }

/* ── Why choose us ──────────────────────────────────────────────────── */
.bsn-value {
	padding: 1.75rem 1.5rem; border-radius: 12px;
	background: #fff; border: 1px solid #dbe3ee;
}
.bsn-value-icon {
	display: inline-block; width: 0.85rem; height: 0.85rem; border-radius: 4px;
	background: var(--bsn-blue); margin-bottom: 1rem;
}
.bsn-value-title { font-size: 1.05rem; font-weight: 700; color: var(--bsn-ink); }
.bsn-value-text { font-size: 0.92rem; color: var(--bsn-slate); margin: 0; }

/* ── Sale ───────────────────────────────────────────────────────────── */
.bsn-room { overflow: hidden; border-radius: 14px; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.bsn-room:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(29, 56, 92, 0.14) !important; }
.bsn-room .card-img-top { aspect-ratio: 4 / 3; object-fit: cover; }
.bsn-room-title { font-size: 1.1rem; font-weight: 700; color: var(--bsn-ink); margin: 0; }
.bsn-room-mq { font-weight: 700; color: var(--bsn-blue-deep); background: #e8f0fa; padding: 0.25rem 0.6rem; border-radius: 999px; font-size: 0.8rem; white-space: nowrap; }
.bsn-room-desc { font-size: 0.9rem; color: var(--bsn-slate); margin: 0.75rem 0 0; }
.bsn-room-note { color: var(--bsn-slate); }

/* ── Online fieldwork ───────────────────────────────────────────────── */
.bsn-online { background: var(--bsn-band); padding: clamp(3rem, 6vw, 4.5rem) 0; }
.bsn-online-text { color: #c9d4e2; font-size: 1.02rem; max-width: 44rem; }

/* ── Our numbers ────────────────────────────────────────────────────── */
.bsn-numbers { background: #2a2d34; padding: clamp(3.5rem, 7vw, 5rem) 0; }
.bsn-num { font-size: clamp(2.4rem, 5vw, 3.5rem); font-weight: 700; color: #fff; line-height: 1; }
.bsn-num-label { color: #aab4c4; font-size: 0.9rem; margin-top: 0.5rem; }

/* ── Services ───────────────────────────────────────────────────────── */
.bsn-service { padding: 1.75rem 1.5rem; border-radius: 12px; background: var(--bsn-mist); }
.bsn-service-title { font-size: 1.05rem; font-weight: 700; color: var(--bsn-ink); }
.bsn-service-text { font-size: 0.92rem; color: var(--bsn-slate); margin: 0.5rem 0 0; }

/* ── CTA ────────────────────────────────────────────────────────────── */
.bsn-cta { background: linear-gradient(120deg, var(--bsn-band), #3f6ea8); padding: clamp(3.5rem, 7vw, 5rem) 0; }
.bsn-cta-text { color: #c9d4e2; font-size: 1.05rem; }

/* ── Footer ─────────────────────────────────────────────────────────── */
.bsn-footer { background: #23262b; color: #b6bfcc; padding: 3rem 0 1.5rem; }
.bsn-footer-title { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.12em; color: #fff; font-weight: 700; }
.bsn-footer-text { font-size: 0.92rem; }
.bsn-footer a { color: #cfe0f5; text-decoration: none; }
.bsn-footer a:hover { color: #fff; }
.bsn-footer-bottom { border-top: 1px solid #33363c; margin-top: 2.5rem; padding-top: 1.25rem; font-size: 0.82rem; color: #7f8897; }
.bsn-footer .bsn-brand-name { color: #fff; }

@media (prefers-reduced-motion: reduce) {
	.bsn-room { transition: none; }
}
/* ── Pagine generiche (fallback) ────────────────────────────────────── */
.bsn-generic { padding: clamp(2.5rem, 6vw, 4rem) 0 4rem; }
.bsn-generic-article { max-width: 50rem; margin: 0 auto; }
.bsn-generic-thumb { width: 100%; border-radius: 12px; margin-bottom: 1.5rem; }
.bsn-generic-content { color: var(--bsn-slate); font-size: 1rem; line-height: 1.65; }
.bsn-generic-content a { color: var(--bsn-blue-deep); }
