* {
box-sizing: border-box;
}

body {
margin: 0;
font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: #f9fafb;
background: radial-gradient(circle at top, #020617 0, #020617 42%, #020617 60%, #000 100%);
-webkit-font-smoothing: antialiased;
}

a {
text-decoration: none;
color: inherit;
}

img {
max-width: 100%;
display: block;
}

/* ============ LAYOUT BASE ============ */

.container {
width: 100%;
max-width: 1120px;
margin: 0 auto;
padding: 0 16px;
}

.section {
padding: 64px 0;
position: relative;
}

.section-head {
text-align: center;
margin-bottom: 32px;
}

.section-head h2 {
font-size: clamp(26px, 3vw, 32px);
letter-spacing: .14em;
text-transform: uppercase;
margin: 0 0 10px;
}

.section-head .pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 14px;
border-radius: 999px;
font-size: .8rem;
background: rgba(17, 15, 42, 0.85);
border: 1px solid rgba(150, 148, 184, 0.3);
color: #cbd5f5;
}

.pill i {
font-size: .85rem;
color: var(--accent-1, #2825eb);
}

/* ================= BG DINAMICO ================= */

.bg-blur,
.bg-orbit {
position: fixed;
pointer-events: none;
z-index: -1;
}

.bg-blur {
inset: 0;
background:
  radial-gradient(circle at 0 0, rgba(62, 59, 246, 0.18), transparent 55%),
  radial-gradient(circle at 100% 0, rgba(40, 37, 235, 0.16), transparent 55%),
  radial-gradient(circle at 50% 100%, rgba(69, 56, 248, 0.14), transparent 55%);
mix-blend-mode: screen;
opacity: .9;
}

.bg-orbit {
width: 420px;
height: 420px;
border-radius: 999px;
border: 1px solid rgba(149, 148, 184, 0.2);
box-shadow: 0 0 80px rgba(62, 59, 246, 0.4);
opacity: .18;
}

.orbit-1 {
top: 10%;
left: -10%;
}

.orbit-2 {
bottom: -12%;
right: -8%;
}

/* ================= HEADER ================= */

#site-header {
position: sticky;
top: 0;
z-index: 40;
backdrop-filter: blur(22px);
background: linear-gradient(to bottom, rgba(15, 15, 42, 0.94), rgba(15, 17, 42, 0.86), transparent);
border-bottom: 1px solid rgba(150, 148, 184, 0.25);
}

.nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 0;
gap: 18px;
}

.brand {
display: inline-flex;
align-items: center;
gap: 8px;
font-weight: 600;
letter-spacing: .16em;
text-transform: uppercase;
font-size: .78rem;
}

.logo-box {
width: 38px;
height: 38px;
border-radius: 14px;
background: radial-gradient(circle at 30% 0, #eff6ff, #1d29d8);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
border: 1px solid rgba(15, 15, 42, 0.9);
box-shadow: 0 0 18px rgba(40, 37, 235, 0.6);
}

.logo-box img {
width: 72%;
}

.menu {
display: flex;
align-items: center;
gap: 14px;
font-size: .86rem;
}

.menu a {
padding: 6px 10px;
border-radius: 999px;
color: #e5e5eb;
opacity: .9;
}

.menu a:hover {
background: rgba(17, 15, 42, 0.85);
opacity: 1;
}

.menu .cta {
background: linear-gradient(135deg, #2825eb, #3b38f8);
color: #0b1021;
font-weight: 600;
padding-inline: 16px;
box-shadow: 0 0 20px rgba(40, 37, 235, 0.7);
}

.menu .cta:hover {
transform: translateY(-1px);
}

@media (max-width: 900px) {
.menu {
  display: none; /* per ora menu desktop only */
}
}

/* ================= BUTTON BASE ================= */

.btn {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 10px 18px;
border-radius: 999px;
border: 1px solid rgba(148, 150, 184, 0.5);
font-size: .9rem;
font-weight: 500;
cursor: pointer;
background: radial-gradient(circle at 0 0, rgba(62, 59, 246, 0.15), gb(15, 15, 42));
color: #e5e5eb;
gap: 8px;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}

.btn.primary {
border-color: rgba(40, 37, 235, 0.85);
background: linear-gradient(135deg, #2825eb, #3b38f8);
color: #020317;
box-shadow: 0 0 25px rgba(40, 37, 235, 0.7);
}

.btn:hover {
transform: translateY(-1px);
box-shadow: 0 15px 30px rgba(17, 15, 42, 0.85);
}

.btn.primary:hover {
box-shadow: 0 18px 40px rgba(57, 37, 235, 0.9);
}

/* =============== HERO ================= */

.hero {
padding-top: 110px;
padding-bottom: 56px;
}

.hero-grid {
display: grid;
grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.4fr);
gap: 32px;
align-items: center;
}

@media (max-width: 960px) {
.hero {
  padding-top: 96px;
  padding-bottom: 40px;
}
.hero-grid {
  grid-template-columns: minmax(0,1fr);
}
}

.hero-copy .kicker {
text-transform: uppercase;
letter-spacing: .22em;
font-size: .78rem;
color: #9395fd;
font-weight: 700;
margin-bottom: 10px;
}

.hero-title-row {
display: flex;
align-items: baseline;
gap: 10px;
margin-bottom: 4px;
}

.hero-title-row h1 {
font-size: clamp(40px, 6vw, 64px);
letter-spacing: .16em;
margin: 0;
}

.hero-title-row .dot {
width: 9px;
height: 9px;
border-radius: 999px;
background: radial-gradient(circle at 30% 30%, #ffffff, #2825eb);
box-shadow: 0 0 18px rgba(57, 37, 235, 0.9);
}

.hero-underline {
width: 100%;
max-width: 260px;
height: 2px;
border-radius: 999px;
background: linear-gradient(90deg, #2825eb, #3b38f8, transparent);
opacity: .8;
margin: 6px 0 14px;
}

.hero .lead {
max-width: 440px;
font-size: .98rem;
color: #e5e5eb;
}

.actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 18px;
margin-bottom: 10px;
}

.actions .btn.secondary-ghost {
background: rgba(15, 15, 42, 0.7);
border-style: dashed;
border-color: rgba(150, 148, 184, 0.7);
font-size: .85rem;
}

.badges {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 10px;
}

.badge {
padding: 4px 10px;
border-radius: 999px;
border: 1px solid rgba(148, 149, 184, 0.45);
background: rgba(15, 15, 42, 0.96);
font-size: .78rem;
color: #9c9caf;
display: inline-flex;
align-items: center;
gap: 6px;
}

.badge i {
font-size: .8rem;
color: #2825eb;
}

/* ======= HERO VISUAL / BANNER ======= */
.hero-visual {
position: relative;
display: flex;
flex-direction: column;
gap: 12px;
}

.hero-banner {
position: relative;
border-radius: 22px;
overflow: hidden;
border: 1px solid rgba(148, 150, 184, 0.32);
background:
  radial-gradient(circle at top left, rgba(0, 4, 255, 0.2), transparent 55%),
  rgba(6, 6, 23, 0.98);
box-shadow: 0 20px 50px rgba(0,0,0,.85);
isolation: isolate;
}

.hero-banner img {
width: 100%;
height: 210px;
object-fit: cover;
display: block;
opacity: .96;
filter: saturate(1.1);
}

@media (max-width: 600px) {
.hero-banner img {
  height: 190px;
}
}

.hero-banner-top {
position: absolute;
inset: 0;
padding: 10px 12px;
display: flex;
justify-content: space-between;
align-items: flex-start;
pointer-events: none;
}

.hero-pill {
pointer-events: auto;
font-size: .75rem;
padding: 4px 10px;
border-radius: 999px;
border: 1px solid rgba(255,255,255,.25);
background: rgba(3, 3, 18, 0.92);
display: inline-flex;
align-items: center;
gap: 6px;
color: #e5e5eb;
}

.hero-pill i {
font-size: .75rem;
color: #2825eb;
}

.hero-stack {
pointer-events: auto;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 4px;
}

.hero-tag {
font-size: .72rem;
padding: 3px 9px;
border-radius: 999px;
background: rgba(0,0,0,.72);
border: 1px solid rgba(255,255,255,.22);
color: #e5e5eb;
}

.hero-banner-bottom {
position: absolute;
inset-inline: 0;
bottom: 0;
padding: 10px 14px 12px;
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 10px;
background: linear-gradient(to top, rgba(2,6,23,.97), transparent);
}

.hero-banner-title {
display: flex;
flex-direction: column;
gap: 2px;
}

.hero-banner-title span {
font-size: .7rem;
text-transform: uppercase;
letter-spacing: .18em;
color: #9c9caf;
}

.hero-banner-title strong {
font-size: .92rem;
}

.hero-mini-metrics {
display: flex;
gap: 10px;
font-size: .75rem;
}

.hero-mini-metrics div {
display: flex;
flex-direction: column;
gap: 0;
text-align: right;
}

.hero-mini-metrics b {
font-size: .86rem;
}

.hero-mini-metrics small {
font-size: .7rem;
color: #9c9caf;
}

/* ====== HERO STAT BAR SOTTO ====== */
.hero-stat-bar {
display: flex;
flex-wrap: wrap;
gap: 10px;
font-size: .8rem;
}

.hero-stat-pill {
flex: 1;
min-width: 160px;
padding: 8px 10px;
border-radius: 14px;
border: 1px solid rgba(149, 148, 184, 0.38);
background: radial-gradient(circle at 0 0, rgba(50, 37, 235, 0.12), rgba(15, 15, 42, 0.98));
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}

.hero-stat-pill span {
color: #9c9caf;
font-size: .8rem;
}

.hero-stat-pill strong {
font-size: .88rem;
}

@media (max-width: 600px) {
.hero-stat-bar {
  flex-direction: column;
}
}

/* ============== TRUST BAR ============== */

.trust {
border-top: 1px solid rgba(148, 149, 184, 0.35);
border-bottom: 1px solid rgba(148, 149, 184, 0.18);
background: radial-gradient(circle at top, rgba(15, 15, 42, 0.96), rgba(15, 15, 42, 0.96));
}

.trust .row {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
padding: 14px 0;
font-size: .78rem;
text-transform: uppercase;
letter-spacing: .16em;
color: #9c9caf;
}

.trust span {
color: #e5e5eb;
}

/* ============== SERVICES ============== */

#servizi {
padding-top: 56px;
padding-bottom: 40px;
}

.services-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
}

@media (max-width: 960px) {
.services-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 640px) {
.services-grid {
  grid-template-columns: minmax(0, 1fr);
}
}

.project-card {
position: relative;
border-radius: 18px;
padding: 10px 10px 14px;
background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent, #2825eb) 20%, #020617 80%), #020617);
border: 1px solid rgb(15, 15, 42);
box-shadow: 0 16px 32px rgba(15, 15, 42, 0.9);
overflow: hidden;
}

.project-card::before {
content: "";
position: absolute;
inset: -1px;
border-radius: inherit;
border: 1px solid color-mix(in srgb, var(--accent, #2825eb) 45%, transparent);
opacity: .7;
pointer-events: none;
}

.project-image {
width: 100%;
border-radius: 14px;
margin-bottom: 10px;
}

.project-card h3 {
font-size: 1rem;
margin: 0 0 6px;
letter-spacing: .06em;
text-transform: uppercase;
}

.project-card p {
font-size: .86rem;
margin: 0;
color: #cbd5f5;
}

/* ==== “ECOSISTEMA NOS” RIGA SEPARATORE ===== */

.ecosystem-strip {
margin: 40px auto 0;
max-width: 880px;
border-radius: 999px;
padding: 10px 18px;
background: radial-gradient(circle at 0 0, rgba(62, 59, 246, 0.3), rgb(15, 15, 42));
border: 1px solid rgba(149, 148, 184, 0.4);
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
justify-content: space-between;
font-size: .8rem;
}

.ecosystem-strip span.label {
text-transform: uppercase;
letter-spacing: .2em;
font-weight: 600;
font-size: .75rem;
color: #bfdbfe;
}

.ecosystem-strip .tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
}

.ecosystem-strip .tags span {
padding: 3px 9px;
border-radius: 999px;
background: rgba(15, 15, 42, 0.9);
border: 1px solid rgba(148, 150, 184, 0.5);
color: #e5e5eb;
}

/* ============== PROJECTS / PORTFOLIO ============== */

.projects {
padding-top: 52px;
padding-bottom: 44px;
}

.projects-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
}

@media (max-width: 960px) {
.projects-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 640px) {
.projects-grid {
  grid-template-columns: minmax(0, 1fr);
}
}

.project-card a img {
transition: transform .25s ease;
}

.project-card:hover a img {
transform: translateY(-4px) scale(1.02);
}

.project-socials {
display: flex;
gap: 6px;
margin: 6px 0 8px;
}

.social-btn {
width: 26px;
height: 26px;
border-radius: 999px;
border: 1px solid rgba(148, 149, 184, 0.6);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: .78rem;
background: rgba(15, 15, 42, 0.96);
}

.social-btn i {
color: #e5e5eb;
}

.social-btn:hover {
transform: translateY(-1px);
border-color: color-mix(in srgb, var(--accent, #2825eb) 60%, #e5e7eb 40%);
}

/* ============== CONTACT ============== */

#contatti {
padding-top: 56px;
padding-bottom: 56px;
border-top: 1px solid rgba(150, 148, 184, 0.25);
}

.split {
display: grid;
grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr);
gap: 24px;
align-items: flex-start;
}

@media (max-width: 900px) {
.split {
  grid-template-columns: minmax(0,1fr);
}
}

.panel {
border-radius: 20px;
border: 1px solid rgba(148, 149, 184, 0.35);
background: radial-gradient(circle at 0 0, rgba(62, 59, 246, 0.15), rgba(15, 15, 42, 0.98));
box-shadow: 0 20px 40px rgba(15, 15, 42, 0.9);
padding: 18px 18px 20px;
}

#contact-form .row {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
margin-bottom: 10px;
}

@media (max-width: 640px) {
#contact-form .row {
  grid-template-columns: minmax(0,1fr);
}
}

input,
textarea {
width: 100%;
border-radius: 12px;
border: 1px solid rgba(148, 149, 184, 0.6);
padding: 9px 10px;
background: rgba(15, 15, 42, 0.96);
color: #e5e5eb;
font-size: .9rem;
outline: none;
}

input:focus,
textarea:focus {
border-color: #2825eb;
box-shadow: 0 0 0 1px rgba(57, 37, 235, 0.7);
}

textarea {
min-height: 120px;
resize: vertical;
margin-bottom: 10px;
}

.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
}

.hint {
margin-top: 6px;
font-size: .8rem;
color: #cbd5f5;
}

.hint a {
color: #2528eb;
}

.panel h3 {
margin-top: 0;
margin-bottom: 6px;
font-size: 1.05rem;
letter-spacing: .08em;
text-transform: uppercase;
}

.panel p.small {
font-size: .86rem;
color: #e5e5eb;
}

.socials {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 8px;
margin-bottom: 12px;
}

.socials a {
font-size: .82rem;
padding: 5px 10px;
border-radius: 999px;
border: 1px solid rgba(148, 150, 184, 0.5);
background: rgba(15, 15, 42, 0.96);
}

.socials a:hover {
border-color: #2528eb;
}

/* ============== FOOTER ============== */

.footer {
border-top: 1px solid rgba(150, 148, 184, 0.3);
background: radial-gradient(circle at top, rgb(15, 15, 42), #020217);
padding: 26px 0 20px;
}

.footer-inner {
font-size: .86rem;
color: #9c9caf;
}

.footer-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-bottom: 18px;
}

@media (max-width: 640px) {
.footer-top {
  flex-direction: column;
  align-items: flex-start;
}
}

.footer-logo {
display: flex;
align-items: center;
gap: 10px;
}

.footer-logo img {
width: 32px;
height: 32px;
border-radius: 12px;
}

.footer-logo h3 {
margin: 0;
font-size: 1rem;
letter-spacing: .12em;
text-transform: uppercase;
}

.footer-socials {
display: flex;
gap: 10px;
font-size: 1rem;
}

.footer-socials a {
width: 28px;
height: 28px;
border-radius: 999px;
border: 1px solid rgba(148, 149, 184, 0.6);
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(15, 15, 42, 0.96);
}

.footer-socials a i {
color: #e5e5eb;
}

.footer-grid {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) minmax(0, .7fr);
gap: 18px;
margin-bottom: 14px;
}

@media (max-width: 900px) {
.footer-grid {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
}
}

@media (max-width: 640px) {
.footer-grid {
  grid-template-columns: minmax(0,1fr);
}
}

.footer-grid h4 {
margin: 0 0 6px;
font-size: .9rem;
text-transform: uppercase;
letter-spacing: .14em;
color: #e5e5eb;
}

.footer-grid p.small a {
color: #e5e5eb;
}

.footer-bottom {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 6px;
font-size: .78rem;
color: #9c9caf;
border-top: 1px solid rgba(148, 149, 184, 0.35);
padding-top: 8px;
margin-top: 6px;
}

.footer-bottom p {
margin: 0;
}

/* ====== COLOR OVERRIDE ONMI ====== */
body.page-onmi .hero-title-row .dot {
background: radial-gradient(circle at 30% 30%, #ffffff, #2825eb);
box-shadow: 0 0 18px #2528ebe6;
}
body.page-onmi .hero-underline {
background: linear-gradient(90deg, #2532eb, #383bf8, transparent);
}
body.page-onmi .btn.primary {
background: linear-gradient(135deg, #2825eb, #383bf8);
border-color: #3225eb;
box-shadow: 0 0 25px #2528ebcc;
color: #020317;
}
body.page-onmi .badge i,
body.page-onmi .hero-pill i {
color: #3225eb;
}
body.page-onmi .trust span {
color: #2528eb;
}
body.page-onmi .hero-banner {
background:
  radial-gradient(circle at top left, #3b38f833, transparent 55%),
  rgba(6, 6, 23, 0.98);
}