.page-section {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 var(--so-page-gutter, 12px);
  box-sizing: border-box;
  text-align: center;
}

.page-breadcrumb {
  font-size: 13px;
  color: #444;
  margin-bottom: 12px;
}

.page-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.page-breadcrumb a:hover {
  text-decoration: underline;
}

.page-breadcrumb-sep {
  margin: 0 6px;
  color: #777;
}

.page-header {
  margin-bottom: 18px;
}

.page-title {
  margin: 0;
  font-size: var(--so-h1-size, clamp(26px, 2.6vw, 36px));
  line-height: var(--so-heading-line, 1.15);
}

.page-description {
  margin: 10px 0 0;
  color: #555;
  line-height: 1.6;
}

.page-hero {
  margin: 18px 0 0;
}

.page-hero img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
  border: 1px solid #eee;
}

.page-gallery {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}

.page-gallery img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
  border: 1px solid #eee;
}

.page-card {
  margin-top: 18px;
  border: 1px solid #eee;
  background: #fff;
  padding: 14px;
  text-align: center;
}

/* Center "page forms" like CRA pages: keep a readable max-width and align submit buttons. */
.page-card form {
  max-width: 600px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.page-card form .button-form {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.page-card-title {
  margin: 0 0 12px;
  font-size: var(--so-h3-size, 18px);
  font-weight: var(--so-heading-weight, 700);
  line-height: var(--so-heading-line, 1.15);
  letter-spacing: var(--so-heading-letter, -0.02em);
}

.page-card-alert {
  margin-bottom: 12px;
}

.form-hint {
  margin-top: -6px;
  color: #666;
  font-size: 13px;
}

.page-card-actions {
  margin-top: 16px;
  display: flex;
  justify-content: center;
}

.page-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  border: 1px solid #111;
  background: #111;
  color: #fff;
  padding: 10px 14px;
  border-radius: 0;
  text-decoration: none;
  font-weight: 700;
}

.account-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 12px;
  justify-content: center;
}

.account-actions.page-card-actions {
  justify-content: center;
}

.account-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  padding: 10px 14px;
  border-radius: 0;
  text-decoration: none;
  font-weight: 700;
}

.account-action:hover {
  background: #111;
  color: #fff;
}

/* About / guides / FAQ (used by chi-siamo, come-funziona, ecc.) */

.about-hero {
  display: grid;
  gap: 12px;
}

.about-hero-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.about-hero-logo {
  width: 96px;
  height: auto;
  display: block;
  object-fit: contain;
}

.about-claim {
  margin: 0;
  color: #666;
  line-height: 1.6;
}

.about-section-title {
  margin: 0 0 10px;
  font-size: var(--so-h3-size, 18px);
  font-weight: var(--so-heading-weight, 700);
  line-height: var(--so-heading-line, 1.15);
  letter-spacing: var(--so-heading-letter, -0.02em);
}

.about-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.about-metric {
  border: 1px solid #eee;
  background: #fff;
  padding: 12px;
}

.about-metric-value {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.about-metric-label {
  margin-top: 4px;
  color: #555;
  font-weight: 700;
}

.about-metric-sub {
  margin-top: 6px;
  color: #666;
  font-size: 13px;
  line-height: 1.4;
}

.about-sections {
  margin-top: 18px;
  display: grid;
  gap: 14px;
}

.about-block {
  border: 1px solid #eee;
  background: #fff;
  padding: 14px;
}

.about-block-title {
  margin: 0 0 8px;
  font-size: var(--so-h4-size, 14px);
  font-weight: var(--so-heading-weight, 700);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.about-block-body {
  color: #555;
  line-height: 1.65;
}

.about-block-body p {
  margin: 0 0 12px;
}

.about-block-body p:last-child {
  margin-bottom: 0;
}

.about-company-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px 12px;
  margin: 0;
  justify-items: center;
}

.about-company-grid dt {
  font-weight: 800;
  color: #111;
}

.about-company-grid dd {
  margin: 0;
  color: #555;
  text-align: center;
}

.guide-section {
  padding: 12px 0;
  border-top: 1px solid #eee;
}

.guide-section:first-child {
  border-top: 0;
  padding-top: 0;
}

.guide-title {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.2;
}

.guide-details {
  color: #555;
  line-height: 1.7;
}

.guide-details h3 {
  margin: 14px 0 8px;
  font-size: 16px;
}

.guide-details ul,
.guide-details ol {
  padding-left: 0;
  list-style-position: inside;
}

.guide-details a {
  color: #111;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.faq-section {
  margin-top: 18px;
  border: 1px solid #eee;
  background: #fff;
  padding: 14px;
}

.faq-title {
  margin: 0 0 10px;
  font-size: var(--so-h3-size, 18px);
  font-weight: var(--so-heading-weight, 700);
  line-height: var(--so-heading-line, 1.15);
  letter-spacing: var(--so-heading-letter, -0.02em);
}

.faq-list {
  display: grid;
  gap: 10px;
}

.faq-item {
  border: 1px solid #eee;
  padding: 10px 12px;
  background: #fff;
}

.faq-question {
  cursor: pointer;
  font-weight: var(--so-heading-weight, 700);
  color: #111;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  list-style: none;
}

.faq-question::-webkit-details-marker {
  display: none;
}

.faq-question::after {
  content: "+";
  font-weight: 800;
  color: #111;
}

.faq-item[open] .faq-question::after {
  content: "-";
}

.faq-answer {
  margin-top: 8px;
  color: #555;
  line-height: 1.65;
  text-align: center;
}

.faq-answer p {
  margin: 0 0 10px;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

.legal-section {
  padding: 12px 0;
  border-top: 1px solid #eee;
}

.legal-section:first-child {
  border-top: 0;
  padding-top: 0;
}

.legal-section-title {
  margin: 0 0 8px;
  font-size: var(--so-h4-size, 16px);
  line-height: 1.25;
  font-weight: var(--so-heading-weight, 700);
}

.legal-section-body {
  color: #555;
  line-height: 1.75;
}

.legal-section-body h2,
.legal-section-body h3 {
  margin: 14px 0 8px;
}

.legal-section-body ul,
.legal-section-body ol {
  padding-left: 0;
  list-style-position: inside;
}

.legal-section-body a {
  color: #111;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-meta {
  margin-top: 8px;
  color: #666;
  font-size: 13px;
  text-align: center;
}

.legal-note {
  margin-top: 14px;
}

@media (max-width: 640px) {
  .page-gallery img {
    height: 120px;
  }
  .about-company-grid {
    grid-template-columns: 1fr;
  }
}
