/* ===== BASE ===== */
html, body { height: 100%; }
body {
  background: #000;
  color: #e8e8e8;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.text-secondary { color: #adb5bd !important; }
a { text-decoration: none; }

/* ===== NAVBAR / LOGO ===== */
.logo { height: 28px; display: block; }

/* ===== TYPE SCALE (compat, no clamp) ===== */
.display-xl { font-weight:700; letter-spacing:-0.02em; line-height:1.1; font-size:2.75rem; }
.title-xl   { font-weight:700; letter-spacing:-0.02em; line-height:1.12; font-size:2.25rem; }
.cta-title  { font-weight:700; letter-spacing:-0.02em; line-height:1.05; font-size:2.6rem; }
.lead-muted { color:#c9cfd6; font-size:1.1rem; }
@media (min-width:576px){ .display-xl{font-size:3rem;} .title-xl{font-size:2.4rem;} .cta-title{font-size:2.8rem;} }
@media (min-width:992px){ .display-xl{font-size:3.6rem;} .title-xl{font-size:2.8rem;} .cta-title{font-size:3.2rem;} }

/* ===== SECTION / BACKGROUNDS ===== */
section { scroll-margin-top: 84px; }
.bg-dark-soft { background: rgba(255,255,255,.03); }
.border-secondary-subtle { border-color: rgba(255,255,255,.08) !important; }

/* ===== IMAGE FRAMES (padding-top fallback, no aspect-ratio) ===== */
.img-frame {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.06);
  background: #0b0b0b;
}
.frame-16x10,
.frame-16x7,
.frame-3x2,
.frame-4x3 {
  position: relative; width:100%; height:0; overflow:hidden;
  border-radius:16px; box-shadow:0 12px 26px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.06); background:#0b0b0b;
}
.frame-16x10 { padding-top:62.5%; }   /* 16:10 */
.frame-16x7  { padding-top:43.75%; }  /* 16:7  */
.frame-3x2   { padding-top:66.6667%; }/* 3:2   */
.frame-4x3   { padding-top:75%; }     /* 4:3   */

.frame-16x10>img, .frame-16x7>img, .frame-3x2>img, .frame-4x3>img, .img-frame>img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
@media (max-width:991.98px){
  .frame-16x10, .frame-16x7, .frame-3x2, .frame-4x3 { height:auto; padding-top:0; }
  .frame-16x10>img, .frame-16x7>img, .frame-3x2>img, .frame-4x3>img { position:static; width:100%; height:auto; }
}

/* ===== WHO prose ===== */
.prose-lg p { font-size:1.15rem; line-height:1.9; margin:0 0 1rem 0; }
.prose-lg p:last-child { margin-bottom:0; }
.prose-lg strong{ font-weight:700; }

/* ===== FEATURE CARDS (Specialization / generic) ===== */
.feature-card,
.cap-card,
.xp-card {
  background:#2b2f36;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:16px 18px;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
#specialization .card-title,
.cap-card h5,
#expertise h5 { font-weight:700; }

/* Inner thin line used in cards */
.cap-line { display:block; height:1px; background:rgba(255,255,255,.15); margin:4px 0 10px 0; border-radius:1px; }

/* ===== SERVICES (icon list) ===== */
.service-item{
  display:flex; gap:14px; align-items:flex-start;
  padding:18px; border:1px solid rgba(255,255,255,.08);
  border-radius:14px; background:transparent;
}
.service-icon{
  width:42px; height:42px; flex:0 0 42px; border-radius:10px;
  display:grid; place-items:center; font-weight:700; font-size:.95rem;
  background:#2b2f36; color:#dfe5eb; border:1px solid rgba(255,255,255,.08);
}

/* ===== WHY cards ===== */
.pill-card{
  padding:18px; border:1px solid rgba(255,255,255,.08);
  border-radius:14px; background:transparent;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}

/* ===== EXPERTISE (numbered style) ===== */
.exp-num-line { display:flex; align-items:center; gap:12px; margin:8px 0 6px 0; }
.exp-num-line span { font-weight:700; letter-spacing:.06em; font-size:.95rem; opacity:.9; }
.exp-num-line i { flex:1 1 auto; height:1px; background:rgba(255,255,255,0.15); display:block; }

.expert-block{ margin-bottom:20px; }
.exp-line{ display:flex; align-items:center; gap:12px; margin-bottom:4px; }
.exp-line .num{ font-weight:700; letter-spacing:.06em; font-size:.95rem; opacity:.9; }
.exp-line .line{ height:1px; background:rgba(255,255,255,.08); flex:1 1 auto; }
.exp-title{ font-size:1.35rem; font-weight:700; margin:0 0 6px 0; }

@media (min-width:1200px){
  #expertise .col-lg-6.order-lg-1{ padding-right: 1.25rem; }
  #expertise .col-lg-6.order-lg-2{ padding-left:  1.25rem; }
}

/* ===== Decorative header line (Specialization / Expertise) ===== */
.sp-head{ display:flex; align-items:center; gap:12px; }
.sp-head > span{ font-weight:700; font-size:.95rem; letter-spacing:.06em; opacity:.9; text-transform:uppercase; }
.sp-head .sp-line{ flex:1 1 auto; height:1px; background:rgba(255,255,255,.15); display:block; }

/* ===== Stretch image column to match text column height (Specialization) ===== */
#specialization .row.align-items-stretch { align-items: stretch !important; } /* if you choose align-items-stretch */
#specialization .row.align-items-center { align-items: stretch !important; }  /* fallback if your row uses align-items-center */

.img-stretch{
  height: 100%;
  min-height: 420px; /* adjust base height if needed */
  border-radius: 16px;
  overflow: hidden;
  background: #0b0b0b;
  box-shadow: 0 12px 26px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.06);
  display: flex;
}
.img-stretch img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 991.98px){
  .img-stretch{ height:auto; min-height:0; }
  .img-stretch img{ height:auto; }
}

/* ===== DESCRIPTIVE TEXT UNIFORM ===== */
.desc-text {
  font-size: 1.1rem;       /* uniforme per tutte le descrizioni */
  line-height: 1.75;       /* più leggibile */
  color: #adb5bd;          /* grigio chiaro */
  margin-bottom: 1rem;
}
.desc-text:last-child { margin-bottom: 0; }

.desc-text strong {
  font-weight: 700;
  color: #e8e8e8;          /* enfasi più chiara */
}