/*
 * Base condivisa per tutte le pagine del child theme.
 */

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
a,
button,
input,
select,
textarea,
label,
span,
strong,
em,
small,
li,
blockquote,
.btn,
.v2-btn,
.v2-ui-action-link,
.activity-filter-btn,
.attivita-filter-btn,
.viaggio-filter-btn,
.convenzioni-filter-btn {
  font-family: 'Forza', var(--fontFamily), sans-serif;
}

p,
main p {
  font-family: var(--fontFamily), sans-serif;
}

a[download] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}

a[download]::before {
  content: "";
  width: 1.4rem;
  height: 1.4rem;
  display: inline-block;
  flex-shrink: 0;
  background-image: url("../../etinetheme/media/svg/download.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

a:hover, 
a:focus, 
a[href^="mailto:"]:hover, 
a[href^="mailto:"]:focus, 
a[href^="tel:"]:hover, 
a[href^="tel:"]:focus{
  color: #2D3C4B;
}

/* Keep UI accents/headings in Forza even when they are rendered as <p>. */
.v2-kicker,
.home-v2-kicker,
.v2-kicker-light,
.v2-ui-section-label,
.attivita-card-date,
.activity-card-title,
.activity-card-link,
.activity-card-tag,
.convenzioni-card-title,
.convenzioni-card-pill,
.convenzioni-card-link,
.viaggio-section-tag,
.viaggio-section-title {
  font-family: 'Forza', var(--fontFamily), sans-serif;
}

/* Keep long-form/base card descriptions in reading font. */
.activity-card-text,
.convenzioni-card-kicker,
.convenzioni-card-address,
.viaggio-section-meta,
.review-text {
  font-family: var(--fontFamily), sans-serif;
}

/* Convenzioni modal: UI text in Forza, long-form About/Contacts in reading font. */
.convenzioni-modal-kicker,
.convenzioni-modal-subtitle,
.convenzioni-modal-section-label,
.convenzioni-modal-benefit-kicker,
.convenzioni-modal-benefit-title,
.convenzioni-modal-benefit-text,
.convenzioni-modal-benefit-value,
.convenzioni-modal-benefit-value-text,
.convenzioni-modal-actions .v2-btn {
  font-family: 'Forza', var(--fontFamily), sans-serif;
}

.convenzioni-modal-about-text,
.convenzioni-modal-about-text p,
.convenzioni-modal-about-text li,
.convenzioni-modal-contacts-text,
.convenzioni-modal-contacts-text p,
.convenzioni-modal-contacts-text li,
.convenzioni-modal-contacts-text a {
  font-family: var(--fontFamily), sans-serif;
}

.site-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.site-footer-social-icon {
  width: 2rem;
  height: 2rem;
  display: block;
  object-fit: contain;
}

.v2-side-popup {
  position: fixed;
  right: 0;
  bottom: 5rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1rem;
}

.v2-side-popup__trigger {
  min-width: 0;
  width: 5.8rem;
  height: 20rem;
  padding: 1.2rem 0.6rem;
  border-radius: 1.2rem 0 0 1.2rem;
  border: 0.2rem solid var(--v2-green);
  border-right: 0;
  background: var(--v2-dark);
  color: var(--v2-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

/* Strong override against base .v2-btn styles */
.v2-side-popup .v2-side-popup__trigger.v2-btn {
  min-width: 0 !important;
  width: 5.8rem !important;
  height: 30rem !important;
  padding: 1.2rem 0.6rem !important;
  border-radius: 1.2rem 0 0 1.2rem !important;
  border: 0.2rem solid var(--v2-green) !important;
  border-right: 0 !important;
  background: var(--v2-dark) !important;
  color: var(--v2-green) !important;
  letter-spacing: 0 !important;
}

.v2-side-popup__trigger span {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-transform: none;
  letter-spacing: 0;
  font-size: 2rem;
  line-height: 1;
  font-weight: 700;
}

.v2-side-popup__trigger::after {
  content: "★";
  position: absolute;
  bottom: 1.1rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2rem;
  line-height: 1;
  color: #ffb128;
}

.v2-side-popup__trigger:focus-visible,
.v2-side-popup__trigger:hover,
.v2-side-popup__trigger:focus {
  background: #253648;
  color: var(--v2-green);
  border-color: var(--v2-green);
}

.v2-side-popup .v2-side-popup__trigger.v2-btn:focus-visible,
.v2-side-popup .v2-side-popup__trigger.v2-btn:hover,
.v2-side-popup .v2-side-popup__trigger.v2-btn:focus {
  background: #253648 !important;
  color: var(--v2-green) !important;
  border-color: var(--v2-green) !important;
}

.v2-side-popup__panel {
  position: fixed;
  top: 9rem;
  right: 8.4rem;
  width: min(56rem, calc(100vw - 16.8rem));
  max-height: calc(100vh - 14rem);
  overflow-y: auto;
  background: var(--v2-white);
  border: 0.1rem solid #d6dfeb;
  border-radius: 1.6rem;
  box-shadow: 0 1.8rem 4.2rem rgba(23, 36, 49, 0.22);
  padding: 2.4rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.8rem);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.v2-side-popup.is-open .v2-side-popup__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.v2-side-popup.is-open .v2-side-popup__trigger {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(1rem);
}

.v2-side-popup__close {
  position: absolute;
  right: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #6f7f8f;
  font-size: 4.8rem;
  line-height: 1;
}

.v2-side-popup__title {
  margin: 0 0 1.6rem;
  font-size: 2.2rem;
  line-height: 1.05;
  color: var(--v2-darker);
}

.v2-side-popup__body {
  color: var(--v2-text);
}

.v2-side-popup__body .merlo-feedback-form .merlo-field {
  margin-bottom: 1rem;
}

.v2-side-popup__body .merlo-feedback-form .merlo-field > label {
  font-size: 1rem;
}

.merlo-feedback-form .merlo-rating__options {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}

.merlo-feedback-form .merlo-rating__star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9ba6ae;
  cursor: pointer;
  font-size: 2.3rem;
  line-height: 1;
}

.merlo-feedback-form .merlo-rating__star.is-active {
  color: var(--v2-green);
}

.merlo-feedback-form .merlo-rating__star:hover {
  color: var(--v2-green-dark);
}

.merlo-feedback-form .merlo-rating__star:focus-visible {
  color: var(--v2-green-dark);
  outline: 0.2rem solid var(--v2-green);
  outline-offset: 0.1rem;
}

.wpcf7 .merlo-form .merlo-field .merlo-rating.is-enhanced .merlo-rating__input {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0 !important;
}

.v2-side-popup__body .merlo-feedback-form .merlo-privacy label {
  font-size: 0.9rem;
}

.v2-side-popup__body .merlo-feedback-form .merlo-submit,
.v2-side-popup__body .merlo-feedback-form .wpcf7-submit {
  width: 100%;
}

@media (max-width: 767.98px) {
  .v2-side-popup {
    right: 1.6rem;
    bottom: 1.6rem;
  }

  .v2-side-popup .v2-side-popup__trigger.v2-btn {
    width: 6.4rem !important;
    height: 6.4rem !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0.2rem solid var(--v2-green) !important;
    border-radius: 50% !important;
    /* background: #253648 !important; */
    color: #ffb128 !important;
  }

  .v2-side-popup__trigger span {
    display: none;
  }

  .v2-side-popup__trigger::after {
    top: 50%;
    bottom: auto;
    transform: translate(-50%, -50%);
    font-size: 2.8rem;
  }

  .v2-side-popup__panel {
    top: 7.2rem;
    right: 1.2rem;
    width: calc(100vw - 2.4rem);
    max-height: calc(100vh - 9.6rem);
    padding: 1.8rem;
  }
}

.home-v2-btn {
  background: var(--v2-green);
  color: var(--v2-white);
  border: 0.1rem solid var(--v2-green);
  border-radius: var(--v2-radius-sm);
  font-size: var(--v2-fs-btn);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 1.5rem 5rem;
  min-width: 26rem;
}

.home-v2-btn:hover,
.home-v2-btn:focus,
.home-v2-btn:focus-visible {
  background: var(--v2-darker);
  color: var(--v2-white);
  border-color: var(--v2-green);
}

.home-v2-btn-outline {
  background: transparent;
  color: var(--v2-green-dark);
  border: 0.1rem solid var(--v2-green);
}

.home-v2-btn-outline:hover,
.home-v2-btn-outline:focus,
.home-v2-btn-outline:focus-visible {
  background: var(--v2-green-dark);
  color: var(--v2-white);
  border-color: var(--v2-green);
}

.home-v2-kicker {
  font-size: var(--v2-fs-kicker);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--v2-white);
}

.home-v2-kicker-light {
  color: var(--v2-green);
}
/* 
.text-white-75 {
  font-size: var(--v2-fs-p);
  color: rgba(255, 255, 255, 0.8);
}

.text-white-75 p,
.text-white-75 ul,
.text-white-75 ol,
.text-white-75 li {
  font-size: var(--v2-fs-p);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
}

.text-white-75 p:last-child,
.text-white-75 ul:last-child,
.text-white-75 ol:last-child {
  margin-bottom: 0;
} */

.v2-btn {
  background: var(--v2-green);
  color: var(--v2-white);
  border: 0.1rem solid var(--v2-green);
  border-radius: var(--v2-radius-sm);
  font-size: var(--v2-fs-btn);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 1.5rem 5rem;
  min-width: 26rem;
}

.v2-btn:hover,
.v2-btn:focus,
.v2-btn:focus-visible {
  background: var(--v2-green);
  color: var(--v2-white);
  border-color: var(--v2-green);
}

.v2-btn-outline {
  background: transparent;
  color: var(--v2-green-dark);
  border: 0.1rem solid var(--v2-green);
}

.v2-btn-outline:hover,
.v2-btn-outline:focus,
.v2-btn-outline:focus-visible {
  background: var(--v2-green-dark);
  color: var(--v2-white);
  border-color: var(--v2-green);
}

.v2-button-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}

.v2-kicker {
  font-size: var(--v2-fs-kicker);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--v2-white);
}

.v2-kicker-light {
  color: var(--v2-green);
}

.v2-title,
.v2-section-title {
  color: inherit;
}

.v2-title-white {
  color: var(--v2-white);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--v2-darker);
  font-weight: 700;
  line-height: 1.15;
}

h1 {
  font-size: clamp(45px, 9vw, 60px);
  overflow-wrap: break-word;
}

h2 {
  font-size: var(--v2-fs-h2);
}

h3 {
  font-size: 3.2rem;
}

h4 {
  font-size: 2.6rem;
}

h5 {
  font-size: 2.2rem;
}

h6 {
  font-size: 1.6rem;
}

.v2-color-green {
  color: var(--v2-green);
}

.v2-color-dark {
  color: var(--v2-darker);
}

.v2-color-white {
  color: var(--v2-white);
}

.v2-title.v2-title-white,
.v2-section-title.v2-title-white {
  color: var(--v2-white);
}

.v2-text {
  font-size: var(--v2-fs-p);
  color: var(--v2-text);
}

.v2-text-measure {
  max-width: 54ch;
}

.v2-text-measure-wide {
  max-width: 65ch;
}

.v2-text p,
.v2-text ul,
.v2-text ol,
.v2-text li {
  font-size: var(--v2-fs-p);
  line-height: 1.6;
}

.v2-text p:last-child,
.v2-text ul:last-child,
.v2-text ol:last-child {
  margin-bottom: 0;
}

/* .v2-text p + p,
.v2-text ul + p,
.v2-text p + ul,
.v2-text p + ol,
.v2-text ol + p {
  margin-top: 3rem;
} */

.v2-text-white {
  color: var(--v2-white);
}

.v2-text-white p,
.v2-text-white ul,
.v2-text-white ol,
.v2-text-white li {
  font-size: var(--v2-fs-p);
  line-height: 1.6;
  color: var(--v2-white);
}

/* Generic UI utilities for cards/modals */
.v2-ui-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 2.6rem;
  padding: 0.3rem 0.8rem;
  border: 0.1rem solid #9aabb9;
  border-radius: 999rem;
  font-size: 1.1rem;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.v2-ui-section-label {
  font-size: 1.3rem;
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.v2-ui-heading-xl {
  margin: 0;
  font-size: 4rem;
  line-height: 1.02;
  font-weight: 700;
}

.v2-ui-heading-lg {
  margin: 0;
  font-size: 2.2rem;
  line-height: 1.1;
  font-weight: 700;
}

.v2-ui-heading-md {
  margin: 0;
  font-size: 2.6rem;
  line-height: 1.12;
  font-weight: 700;
}

.v2-ui-subtitle {
  margin: 0;
  font-size: 1.8rem;
  line-height: 1.2;
  font-weight: 400;
  color: var(--v2-green);
  text-transform: uppercase;
}

.v2-ui-display-sm {
  margin: 0;
  font-size: 4.6rem;
  line-height: 1;
  font-weight: 700;
}

.v2-ui-text-sm {
  font-size: 1.6rem;
  line-height: 1.45;
}

.v2-ui-action-link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
}

@media (max-width: 991.98px) {
  .v2-ui-heading-xl {
    font-size: 3.5rem;
  }

  .v2-ui-heading-lg,
  .v2-ui-heading-md {
    font-size: 2rem;
  }

  .v2-ui-subtitle {
    font-size: 1.6rem;
  }

  .v2-ui-display-sm {
    font-size: 3.8rem;
  }

  .v2-ui-text-sm {
    font-size: 1.55rem;
  }
}

@media (max-width: 767.98px) {
  .v2-ui-heading-xl {
    font-size: 3rem;
  }

  .v2-ui-heading-lg,
  .v2-ui-heading-md {
    font-size: 1.8rem;
  }

  .v2-ui-subtitle,
  .v2-ui-text-sm {
    font-size: 1.45rem;
  }

  .v2-ui-display-sm {
    font-size: 3rem;
  }

  .v2-text p + p,
  .v2-text ul + p,
  .v2-text p + ul,
  .v2-text p + ol,
  .v2-text ol + p {
    margin-top: 2.4rem;
  }
}

.v2-text-white p:last-child,
.v2-text-white ul:last-child,
.v2-text-white ol:last-child {
  margin-bottom: 0;
}

.v2-section {
  background: var(--v2-white);
}

.v2-section-dark {
  background: var(--v2-dark);
  color: var(--v2-white);
}

.v2-hero {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  min-height: 85vh;
}

.v2-hero,
.home-v2-hero {
  border-bottom: 0.5rem solid var(--v2-green);
}

.v2-hero-content {
  position: relative;
  z-index: 3;
}

.v2-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(28, 42, 55, 0.9), rgba(28, 42, 55, 0.24));
  z-index: 2;
}

/* Info Box - Reusable Component */
.info-box {
  background: var(--v2-bg);
  border: 0.1rem solid var(--v2-green);
  border-radius: var(--v2-radius-md);
  padding: 2.2rem;
}

.info-box-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--v2-darker);
  margin-bottom: 0.6rem;
}

.info-box-text {
  font-size: 1.4rem;
  color: var(--v2-text);
  line-height: 1.5;
}

.diventa-socio-steps .info-box .info-box-text p {
  font-size: 1.6rem;
}

.info-box-text a {
  color: var(--v2-text);
}

footer p,
footer a {
  font-size: 1.6rem;
  line-height: 2.4rem;
}

.site-footer-copy-right a {
  color: red;
}

.site-footer-copy-left a {
  color: white;
}

@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: 1920px;
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

.btn-check:checked+.btn, 
.btn.active, 
.btn.show, 
.btn:first-child:active, 
:not(.btn-check)+.btn:active {
  background-color: inherit;
  color: inherit;
  border-color: inherit;
}