/* ==========================================================
   EMAN GROUP — Digitale Souveränität
   Editorial statement page, integrated with shared partials.
   ========================================================== */

.sov-page{
  background:#f4f6f8;
}

.sov-main{
  min-height:70vh;
  color:var(--text);
}

.sov-shell{
  width:min(1160px,calc(100% - 52px));
  margin-inline:auto;
}

.sov-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(86px,10vw,148px) 0 clamp(72px,8vw,112px);
  background:#fff;
  border-bottom:1px solid rgba(15,23,42,.14);
}

.sov-hero::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#1557f5;
}

.sov-hero__inner{
  position:relative;
}

.sov-eyebrow{
  margin:0 0 24px;
  color:#1557f5;
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.sov-hero h1{
  max-width:1080px;
  margin:0;
  color:#0b1220;
  font-size:clamp(48px,7vw,92px);
  line-height:.98;
  font-weight:720;
  letter-spacing:-.062em;
  text-wrap:balance;
}

.sov-hero__lead{
  max-width:810px;
  margin:34px 0 0;
  color:#4f5d73;
  font-size:clamp(19px,2vw,25px);
  line-height:1.56;
  letter-spacing:-.018em;
  text-wrap:pretty;
}

.sov-meta{
  max-width:810px;
  margin-top:48px;
  padding-top:18px;
  border-top:2px solid #1557f5;
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  color:#667085;
  font-size:12px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.025em;
}

.sov-meta>*+*::before{
  content:"·";
  margin-right:18px;
  color:#b4bdca;
}

.sov-body{
  padding:clamp(68px,9vw,124px) 0 clamp(92px,10vw,150px);
  background:#f4f6f8;
}

.sov-layout{
  display:grid;
  grid-template-columns:210px minmax(0,780px);
  justify-content:center;
  gap:clamp(48px,7vw,96px);
  align-items:start;
}

.sov-rail{
  position:sticky;
  top:104px;
  padding-top:8px;
}

.sov-rail__label{
  margin:0 0 18px;
  color:#111827;
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.sov-toc{
  border-top:1px solid rgba(15,23,42,.15);
}

.sov-toc a{
  min-height:50px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:8px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid rgba(15,23,42,.12);
  color:#667085;
  font-size:11px;
  line-height:1.35;
  text-decoration:none;
}

.sov-toc a span{
  color:#1557f5;
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
}

.sov-toc a:hover,
.sov-toc a:focus-visible{
  color:#111827;
}

.sov-rail__note{
  margin:20px 0 0;
  color:#7b8494;
  font-size:10px;
  line-height:1.65;
}

.sov-article{
  min-width:0;
}

.sov-letter-head{
  padding-bottom:38px;
  border-bottom:1px solid rgba(15,23,42,.15);
}

.sov-letter-head__salutation,
.sov-section__index{
  margin:0 0 15px;
  color:#1557f5;
  font-size:10px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.sov-lead{
  margin:0;
  color:#111827;
  font-size:clamp(25px,3vw,35px);
  line-height:1.38;
  font-weight:620;
  letter-spacing:-.032em;
  text-wrap:pretty;
}

.sov-prose{
  padding-top:38px;
}

.sov-prose>p,
.sov-section>p{
  margin:0 0 29px;
  color:#4f5d73;
  font-size:clamp(17px,1.4vw,19px);
  line-height:1.88;
  text-wrap:pretty;
}

.sov-prose strong,
.sov-section strong{
  color:#111827;
  font-weight:720;
}

.sov-quote{
  margin:clamp(62px,8vw,96px) 0;
  padding:8px 0 8px clamp(24px,4vw,44px);
  border-left:4px solid #1557f5;
}

.sov-quote p{
  margin:0;
  color:#101828;
  font-size:clamp(30px,4.4vw,50px);
  line-height:1.16;
  font-weight:650;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.sov-section{
  margin-top:clamp(72px,9vw,112px);
  padding-top:30px;
  border-top:1px solid rgba(15,23,42,.16);
  scroll-margin-top:100px;
}

.sov-section h2{
  max-width:740px;
  margin:0 0 34px;
  color:#0f172a;
  font-size:clamp(33px,4.5vw,55px);
  line-height:1.06;
  font-weight:700;
  letter-spacing:-.052em;
  text-wrap:balance;
}

.sov-principles{
  margin:44px 0 0;
  padding:0;
  list-style:none;
  counter-reset:sov-principle;
  border-top:1px solid rgba(15,23,42,.15);
}

.sov-principles li{
  counter-increment:sov-principle;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:20px;
  padding:30px 0;
  border-bottom:1px solid rgba(15,23,42,.13);
}

.sov-principles li::before{
  content:counter(sov-principle,decimal-leading-zero);
  padding-top:3px;
  color:#1557f5;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

.sov-principles h3{
  margin:0 0 9px;
  color:#101828;
  font-size:20px;
  line-height:1.3;
  font-weight:700;
  letter-spacing:-.02em;
}

.sov-principles p{
  margin:0;
  color:#59677b;
  font-size:15px;
  line-height:1.75;
}

.sov-commitments{
  margin:38px 0 34px;
  border-top:1px solid rgba(15,23,42,.16);
}

.sov-commitments>div{
  display:grid;
  grid-template-columns:minmax(190px,.8fr) minmax(0,1.4fr);
  gap:28px;
  padding:22px 0;
  border-bottom:1px solid rgba(15,23,42,.13);
}

.sov-commitments strong{
  color:#111827;
  font-size:14px;
  line-height:1.4;
}

.sov-commitments span{
  color:#5d697c;
  font-size:14px;
  line-height:1.65;
}

.sov-signature{
  margin-top:clamp(76px,9vw,116px);
  padding-top:34px;
  border-top:3px solid #111827;
}

.sov-signature__mark{
  margin:0 0 23px;
  color:#111827;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(33px,4.2vw,50px);
  line-height:1;
  font-style:italic;
  letter-spacing:-.04em;
}

.sov-signature strong,
.sov-signature span{
  display:block;
}

.sov-signature strong{
  color:#111827;
  font-size:14px;
}

.sov-signature span{
  margin-top:4px;
  color:#667085;
  font-size:12px;
}

.sov-closing{
  background:#fff;
  border-top:1px solid rgba(15,23,42,.15);
  border-bottom:1px solid rgba(15,23,42,.15);
}

.sov-closing__inner{
  padding:clamp(68px,8vw,108px) 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:end;
}

.sov-closing h2{
  max-width:800px;
  margin:0;
  color:#0b1220;
  font-size:clamp(38px,5.3vw,66px);
  line-height:1.03;
  font-weight:700;
  letter-spacing:-.057em;
  text-wrap:balance;
}

.sov-closing p:not(.sov-eyebrow){
  max-width:720px;
  margin:22px 0 0;
  color:#59677b;
  font-size:17px;
  line-height:1.72;
}

.sov-closing__actions{
  min-width:220px;
  display:grid;
  gap:10px;
}

.sov-page .sov-closing .btn{
  min-height:48px;
  border-radius:0!important;
  white-space:nowrap;
}

@media (max-width:980px){
  .sov-shell{
    width:min(100% - 40px,920px);
  }

  .sov-layout{
    grid-template-columns:1fr;
    gap:54px;
  }

  .sov-rail{
    position:static;
    padding:0 0 24px;
    border-bottom:1px solid rgba(15,23,42,.15);
  }

  .sov-toc{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .sov-toc a:nth-child(odd){
    border-right:1px solid rgba(15,23,42,.12);
    padding-right:16px;
  }

  .sov-toc a:nth-child(even){
    padding-left:16px;
  }

  .sov-rail__note{
    max-width:62ch;
  }

  .sov-closing__inner{
    grid-template-columns:1fr;
    align-items:start;
  }

  .sov-closing__actions{
    width:min(100%,420px);
  }
}

@media (max-width:620px){
  .sov-shell{
    width:calc(100% - 28px);
  }

  .sov-hero{
    padding:70px 0 64px;
  }

  .sov-hero::before{
    width:3px;
  }

  .sov-hero h1{
    font-size:clamp(43px,13.5vw,64px);
  }

  .sov-hero__lead{
    margin-top:26px;
    font-size:18px;
  }

  .sov-meta{
    margin-top:34px;
    display:grid;
    gap:5px;
  }

  .sov-meta>*+*::before{
    content:none;
  }

  .sov-body{
    padding:58px 0 86px;
  }

  .sov-toc{
    grid-template-columns:1fr;
  }

  .sov-toc a:nth-child(odd),
  .sov-toc a:nth-child(even){
    border-right:0;
    padding-left:0;
    padding-right:0;
  }

  .sov-lead{
    font-size:24px;
  }

  .sov-prose>p,
  .sov-section>p{
    font-size:16px;
    line-height:1.8;
  }

  .sov-quote{
    margin:58px 0;
    padding-left:20px;
  }

  .sov-quote p{
    font-size:30px;
  }

  .sov-section{
    margin-top:68px;
  }

  .sov-section h2{
    font-size:34px;
  }

  .sov-principles li{
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
    padding:24px 0;
  }

  .sov-commitments>div{
    grid-template-columns:1fr;
    gap:7px;
    padding:20px 0;
  }

  .sov-closing__actions,
  .sov-closing__actions .btn{
    width:100%;
  }
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sov-page,
  :root:not([data-theme="light"]) .sov-body{
    background:#0f1522;
  }

  :root:not([data-theme="light"]) .sov-hero,
  :root:not([data-theme="light"]) .sov-closing{
    background:#0b0f16;
  }

  :root:not([data-theme="light"]) .sov-hero h1,
  :root:not([data-theme="light"]) .sov-closing h2,
  :root:not([data-theme="light"]) .sov-lead,
  :root:not([data-theme="light"]) .sov-quote p,
  :root:not([data-theme="light"]) .sov-section h2,
  :root:not([data-theme="light"]) .sov-principles h3,
  :root:not([data-theme="light"]) .sov-signature__mark,
  :root:not([data-theme="light"]) .sov-signature strong,
  :root:not([data-theme="light"]) .sov-commitments strong{
    color:#eef2ff;
  }

  :root:not([data-theme="light"]) .sov-hero__lead,
  :root:not([data-theme="light"]) .sov-prose>p,
  :root:not([data-theme="light"]) .sov-section>p,
  :root:not([data-theme="light"]) .sov-principles p,
  :root:not([data-theme="light"]) .sov-commitments span,
  :root:not([data-theme="light"]) .sov-closing p:not(.sov-eyebrow){
    color:rgba(238,242,255,.72);
  }
}

@media (prefers-reduced-motion:reduce){
  .sov-page *{
    scroll-behavior:auto!important;
  }
}


.sov-page{
  --sov-copy-size:13.5px;
  --sov-copy-line:1.62;
  --sov-caption-size:10px;
}

/* Contenuto più compatto, senza diventare troppo stretto */
.sov-shell{
  width:min(1080px,calc(100% - 52px))!important;
}

.sov-layout{
  grid-template-columns:180px minmax(0,720px)!important;
  gap:clamp(38px,5vw,64px)!important;
}

/* ---------- Hero ---------- */

.sov-hero{
  padding:clamp(52px,6.5vw,82px) 0 clamp(44px,5.5vw,68px)!important;
}

.sov-eyebrow{
  margin-bottom:15px!important;
  font-size:9px!important;
  letter-spacing:.15em!important;
}

.sov-hero h1{
  max-width:850px!important;
  font-size:clamp(34px,4.6vw,56px)!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
}

.sov-hero__lead{
  max-width:720px!important;
  margin-top:22px!important;
  font-size:clamp(14px,1.35vw,16px)!important;
  line-height:1.65!important;
  letter-spacing:0!important;
}

.sov-meta{
  max-width:720px!important;
  margin-top:28px!important;
  padding-top:12px!important;
  font-size:10px!important;
}

/* ---------- Corpo della pagina ---------- */

.sov-body{
  padding:clamp(48px,6vw,76px) 0 clamp(64px,8vw,96px)!important;
}

.sov-letter-head{
  padding-bottom:24px!important;
}

.sov-letter-head__salutation,
.sov-section__index{
  margin-bottom:11px!important;
  font-size:9px!important;
}

.sov-lead{
  max-width:700px!important;
  font-size:clamp(16px,1.65vw,19px)!important;
  line-height:1.52!important;
  letter-spacing:-.018em!important;
}

.sov-prose{
  padding-top:26px!important;
}

/* Testo principale: stessa scala compatta dell'Impressum */
.sov-prose>p,
.sov-section>p{
  margin-bottom:17px!important;
  font-size:var(--sov-copy-size)!important;
  line-height:var(--sov-copy-line)!important;
  letter-spacing:.002em!important;
}

/* ---------- Indice laterale ---------- */

.sov-rail{
  top:88px!important;
}

.sov-rail__label{
  margin-bottom:12px!important;
  font-size:9px!important;
}

.sov-toc a{
  min-height:42px!important;
  grid-template-columns:25px minmax(0,1fr)!important;
  padding:8px 0!important;
  font-size:10px!important;
  line-height:1.35!important;
}

.sov-toc a span{
  font-size:8.5px!important;
}

.sov-rail__note{
  margin-top:15px!important;
  font-size:9.5px!important;
  line-height:1.55!important;
}

/* ---------- Citazione ---------- */

.sov-quote{
  margin:clamp(38px,5vw,58px) 0!important;
  padding:5px 0 5px 22px!important;
  border-left-width:3px!important;
}

.sov-quote p{
  max-width:650px!important;
  font-size:clamp(20px,2.6vw,29px)!important;
  line-height:1.26!important;
  letter-spacing:-.035em!important;
}

/* ---------- Sezioni ---------- */

.sov-section{
  margin-top:clamp(46px,6vw,70px)!important;
  padding-top:22px!important;
}

.sov-section h2{
  max-width:680px!important;
  margin-bottom:22px!important;
  font-size:clamp(23px,3vw,35px)!important;
  line-height:1.12!important;
  letter-spacing:-.038em!important;
}

/* ---------- Principi ---------- */

.sov-principles{
  margin-top:28px!important;
}

.sov-principles li{
  grid-template-columns:40px minmax(0,1fr)!important;
  gap:14px!important;
  padding:19px 0!important;
}

.sov-principles li::before{
  font-size:9px!important;
}

.sov-principles h3{
  margin-bottom:6px!important;
  font-size:14.5px!important;
  line-height:1.35!important;
}

.sov-principles p{
  font-size:13px!important;
  line-height:1.62!important;
}

/* ---------- Impegni pratici ---------- */

.sov-commitments{
  margin:27px 0 24px!important;
}

.sov-commitments>div{
  grid-template-columns:minmax(170px,.75fr) minmax(0,1.35fr)!important;
  gap:22px!important;
  padding:16px 0!important;
}

.sov-commitments strong{
  font-size:12.5px!important;
  line-height:1.45!important;
}

.sov-commitments span{
  font-size:12.5px!important;
  line-height:1.58!important;
}

/* ---------- Firma ---------- */

.sov-signature{
  margin-top:clamp(48px,6vw,70px)!important;
  padding-top:24px!important;
}

.sov-signature__mark{
  margin-bottom:15px!important;
  font-size:clamp(25px,3vw,34px)!important;
}

.sov-signature strong{
  font-size:12px!important;
}

.sov-signature span{
  font-size:10.5px!important;
}

/* ---------- Chiusura ---------- */

.sov-closing__inner{
  padding:clamp(48px,6vw,72px) 0!important;
  gap:34px!important;
}

.sov-closing h2{
  max-width:720px!important;
  font-size:clamp(27px,3.8vw,44px)!important;
  line-height:1.08!important;
  letter-spacing:-.043em!important;
}

.sov-closing p:not(.sov-eyebrow){
  max-width:650px!important;
  margin-top:16px!important;
  font-size:13.5px!important;
  line-height:1.62!important;
}

.sov-closing__actions{
  min-width:200px!important;
}

.sov-page .sov-closing .btn{
  min-height:43px!important;
  padding:8px 12px!important;
  font-size:12px!important;
}

/* ---------- Tablet ---------- */

@media (max-width:980px){
  .sov-shell{
    width:min(100% - 40px,820px)!important;
  }

  .sov-layout{
    grid-template-columns:1fr!important;
    gap:38px!important;
  }

  .sov-rail{
    padding-bottom:18px!important;
  }
}

/* ---------- Mobile ---------- */

@media (max-width:620px){
  .sov-page{
    --sov-copy-size:13px;
    --sov-copy-line:1.58;
  }

  .sov-shell{
    width:calc(100% - 30px)!important;
  }

  .sov-hero{
    padding:45px 0 42px!important;
  }

  .sov-hero h1{
    font-size:clamp(30px,9.5vw,40px)!important;
    line-height:1.06!important;
  }

  .sov-hero__lead{
    margin-top:18px!important;
    font-size:13.5px!important;
    line-height:1.6!important;
  }

  .sov-meta{
    margin-top:23px!important;
  }

  .sov-body{
    padding:42px 0 66px!important;
  }

  .sov-lead{
    font-size:16px!important;
    line-height:1.5!important;
  }

  .sov-quote{
    margin:38px 0!important;
    padding-left:17px!important;
  }

  .sov-quote p{
    font-size:20px!important;
    line-height:1.27!important;
  }

  .sov-section{
    margin-top:46px!important;
  }

  .sov-section h2{
    margin-bottom:18px!important;
    font-size:24px!important;
  }

  .sov-principles li{
    grid-template-columns:30px minmax(0,1fr)!important;
    gap:8px!important;
    padding:17px 0!important;
  }

  .sov-principles h3{
    font-size:14px!important;
  }

  .sov-principles p{
    font-size:12.75px!important;
  }

  .sov-commitments>div{
    grid-template-columns:1fr!important;
    gap:5px!important;
    padding:15px 0!important;
  }

  .sov-closing h2{
    font-size:27px!important;
  }

  .sov-closing p:not(.sov-eyebrow){
    font-size:13px!important;
  }
}

/* ==========================================================
   Souveränität — punti al posto della numerazione
   ========================================================== */

.sov-principles{
  counter-reset:none!important;
}

.sov-principles li{
  counter-increment:none!important;

  /* Colonna piccola riservata al punto */
  grid-template-columns:18px minmax(0,1fr)!important;
  gap:14px!important;
}

/* Sostituisce 01, 02, 03... con un punto blu */
.sov-principles li::before{
  content:""!important;

  width:7px!important;
  height:7px!important;
  padding:0!important;
  margin-top:.48em!important;

  display:block!important;
  align-self:start!important;
  justify-self:start!important;

  border-radius:50%!important;
  background:#1557f5!important;

  /* dettaglio molto leggero, non decorativo */
  box-shadow:0 0 0 3px rgba(21,87,245,.10)!important;
}

/* Mobile */
@media (max-width:620px){
  .sov-principles li{
    grid-template-columns:16px minmax(0,1fr)!important;
    gap:10px!important;
  }

  .sov-principles li::before{
    width:6px!important;
    height:6px!important;
    margin-top:.5em!important;
    box-shadow:0 0 0 2px rgba(21,87,245,.10)!important;
  }
}

/* Dark mode */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sov-principles li::before{
    background:#7aa7ff!important;
    box-shadow:0 0 0 3px rgba(122,167,255,.12)!important;
  }
}

/* Souveränität — puntini minuscoli blu acceso */
.sov-principles li{
  grid-template-columns:10px minmax(0,1fr)!important;
  gap:12px!important;
}

.sov-principles li::before{
  content:""!important;
  width:4px!important;
  height:4px!important;
  display:block!important;

  padding:0!important;
  margin-top:.62em!important;

  align-self:start!important;
  justify-self:start!important;

  border:0!important;
  border-radius:50%!important;
  background:#0067ff!important;
  box-shadow:none!important;
}

/* Leggermente più piccoli su smartphone */
@media (max-width:620px){
  .sov-principles li{
    grid-template-columns:8px minmax(0,1fr)!important;
    gap:10px!important;
  }

  .sov-principles li::before{
    width:3px!important;
    height:3px!important;
    margin-top:.66em!important;
  }
}

/* Blu luminoso coerente anche in modalità scura */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sov-principles li::before{
    background:#4d8dff!important;
    box-shadow:none!important;
  }
}