/* ==================================================================
   omarpasciuti.it - stili aggiuntivi
   Estende il tema senza toccare style.css (generato da SCSS).
   ================================================================== */

/* --- Accessibilità ------------------------------------------------ */
.skip_link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  padding: 12px 20px;
  background-color: var(--bs-primary);
  color: #fff;
  border-radius: 0 0 var(--bs-border-radius-sm) 0;
}
.skip_link:focus {
  left: 0;
  color: #fff;
}
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--bs-secondary);
  outline-offset: 2px;
}

/* --- Testata di pagina -------------------------------------------- */
.page_lead {
  max-width: 46rem;
  font-size: 20px;
  line-height: 32px;
  margin-bottom: 0;
}
.page_banner .breadcrumb_nav {
  margin-bottom: 18px;
}

/* --- Testo lungo --------------------------------------------------- */
.op_prose {
  max-width: 46rem;
}
.op_prose > h2 {
  font-size: 34px;
  line-height: 42px;
  font-weight: 800;
  margin: 56px 0 18px;
}
.op_prose > h2:first-child {
  margin-top: 0;
}
.op_prose > h3 {
  font-size: 24px;
  line-height: 32px;
  font-weight: 700;
  margin: 36px 0 14px;
}
.op_prose p,
.op_prose ul,
.op_prose ol {
  margin-bottom: 20px;
}
.op_prose ul,
.op_prose ol {
  padding-left: 22px;
}
.op_prose li {
  margin-bottom: 10px;
}
.op_prose li::marker {
  color: var(--bs-primary);
}
.op_prose a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.op_prose strong {
  color: var(--bs-dark);
}

/* Riquadro con i punti chiave: utile ai lettori e alle IA che citano */
.op_keypoints {
  padding: 28px 32px;
  margin: 0 0 40px;
  border-radius: var(--bs-border-radius);
  background-color: var(--bs-primary-bg-subtle);
  border-left: 4px solid var(--bs-primary);
}
.op_keypoints h2,
.op_keypoints .op_keypoints_title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bs-primary);
  margin-bottom: 14px;
}
.op_keypoints ul {
  margin-bottom: 0;
  padding-left: 20px;
}
.op_keypoints li:last-child {
  margin-bottom: 0;
}

/* Nota di attenzione (es. emergenze, avvertenze deontologiche) */
.op_notice {
  padding: 24px 28px;
  margin: 32px 0;
  border-radius: var(--bs-border-radius);
  background-color: var(--bs-secondary-bg-subtle);
  border-left: 4px solid var(--bs-secondary);
}
.op_notice p:last-child {
  margin-bottom: 0;
}

/* Indice della pagina */
.op_toc {
  padding: 24px 28px;
  border-radius: var(--bs-border-radius);
  background-color: #fff;
  box-shadow: var(--bs-box-shadow);
}
.op_toc_title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bs-primary);
  margin-bottom: 14px;
}
.op_toc ol {
  margin: 0;
  padding-left: 20px;
  font-size: 16px;
  line-height: 26px;
}
.op_toc li {
  margin-bottom: 8px;
}

/* --- Barra di fiducia --------------------------------------------- */
.op_trust_bar {
  padding: 28px 0;
  background-color: #fff;
  border-bottom: 1px solid #EDF1F0;
}
.op_trust_bar ul {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 40px;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.op_trust_bar li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--bs-dark);
}
.op_trust_bar i {
  color: var(--bs-primary);
  font-size: 20px;
}

/* --- Blocco di conversione ---------------------------------------- */
.op_cta_section {
  padding: 60px 0;
}
.op_cta_section .cta_banner_title {
  font-size: 36px;
  line-height: 44px;
  font-weight: 800;
}
.op_cta_section .cta_banner_description {
  font-size: 18px;
  line-height: 28px;
  opacity: 0.92;
}

/* --- Leggi anche --------------------------------------------------- */
.op_related_card {
  display: block;
  height: 100%;
  padding: 30px;
  background-color: #fff;
  border-radius: var(--bs-border-radius);
  box-shadow: var(--bs-box-shadow);
  transition: var(--bs-transition);
}
.op_related_card:hover {
  transform: translateY(-4px);
  box-shadow: var(--bs-box-shadow-lg);
}
.op_related_title {
  font-size: 22px;
  line-height: 30px;
  margin-bottom: 12px;
  color: var(--bs-dark);
}
.op_related_text {
  font-size: 16px;
  line-height: 26px;
  margin-bottom: 16px;
}
.op_related_more {
  font-weight: 700;
  color: var(--bs-primary);
}
.op_related_more i {
  font-size: 14px;
  margin-left: 6px;
}

/* --- Percorso in tre passi ---------------------------------------- */
.op_steps {
  counter-reset: opstep;
  list-style: none;
  padding: 0;
  margin: 0;
}
.op_steps > li {
  position: relative;
  padding-left: 68px;
  margin-bottom: 32px;
}
.op_steps > li:last-child {
  margin-bottom: 0;
}
.op_steps > li::before {
  counter-increment: opstep;
  content: counter(opstep);
  position: absolute;
  left: 0;
  top: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 20px;
  color: #fff;
  background-color: var(--bs-primary);
  border-radius: 50%;
}
.op_steps .op_step_title {
  font-size: 22px;
  line-height: 30px;
  margin-bottom: 8px;
}

/* --- Footer -------------------------------------------------------- */
.site_footer .footer_columns {
  padding-bottom: 40px;
}
.footer_col_title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 18px;
}
.footer_about {
  font-size: 16px;
  line-height: 26px;
  color: rgba(255, 255, 255, 0.85);
  max-width: 22rem;
}
.footer_links > li,
.footer_contact > li {
  font-size: 16px;
  line-height: 26px;
  margin-bottom: 10px;
  color: rgba(255, 255, 255, 0.85);
}
.footer_links a,
.footer_contact a,
.footer_legal a {
  color: rgba(255, 255, 255, 0.85);
}
.footer_links a:hover,
.footer_contact a:hover,
.footer_legal a:hover {
  color: var(--bs-secondary);
}
.footer_contact > li {
  display: flex;
  gap: 12px;
}
.footer_contact i {
  flex: 0 0 20px;
  margin-top: 4px;
  color: var(--bs-secondary);
}
.footer_legal {
  gap: 20px;
}
.footer_legal > li {
  font-size: 15px;
}
.site_footer .copyright_widget .copyright_text {
  font-size: 15px;
}

/* --- Contatto rapido ----------------------------------------------- */
/* Il tema mette "torna su" a bottom:96px, la stessa posizione del pulsante
   WhatsApp: lo spostiamo più in alto così i due si impilano invece di
   sovrapporsi. */
.backtotop {
  right: 20px;
  bottom: 162px;
}

.op_whatsapp_fab {
  position: fixed;
  right: 20px;
  bottom: 92px;
  z-index: 90;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: #fff;
  background-color: #25D366;
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.35);
  transition: var(--bs-transition);
}
.op_whatsapp_fab:hover {
  color: #fff;
  transform: scale(1.06);
}

.op_mobile_bar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 95;
  background-color: #fff;
  border-top: 1px solid #E0E4E8;
  box-shadow: 0 -4px 20px rgba(41, 48, 57, 0.08);
}
.op_mobile_bar a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 10px 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--bs-dark);
  text-align: center;
}
.op_mobile_bar a i {
  font-size: 18px;
  color: var(--bs-primary);
}
.op_mobile_bar a.is_primary {
  color: #fff;
  background-color: var(--bs-primary);
}
.op_mobile_bar a.is_primary i {
  color: #fff;
}

/* --- Banner consenso ----------------------------------------------- */
.op_consent {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 200;
  background-color: #fff;
  border-radius: var(--bs-border-radius);
  box-shadow: 0 20px 50px rgba(41, 48, 57, 0.18);
}
.op_consent[hidden] {
  display: none;
}
.op_consent_inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  max-width: 1100px;
  margin: 0 auto;
}
.op_consent_inner p {
  flex: 1 1 420px;
  margin: 0;
  font-size: 15px;
  line-height: 24px;
}
.op_consent_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.op_consent_actions .btn {
  padding: 0 24px;
  font-size: 15px;
  justify-content: center;
}
.op_consent_actions .btn .btn_text {
  padding: 12px 0 14px;
}

/* --- Modulo a passi ------------------------------------------------ */
.op_form_card {
  padding: 44px;
  background-color: #fff;
  border-radius: var(--bs-border-radius);
  box-shadow: var(--bs-box-shadow-lg);
}
.op_form_progress {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
  list-style: none;
  padding: 0;
}
.op_form_progress li {
  flex: 1;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #98A0A8;
  padding-top: 12px;
  border-top: 4px solid #E6EAEC;
  transition: var(--bs-transition);
}
.op_form_progress li.is_active,
.op_form_progress li.is_done {
  color: var(--bs-primary);
  border-top-color: var(--bs-primary);
}
.op_form_step {
  display: none;
}
.op_form_step.is_active {
  display: block;
  animation: opFadeIn 0.35s ease;
}
@keyframes opFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .op_form_step.is_active { animation: none; }
  * { scroll-behavior: auto !important; }
}
.op_form_step_title {
  font-size: 28px;
  line-height: 36px;
  font-weight: 800;
  margin-bottom: 6px;
}
.op_form_step_hint {
  font-size: 16px;
  line-height: 26px;
  color: #6C737A;
  margin-bottom: 26px;
}

/* Scelte a card */
.op_choice_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
  margin-bottom: 8px;
}
.op_choice {
  position: relative;
}
.op_choice input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.op_choice span {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  padding: 18px 20px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--bs-dark);
  background-color: #fff;
  border: 2px solid #E0E4E8;
  border-radius: var(--bs-border-radius-sm);
  cursor: pointer;
  transition: var(--bs-transition);
}
.op_choice span i {
  font-size: 20px;
  color: var(--bs-primary);
}
.op_choice input:checked + span {
  border-color: var(--bs-primary);
  background-color: var(--bs-primary-bg-subtle);
}
.op_choice input:focus-visible + span {
  outline: 3px solid var(--bs-secondary);
  outline-offset: 2px;
}

.op_form_nav {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
  align-items: center;
  margin-top: 30px;
}
.op_form_error {
  display: none;
  margin-top: 10px;
  font-size: 15px;
  font-weight: 600;
  color: #C0392B;
}
.op_form_error.is_visible {
  display: block;
}
.op_privacy_check {
  font-size: 15px;
  line-height: 24px;
}
.op_privacy_check a {
  text-decoration: underline;
}
.op_form_reassurance {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid #EDF1F0;
  font-size: 15px;
  color: #6C737A;
}
.op_form_reassurance span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.op_form_reassurance i {
  color: var(--bs-primary);
}

/* Campo trappola: invisibile agli utenti, raggiungibile dai bot */
.op_hp {
  position: absolute;
  left: -5000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.op_form_feedback {
  margin: 18px 0 0;
  font-size: 16px;
  font-weight: 600;
}
.op_form_feedback.is_pending { color: var(--bs-primary); }
.op_form_feedback.is_error   { color: #C0392B; }

/* --- Dettagli della home ------------------------------------------- */
.op_hero_eyebrow {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bs-primary);
  margin-bottom: 14px;
}
.op_hero_note {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 22px 0 0;
  font-size: 15px;
  line-height: 24px;
  color: #6C737A;
}
.op_hero_note i { color: var(--bs-primary); }
.op_kicker {
  color: #A8A3A3;
  font-size: 0.75em;
}
.op_services_note {
  max-width: 46rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 17px;
  line-height: 28px;
}
.op_thanks_icon {
  font-size: 72px;
  line-height: 1;
  color: var(--bs-primary);
  margin-bottom: 24px;
}

/* --- Adattamenti ---------------------------------------------------- */
@media (max-width: 991px) {
  .op_prose > h2 { font-size: 28px; line-height: 36px; }
  .page_lead { font-size: 18px; line-height: 30px; }
  .op_cta_section .cta_banner_title { font-size: 28px; line-height: 36px; }
}

@media (max-width: 767px) {
  .op_mobile_bar { display: flex; }
  .page_wrapper { padding-bottom: 62px; }
  .op_whatsapp_fab { bottom: 78px; right: 16px; width: 50px; height: 50px; font-size: 25px; }
  .backtotop { bottom: 140px; right: 16px; }
  .op_consent { left: 8px; right: 8px; bottom: 70px; }
  .op_consent_inner { padding: 20px; }
  .op_consent_actions .btn { flex: 1; }
  .op_form_card { padding: 26px 20px; }
  .op_form_step_title { font-size: 23px; line-height: 30px; }
  .op_form_progress li { font-size: 11px; }
  .op_keypoints { padding: 22px 24px; }
}
