/* Vivere — Bootstrap-based custom theme (no SVG). Minimum font-size 16px */
:root{
  --bg:#0b1220;
  --panel:#0f1a2e;
  --panel2:#111f37;
  --ink:#eaf1ff;
  --muted:#b7c3da;
  --line: rgba(234,241,255,.14);
  --accent:#ff4d8d;    /* pink */
  --accent2:#22c55e;   /* green */
  --accent3:#60a5fa;   /* blue */
  --shadow: 0 22px 70px rgba(0,0,0,.45);
  --r: 22px;
}

html{scroll-behavior:smooth}
body{
  font-size:16px;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(900px 520px at 10% 0%, rgba(96,165,250,.28), transparent 55%),
    radial-gradient(900px 520px at 90% 20%, rgba(255,77,141,.22), transparent 58%),
    radial-gradient(900px 520px at 70% 90%, rgba(34,197,94,.18), transparent 58%),
    linear-gradient(180deg, var(--bg), #070b14 62%, #060911);
  color:var(--ink);
}

a{color:inherit; text-decoration:none}
a:hover{color:var(--ink)}
img{max-width:100%; height:auto; display:block}
.small-muted{color:var(--muted)}
.hr-soft{height:1px; background:var(--line);}

.navbar{
  background: rgba(11,18,32,.72) !important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.brand-badge{
  width:42px; height:42px;
  border-radius:16px;
  background: linear-gradient(135deg, var(--accent3), var(--accent));
  box-shadow: 0 18px 50px rgba(96,165,250,.18);
}
.nav-link{
  color: rgba(234,241,255,.78) !important;
  font-weight: 800;
  border-radius: 14px;
  padding: .55rem .8rem !important;
}
.nav-link:hover{
  background: rgba(96,165,250,.10);
  color: var(--ink) !important;
}
.btn-vivere{
  border-radius: 18px;
  font-weight: 900;
  padding: .8rem 1rem;
  border: 1px solid var(--line);
  color: var(--ink);
  background: rgba(15,26,46,.55);
}
.btn-vivere:hover{transform: translateY(-1px); box-shadow: 0 18px 60px rgba(0,0,0,.35)}
.btn-vivere-primary{
  border: none;
  background: linear-gradient(135deg, var(--accent), var(--accent3));
}
.btn-vivere-secondary{
  border: none;
  background: linear-gradient(135deg, var(--accent2), #16a34a);
  color: #08121d;
}
.badge-soft{
  border:1px solid var(--line);
  background: rgba(15,26,46,.60);
  color: rgba(234,241,255,.85);
  border-radius: 999px;
  padding: .45rem .75rem;
  font-weight: 900;
}
.badge-soft i{color: var(--accent)}

.section{
  padding: 84px 0;
}
.section-sm{padding: 58px 0;}
.panel{
  border:1px solid var(--line);
  background: rgba(15,26,46,.55);
  border-radius: var(--r);
  box-shadow: var(--shadow);
}
.cardx{
  border:1px solid var(--line);
  background: rgba(17,31,55,.55);
  border-radius: var(--r);
  box-shadow: 0 18px 60px rgba(0,0,0,.32);
}
.iconbox{
  width:48px; height:48px;
  border-radius: 18px;
  display:grid; place-items:center;
  border:1px solid rgba(234,241,255,.18);
  background: rgba(96,165,250,.10);
  color: var(--accent3);
  font-size: 18px;
}
.iconbox.pink{background: rgba(255,77,141,.12); color: var(--accent)}
.iconbox.green{background: rgba(34,197,94,.12); color: var(--accent2)}
.lead{
  color: rgba(234,241,255,.78);
  font-size: 18px;
}
.hero-media{
  overflow:hidden;
  border-radius: var(--r);
  border:1px solid var(--line);
  position:relative;
  min-height: 420px;
}
.hero-media img{width:100%; height:100%; object-fit:cover; min-height:420px; filter:saturate(1.06) contrast(1.04)}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(600px 380px at 25% 25%, rgba(255,77,141,.28), transparent 55%),
              linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.45));
}

.list-check{
  display:grid; gap:.55rem;
}
.list-check .rowx{
  display:flex; gap:.6rem; align-items:flex-start;
  color: rgba(234,241,255,.86);
  font-weight: 700;
}
.list-check .rowx i{color: var(--accent2); margin-top:.15rem}

.form-control, .form-select{
  border-radius: 18px !important;
  border: 1px solid var(--line) !important;
  background: rgba(17,31,55,.55) !important;
  color: var(--ink) !important;
  padding: .8rem .9rem !important;
  font-size: 16px !important;
}
.form-control::placeholder{color: rgba(183,195,218,.8)}
.form-label{font-weight: 900}
.footer{
  border-top: 1px solid var(--line);
  background: rgba(6,9,17,.72);
  padding: 42px 0;
}
.footer a{color: rgba(234,241,255,.78); font-weight: 800}
.footer a:hover{color: var(--ink)}
.mini-card{
  border:1px solid var(--line);
  border-radius: 18px;
  background: rgba(15,26,46,.55);
  padding: 14px;
}
.mini-card i{color: var(--accent3)}
.cookie{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:999;
  border:1px solid var(--line);
  border-radius: 20px;
  background: rgba(11,18,32,.86);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  padding: 14px;
}
.cookie a{text-decoration: underline; text-underline-offset: 3px}

.modalx{
  position:fixed; inset:0; z-index:1000;
  display:none;
  background: rgba(0,0,0,.55);
  padding: 16px;
}
.modalx.active{display:grid; place-items:center}
.modalx-card{
  width:min(620px, 96%);
  border-radius: 24px;
  border: 1px solid rgba(234,241,255,.18);
  background: rgba(15,26,46,.92);
  box-shadow: var(--shadow);
  padding: 18px;
}
.modalx-close{
  border:none;
  background: transparent;
  color: rgba(234,241,255,.75);
  font-size: 22px;
  cursor:pointer;
}
.modalx-close:hover{color: var(--ink)}
.note{color: rgba(183,195,218,.92); font-size: 13px;}

@media (max-width: 991px){
  .hero-media, .hero-media img{min-height:320px}
}

.navbar-dark .navbar-toggler{border:1px solid var(--line) !important; border-radius:16px;}
.navbar-dark .navbar-toggler-icon{filter: brightness(1.2);}
