/* Ritmo della pagina: composizioni diverse, spazi e tipografia condivisi. */
.home-page .intro {
  display: block;
  max-width: 820px;
  text-align: center;
  padding-bottom: 48px;
}
.intro h2 br { display: none; }
.intro .intro-text { padding-top: 24px; }
.intro .intro-text > p { max-width: 660px; margin-inline: auto; }
.intro .lead { font-size: clamp(20px, 2vw, 24px); }
.intro .small-copy { margin-top: 24px; }

.sectors { display: block; }
.sectors > div:first-child { max-width: 760px; margin-bottom: 40px; }
.sectors h2 br { display: none; }
.sectors > div > p:not(.eyebrow) { max-width: 640px; }
.sector-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.sector-list > div,
.sector-list > div:first-child { grid-column: auto; padding: 20px 0 0; border-bottom: 0; border-top: 1px solid var(--line); }
.sector-list > div > span { position: static; display: block; color: #2563eb; margin-bottom: 14px; }
.sector-list h3 { max-width: none; }
.sector-list > .small-copy { grid-column: 1 / -1; margin: 0; }

#percorsi .section-heading { display: block; text-align: center; margin-bottom: 40px; }
#percorsi .section-heading > p { margin: 18px 0 0; }
#percorsi h2 br { display: none; }
#percorsi h2 { max-width: 720px; margin-inline: auto; text-wrap: balance; }

.report-section { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 72px; }
.report-section > div:first-child { grid-column: 2; grid-row: 1; }
.report-section > .report { grid-column: 1; grid-row: 1; max-width: none; }

.faq-layout { display: block; max-width: 860px; }
.faq-layout > div:first-child { text-align: center; margin-bottom: 32px; }
.faq-layout h2 { margin-bottom: 18px; }
.faq-layout h2 br, .faq-layout > div:first-child > p br { display: none; }
.faqs summary { padding-block: 22px; }

@media (max-width: 1100px) {
  .report-section { gap: 40px; }
  .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-copy-line { white-space: normal; }
}
@media (max-width: 820px) {
  .home-page .intro { padding-bottom: 32px; }
  .sector-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
  .sector-list > div,
  .sector-list > div:first-child,
  .sector-list > div:nth-child(4),
  .sector-list > div:nth-child(5) { grid-column: auto; }
  .report-section { grid-template-columns: 1fr; gap: 30px; }
  .report-section > div:first-child,
  .report-section > .report { grid-column: auto; grid-row: auto; }
  .report-section > .report { width: 100%; }
}
@media (max-width: 480px) {
  .sector-list, .detail-grid { grid-template-columns: 1fr; }
  .sector-list > div:nth-child(5) { grid-column: auto; }
  .sectors > div:first-child { margin-bottom: 28px; }
  #percorsi .section-heading, .faq-layout > div:first-child { margin-bottom: 28px; }
}
/* Scheda compatta: entrambi i livelli partecipano al calcolo dell'altezza. */
.comparison-section .profile-comparison{display:grid}
.comparison-section .comparison-layer{grid-area:1/1;min-width:0}
.comparison-section .comparison-after{position:relative;inset:auto}
.comparison-section .gbp-card{height:100%}
.comparison-section .gbp-photo{height:80px}
.comparison-section .gbp-card .comparison-search{height:34px}
.comparison-section .comparison-label{top:42px;font-size:11px;padding:2px 10px}
.comparison-section .gbp-card .comparison-body{padding:12px 18px}
.comparison-section .gbp-title-row h3{font-size:23px}
.comparison-section .gbp-card .comparison-actions{margin:6px 0}
.comparison-section .gbp-tabs{margin-inline:-18px;padding-inline:18px}
.comparison-section .gbp-tabs span{padding-block:6px}
.comparison-section .gbp-info{padding:8px 0 4px}
.comparison-section .gbp-info p{min-height:24px}
.comparison-section .gbp-info p:nth-child(2){min-height:40px}
.comparison-section .gbp-services{min-height:0;padding-top:8px}
.comparison-section .gbp-review{padding-top:8px;margin-top:8px}
.comparison-section .gbp-reply{min-height:0;margin-top:6px}
.comparison-section .gbp-services p,.comparison-section .gbp-review p{line-height:1.4}
@media(min-width:1000px){
 .comparison-section .comparison-body{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
 .comparison-section .gbp-title-row,.comparison-section .gbp-rating,.comparison-section .gbp-category,.comparison-section .comparison-actions,.comparison-section .gbp-tabs{grid-column:1/-1}
 .comparison-section .gbp-info{grid-column:1;grid-row:6/8}
 .comparison-section .gbp-services{grid-column:2;grid-row:6;border-top:0}
 .comparison-section .gbp-review{grid-column:1/-1}
}
/* Animation progressive activée uniquement lorsque JavaScript est disponible. */
.section:not(.hero),.benefit-strip,.footer{opacity:1;transform:none}
@media(prefers-reduced-motion:no-preference){
 .motion-ready .section:not(.hero),.motion-ready .benefit-strip,.motion-ready .footer{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .8s cubic-bezier(.22,1,.36,1)}
 .motion-ready .section.is-visible,.motion-ready .benefit-strip.is-visible,.motion-ready .footer.is-visible{opacity:1;transform:none}
 .motion-ready .is-visible .plans>.plan,.motion-ready .is-visible .steps>article,.motion-ready .is-visible .detail-grid>article,.motion-ready .is-visible .sector-list>div{animation:card-arrive .75s cubic-bezier(.22,1,.36,1) backwards}
 .motion-ready .is-visible :is(.plans,.steps,.detail-grid,.sector-list)>:nth-child(2){animation-delay:.12s}
 .motion-ready .is-visible :is(.plans,.steps,.detail-grid,.sector-list)>:nth-child(3){animation-delay:.24s}
 .motion-ready .is-visible :is(.plans,.steps,.detail-grid,.sector-list)>:nth-child(4){animation-delay:.36s}
 .motion-ready .is-visible :is(.plans,.steps,.detail-grid,.sector-list)>:nth-child(5){animation-delay:.48s}
 .is-visible .comparison-divider>span{animation:slider-hint 1s ease-in-out .5s 2}
}
@keyframes card-arrive{from{opacity:0;transform:translateY(28px) scale(.98)}to{opacity:1;transform:none}}
@keyframes slider-hint{0%,100%{transform:translate(-50%,-50%);box-shadow:0 2px 15px #08111f30}50%{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 9px #2563eb18}}
@media(prefers-reduced-motion:reduce){.motion-ready .section:not(.hero),.motion-ready .benefit-strip,.motion-ready .footer{opacity:1;transform:none}}
/* Settori: elenco orizzontale, distinto dalle griglie di metodo e dettagli. */
.sectors > div:first-child{max-width:780px;margin:0 auto 36px;text-align:center}
.sectors > div:first-child > p{margin-inline:auto}
.sector-list{display:block}
.sector-list > div,
.sector-list > div:first-child,
.sector-list > div:nth-child(4),
.sector-list > div:nth-child(5){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px;padding:22px 4px;border-top:0;border-bottom:1px solid var(--line)}
.sector-list > div > span{display:none}
.sector-list h3{font-size:clamp(18px,2vw,25px);max-width:none}
.sector-list > div > p{margin:0;max-width:none;font-size:15px}
.sector-list > .small-copy{margin-top:22px;text-align:center;max-width:none}
@media(max-width:600px){
 .sectors > div:first-child{margin-bottom:24px}
 .sector-list > div,.sector-list > div:first-child,.sector-list > div:nth-child(4),.sector-list > div:nth-child(5){grid-template-columns:1fr;gap:7px;padding-block:18px}
 .sector-list > div > p{font-size:14px}
}
/* Marchio: o ovale disegnata, spazi ottici e allineamento unico. */
.hero-header .brand,.footer .brand{gap:9px;align-items:flex-end}
.header .brand>.brand-wordmark,.footer .brand>.brand-wordmark{display:inline-flex;align-items:baseline;gap:0;transform:none;padding:0 0 2px;line-height:1;font-weight:500;letter-spacing:-.045em;font-size:32px}
.brand-wordmark .brand-initial{display:inline-block;position:relative;align-self:baseline;width:.55em;height:.62em;margin-right:.025em;border:.068em solid currentColor;border-radius:48% 52% 49% 51% / 52% 48% 52% 48%;font-size:inherit;color:inherit;overflow:hidden;text-indent:-999px;transform:translateY(.012em) rotate(-7deg)}
.brand-wordmark .brand-second{margin-left:.22em;letter-spacing:-.035em}
@media(max-width:480px){.header .brand>.brand-wordmark,.footer .brand>.brand-wordmark{font-size:28px;padding-bottom:5px}.hero-header .brand,.footer .brand{gap:8px}}
/* Un'unica base ottica per simbolo e nome. */
.hero-header .brand,.footer .brand{align-items:center;gap:6px}
.hero-header .presence-icon,.footer .presence-icon{width:29px;height:36px;transform:translateY(3px);margin:0}
.hero-header .presence-icon img,.footer .presence-icon img{width:46px;left:-9px;top:-9px}
.header .brand>.brand-wordmark,.footer .brand>.brand-wordmark{padding-bottom:0;transform:none;line-height:1}
@media(max-width:480px){
 .hero-header .presence-icon,.footer .presence-icon{width:26px;height:32px;transform:translateY(3px)}
 .hero-header .presence-icon img,.footer .presence-icon img{width:41px;left:-8px;top:-8px}
 .hero-header .brand,.footer .brand{gap:6px}
}
/* Titoli uniformi: l'accento azzurro resta esclusivo della hero. */
.home-page main :is(h2,h3){color:var(--ink)}
.home-page main .dark :is(h2,h3){color:#fff}
.home-page main :is(h2,h3) :is(.muted,.red){color:inherit}
