/* SOP Visual — Scheda CDL 1.1.0
 * SOLO PRESENTAZIONE. Tutte le regole sono circoscritte alla route CDL tramite body.sop-visual-cdl-110.
 */
body.sop-visual-cdl-110 {
  --sop-primary:#0b4dbb;
  --sop-secondary:#0a6fd8;
  --sop-accent:#13a47b;
  --sop-background:#f5f8fc;
  --sop-text:#102d52;
  --sop-muted:#61738a;
  --sop-line:#dbe5ef;
  --sop-radius:20px;
  --sop-spacing:20px;
  --sop-container-width:1180px;
}

body.sop-visual-cdl-110 .sopcg-page {
  background:var(--sop-background);
  color:var(--sop-text);
  padding:24px 0 56px;
}

body.sop-visual-cdl-110 .sopcg-shell {
  width:min(calc(100% - 40px), var(--sop-container-width));
  max-width:none;
  margin:0 auto;
  padding:0;
  box-sizing:border-box;
}

body.sop-visual-cdl-110 .sopcg-hero {
  position:relative;
  overflow:hidden;
  padding:34px 38px 36px;
  border:1px solid #d7e7f5;
  border-radius:26px;
  background:linear-gradient(135deg,#eaf5ff 0%,#f7fbff 62%,#eefaf6 100%);
  box-shadow:0 16px 40px rgba(25,64,103,.08);
}

body.sop-visual-cdl-110 .sopcg-hero::after {
  content:"";
  position:absolute;
  right:-75px;
  top:-95px;
  width:310px;
  height:310px;
  border-radius:50%;
  background:rgba(11,77,187,.055);
  pointer-events:none;
}

body.sop-visual-cdl-110 .sopcg-kicker {
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid #d8e6f3;
  color:var(--sop-primary);
  font-size:11px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}

body.sop-visual-cdl-110 .sopcg-id {
  position:relative;
  z-index:1;
  margin-top:10px;
  color:var(--sop-muted);
  font-size:12px;
  font-weight:700;
}

body.sop-visual-cdl-110 .sopcg-hero h1 {
  position:relative;
  z-index:1;
  max-width:850px;
  margin:8px 0 22px;
  color:var(--sop-text);
  font-size:clamp(34px,4.5vw,58px);
  line-height:1.04;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}

body.sop-visual-cdl-110 .sopcg-chips {
  position:relative;
  z-index:1;
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}

body.sop-visual-cdl-110 .sopcg-chip {
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border:1px solid #cbddeb;
  border-radius:12px;
  background:#fff;
  color:var(--sop-primary);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 5px 16px rgba(31,70,108,.05);
}

body.sop-visual-cdl-110 .sopcg-chip:hover,
body.sop-visual-cdl-110 .sopcg-chip:focus-visible {
  border-color:#94b8da;
  box-shadow:0 7px 20px rgba(31,70,108,.10);
}

body.sop-visual-cdl-110 .sopcg-layout {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);
  gap:20px;
  margin-top:20px;
  align-items:start;
}

body.sop-visual-cdl-110 .sopcg-panel {
  min-width:0;
  padding:24px;
  border:1px solid var(--sop-line);
  border-radius:var(--sop-radius);
  background:#fff;
  box-shadow:0 12px 30px rgba(25,64,103,.055);
}

body.sop-visual-cdl-110 .sopcg-panel h2 {
  margin:0 0 17px;
  color:var(--sop-text);
  font-size:22px;
  line-height:1.18;
  letter-spacing:-.02em;
}

body.sop-visual-cdl-110 .sopcg-section { margin-top:26px; }
body.sop-visual-cdl-110 .sopcg-section:first-child { margin-top:0; }

body.sop-visual-cdl-110 .sopcg-facts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

body.sop-visual-cdl-110 .sopcg-fact {
  min-width:0;
  min-height:92px;
  padding:15px 16px;
  box-sizing:border-box;
  border:1px solid #e2eaf2;
  border-radius:15px;
  background:#fbfdff;
}

body.sop-visual-cdl-110 .sopcg-fact span:first-child {
  display:block;
  margin-bottom:7px;
  color:var(--sop-muted);
  font-size:10px;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}

body.sop-visual-cdl-110 .sopcg-fact strong {
  display:block;
  color:var(--sop-text);
  font-size:15px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

body.sop-visual-cdl-110 .sopcg-fact a {
  color:var(--sop-primary);
  text-decoration:none;
  border-bottom:1px solid rgba(11,77,187,.25);
}

body.sop-visual-cdl-110 .sopcg-na {
  color:#8290a0;
  font-weight:600;
}

body.sop-visual-cdl-110 .sopcg-note {
  margin-top:18px;
  padding:13px 15px;
  border:1px solid #e4eaf0;
  border-radius:12px;
  background:#f8fafc;
  color:#68788a;
  font-size:12px;
  line-height:1.55;
}

body.sop-visual-cdl-110 .sopcg-rel {
  display:grid;
  gap:0;
}

body.sop-visual-cdl-110 .sopcg-relrow {
  padding:13px 0;
  border-top:1px solid #edf1f5;
}

body.sop-visual-cdl-110 .sopcg-relrow:first-child {
  padding-top:0;
  border-top:0;
}

body.sop-visual-cdl-110 .sopcg-relrow span {
  display:block;
  margin-bottom:4px;
  color:var(--sop-muted);
  font-size:10px;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
}

body.sop-visual-cdl-110 .sopcg-relrow a,
body.sop-visual-cdl-110 .sopcg-offer a {
  color:var(--sop-text);
  font-weight:800;
  text-decoration:none;
}

body.sop-visual-cdl-110 .sopcg-offer {
  margin-top:9px;
  padding:14px 15px;
  border:1px solid #e1e9f0;
  border-radius:14px;
  background:#f9fcff;
  color:#42556a;
  font-size:13px;
  line-height:1.55;
}

body.sop-visual-cdl-110 .sopcg-offer b {
  display:block;
  margin-bottom:2px;
  font-size:15px;
}

body.sop-visual-cdl-110 .sopcg-year {
  color:var(--sop-muted);
  font-size:12px;
}

body.sop-visual-cdl-110 .sopcg-navigation {
  width:min(calc(100% - 40px), var(--sop-container-width));
  margin:20px auto 0;
  padding:22px 24px;
  box-sizing:border-box;
  border:1px solid var(--sop-line);
  border-radius:var(--sop-radius);
  background:#fff;
  box-shadow:0 12px 30px rgba(25,64,103,.045);
}

body.sop-visual-cdl-110 .sopcg-navigation h2 {
  margin:0 0 14px;
  color:var(--sop-text);
  font-size:20px;
}

body.sop-visual-cdl-110 .sopcg-navigation details {
  border-top:1px solid #edf1f5;
  padding:12px 0;
}

body.sop-visual-cdl-110 .sopcg-navigation details:first-of-type { border-top:0; }

body.sop-visual-cdl-110 .sopcg-navigation summary {
  cursor:pointer;
  color:var(--sop-text);
  font-size:14px;
  font-weight:800;
}

body.sop-visual-cdl-110 .sopcg-navigation ul {
  margin:10px 0 0;
  padding-left:20px;
}

body.sop-visual-cdl-110 .sopcg-navigation a {
  color:var(--sop-primary);
  text-decoration:none;
}

@media (max-width:900px) {
  body.sop-visual-cdl-110 .sopcg-shell,
  body.sop-visual-cdl-110 .sopcg-navigation { width:min(calc(100% - 28px), var(--sop-container-width)); }
  body.sop-visual-cdl-110 .sopcg-layout { grid-template-columns:1fr; gap:14px; }
  body.sop-visual-cdl-110 .sopcg-hero { padding:30px 28px; }
}

@media (max-width:620px) {
  body.sop-visual-cdl-110 .sopcg-page { padding:12px 0 34px; }
  body.sop-visual-cdl-110 .sopcg-shell,
  body.sop-visual-cdl-110 .sopcg-navigation { width:calc(100% - 24px); }
  body.sop-visual-cdl-110 .sopcg-hero { padding:23px 19px 25px; border-radius:18px; }
  body.sop-visual-cdl-110 .sopcg-hero::after { width:190px; height:190px; right:-80px; top:-70px; }
  body.sop-visual-cdl-110 .sopcg-hero h1 { margin-bottom:17px; font-size:clamp(30px,10vw,42px); }
  body.sop-visual-cdl-110 .sopcg-chip { width:100%; box-sizing:border-box; justify-content:flex-start; }
  body.sop-visual-cdl-110 .sopcg-panel { padding:18px; border-radius:16px; }
  body.sop-visual-cdl-110 .sopcg-facts { grid-template-columns:1fr; gap:9px; }
  body.sop-visual-cdl-110 .sopcg-fact { min-height:0; padding:13px 14px; }
  body.sop-visual-cdl-110 .sopcg-navigation { padding:18px; border-radius:16px; }
}
