:root{
  --blue:#123aa8;
  --blue-2:#1d54d8;
  --blue-soft:#eaf0ff;
  --black:#0c0d12;
  --ink:#171925;
  --muted:#687087;
  --white:#ffffff;
  --red:#e31d2d;
  --green:#179447;
  --yellow:#ffbf22;
  --navy:#071b36;
  --line:#dfe4f0;
  --shadow:0 18px 50px rgba(18,58,168,.13);
  --radius:28px;
  --radius-sm:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f8f9fd;line-height:1.6}
a{color:inherit}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}
.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:10px;background:#fff;padding:10px 14px;z-index:9999}.skip-link:focus{left:10px}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(18,58,168,.08)}
.navbar{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:950;letter-spacing:.01em}
.brand img{width:142px;height:78px;object-fit:contain;object-position:left center;border-radius:12px;/*background:#fff*/
}
.nav-links{display:flex;align-items:center;gap:8px}
.nav-links a{text-decoration:none;font-weight:800;font-size:.95rem;padding:10px 12px;border-radius:999px}
.nav-links a:hover,.nav-links a.active{background:var(--blue-soft);color:var(--blue)}
.nav-cta{background:var(--blue)!important;color:#fff!important;box-shadow:0 7px 0 #082267}
.menu-toggle{display:none;border:0;background:var(--black);color:#fff;width:46px;height:46px;border-radius:14px;font-size:1.35rem;cursor:pointer}
.hero{position:relative;overflow:hidden;background:
 radial-gradient(circle at 15% 15%,rgba(29,84,216,.2),transparent 32%),
 radial-gradient(circle at 90% 25%,rgba(227,29,45,.12),transparent 28%),
 linear-gradient(135deg,#fafdff 0%,#eef3ff 52%,#ffffff 100%)}
.hero:before,.hero:after{content:"";position:absolute;border:4px solid var(--black);border-radius:50%;opacity:.05}
.hero:before{width:260px;height:260px;right:-70px;top:40px}.hero:after{width:150px;height:150px;left:-30px;bottom:10px}
.hero-grid{min-height:680px;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding:82px 0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.14em;font-weight:950;font-size:.78rem;color:var(--red);margin:0 0 14px}
.eyebrow:before{content:"🐾";font-size:1rem}
h1,h2,h3{font-weight:950;line-height:.98;letter-spacing:-.035em;margin-top:0}
h1{font-size:clamp(3.2rem,7vw,6.6rem);text-transform:uppercase;margin-bottom:22px;color:var(--black)}
h1 .accent{color:var(--blue);text-shadow:3px 3px 0 #d6e0ff}
.hero p{font-size:1.18rem;max-width:700px;color:#3f4760}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font-weight:950;border-radius:999px;padding:15px 22px;border:2px solid transparent;transition:.2s ease;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 0 #082267}.btn-primary:hover{box-shadow:0 6px 0 #082267}
.btn-secondary{background:#fff;border-color:var(--black);color:var(--black);box-shadow:0 7px 0 rgba(12,13,18,.12)}
.hero-card{position:relative;background:#fff;border:4px solid var(--black);border-radius:34px;padding:28px;box-shadow:18px 18px 0 rgba(18,58,168,.16);transform:rotate(1deg)}
.hero-card img{width:100%;border-radius:24px}
.tricolor{display:grid;grid-template-columns:1fr 1fr 1fr;height:7px;border-radius:99px;overflow:hidden;margin-top:18px}.tricolor i:nth-child(1){background:var(--green)}.tricolor i:nth-child(2){background:#fff;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.tricolor i:nth-child(3){background:var(--red)}
.section{padding:86px 0}.section.alt{background:#fff}.section.dark{background:var(--black);color:#fff}.section.dark p{color:#6fa8ff}.section.dark h2{color:#fff}.section.dark .event-card p{color:#687087}
.section-head{
  max-width:780px;
  margin-bottom:38px}.section-head h2{font-size:clamp(2.4rem,5vw,4.8rem);text-transform:uppercase;color:var(--black);margin-bottom:18px}.section-head p{font-size:1.08rem;color:var(--muted);margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;border:3px solid var(--black);border-radius:24px;padding:26px;box-shadow:8px 8px 0 rgba(18,58,168,.10)}.card .icon{font-size:2rem}.card h3{font-size:1.45rem;margin:16px 0 10px}.card p{margin:0;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:start}.panel{background:#fff;border-radius:var(--radius);padding:34px;border:1px solid var(--line);box-shadow:var(--shadow)}.panel h3{font-size:1.9rem;margin-bottom:14px}.panel p:last-child{margin-bottom:0}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.badge{background:var(--blue-soft);color:var(--blue);font-weight:900;border-radius:999px;padding:8px 12px;font-size:.86rem}
.feature-list{display:grid;gap:14px}.feature{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start}.feature .num{width:48px;height:48px;border-radius:15px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:0 5px 0 #082267}.feature h3{margin:3px 0 6px;font-size:1.15rem}.feature p{margin:0;color:var(--muted)}
.banner{background:linear-gradient(135deg,var(--blue),#082267);color:#fff;border-radius:34px;padding:38px;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 22px 60px rgba(18,58,168,.22)}.banner h2{margin:0;font-size:clamp(2rem,4vw,4rem);text-transform:uppercase}.banner p{margin:10px 0 0;color:#dce6ff}.banner .btn-secondary{flex:none}
.page-hero{background:linear-gradient(135deg,#eef3ff,#fff);border-bottom:1px solid var(--line)}.page-hero .container{padding:78px 0 64px}.page-hero h1{font-size:clamp(3rem,6vw,5.6rem);margin-bottom:16px}.page-hero p{
  max-width:760px;
  font-size:1.15rem;color:var(--muted)}
.timeline{display:grid;gap:18px}.timeline-item{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:start}.timeline-year{font-weight:950;color:var(--blue);font-size:1.1rem;padding-top:4px}.timeline-body{background:#fff;border-left:5px solid var(--blue);padding:18px 20px;border-radius:0 18px 18px 0;box-shadow:var(--shadow)}.timeline-body h3{margin-bottom:8px}
.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.event-card{background:#fff;border-radius:26px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.event-art{min-height:220px;background:linear-gradient(145deg,var(--blue),var(--black));display:grid;place-items:center;color:#fff;text-align:center;padding:28px}.event-art span{font-size:7.85rem}.event-card .content{padding:24px}.event-card h3{font-size:1.6rem;margin-bottom:10px}.event-card p{color:var(--muted)}
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{counter-increment:step;background:#fff;border:2px solid var(--line);border-radius:24px;padding:26px}.step:before{content:counter(step);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;font-weight:950;margin-bottom:18px}.step h3{font-size:1.35rem;margin-bottom:10px}.step p{margin:0;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:26px}.contact-card{background:var(--black);color:#fff;border-radius:28px;padding:30px}.contact-card p{color:#d7dced}.contact-card a{color:#fff;font-weight:850}.form{background:#fff;border-radius:28px;padding:30px;border:1px solid var(--line);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:850}.field input,.field textarea,.field select{width:100%;padding:13px 15px;border:2px solid #dfe4ee;border-radius:14px;background:#fbfcff}.field input:focus,.field textarea:focus,.field select:focus{outline:3px solid rgba(18,58,168,.16);border-color:var(--blue)}
.notice{background:#fff7d9;border-left:5px solid #f0b400;padding:16px 18px;border-radius:12px;color:#5a4813}
.success {
    background: #e8f7ed;
    border-left: 5px solid #2e9d57;
    padding: 16px 18px;
    border-radius: 12px;
    color: #1e6338;
}

.legal h2{font-size:2rem;margin-top:36px}.legal h3{font-size:1.3rem;margin-top:26px}.legal p,.legal li{color:#4d556c}
.site-footer{background:#090a0f;color:#fff;padding:54px 0 28px;margin-top:0}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:30px}.card-logo{width:170px;border-radius:14px;padding:4px;margin: 0 auto;}.footer-logo{width:170px;border-radius:14px;padding:4px}.site-footer h3{font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.site-footer p,.site-footer a{color:#bdc3d5}.site-footer a{text-decoration:none}.site-footer a:hover{color:#fff}.footer-links{display:grid;gap:8px}.footer-bottom{border-top:1px solid #262936;margin-top:34px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:#858da2;font-size:.9rem}
.kicker{font-weight:950;color:var(--blue);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:36px;min-height:auto;padding:64px 0}.hero-card{max-width:650px}.cards,.steps{grid-template-columns:1fr 1fr}.grid-2,.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.nav-links{position:fixed;top:78px;left:16px;right:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links a{text-align:center}.menu-toggle{display:block}}
@media(max-width:680px){.container{width:min(100% - 22px,1180px)}.navbar{height:70px}.brand img{width:120px;height:48px}.nav-links{top:70px}.hero-grid{padding:48px 0}.hero-card{padding:14px;border-width:3px;box-shadow:10px 10px 0 rgba(18,58,168,.15)}h1{font-size:clamp(2.7rem,14vw,4.4rem)}.section{padding:58px 0}.cards,.steps,.event-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.section-head h2{font-size:2.7rem}.banner{padding:28px;align-items:flex-start;flex-direction:column}.timeline-item{grid-template-columns:1fr;gap:8px}.timeline-year{padding-left:4px}.page-hero .container{padding:56px 0 44px}.page-hero h1{font-size:3.2rem}.actions .btn{width:100%}}
.board-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center top;
  border-radius: 14px;
  margin-bottom: 20px;
}

@media (min-width: 700px) {
  .cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 699px) {
  .cards {
    grid-template-columns: 1fr;
  }
}


.event-art {
  display: flex;
  justify-content: center;
  align-items: center;
}

.event-art > div {
  display: flex;
  flex-direction: column;
  align-items: center;
}


.event-art img {
  width: 200px;
  height: 200px;
  object-fit: contain;
  display: block;

  /* bordo bianco attorno alla sagoma */
  filter:
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff);
}
/* Checkbox privacy */
.privacy-check {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  width: auto;
}

.privacy-check input[type="checkbox"] {
  width: auto;
  flex: 0 0 auto;
  margin: 0;
}

.privacy-check a {
  white-space: nowrap;
}
.titolo {
    text-align: center;
    margin-top: 40px;
    margin-bottom: 25px;
}
.card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.card-link:hover {
  transform: translateY(-3px);
}

/* =========================================================
   TESSERAMENTO
   Form associativo coerente con lo stile Wild Paws Italia
   ========================================================= */

.membership-panel {
  position: relative;
  padding: 38px;
  overflow: hidden;
}

.membership-panel::before {
  content: "🐾";
  position: absolute;
  right: -12px;
  top: -25px;
  font-size: 9rem;
  line-height: 1;
  opacity: .045;
  transform: rotate(12deg);
  pointer-events: none;
}

.membership-panel > * {
  position: relative;
  z-index: 1;
}

.membership-panel h3 {
  font-size: clamp(2rem, 4vw, 3rem);
  text-transform: uppercase;
  margin-bottom: 12px;
}

.membership-panel > p:not(.kicker) {
  color: var(--muted);
  max-width: 760px;
}


/* -------------------------
   Form
   ------------------------- */

.membership-form {
  margin-top: 30px;
}

.membership-form fieldset {
  margin: 0 0 24px;
  padding: 26px;
  border: 2px solid var(--line);
  border-radius: 22px;
  background: #fbfcff;
}

.membership-form legend {
  padding: 0 10px;
  font-size: 1.15rem;
  font-weight: 950;
  color: var(--black);
  letter-spacing: -.02em;
}


/* -------------------------
   Griglia campi
   ------------------------- */

.membership-form .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.form-field label {
  font-size: .9rem;
  font-weight: 900;
  color: var(--black);
}

.form-field input,
.form-field textarea,
.form-field select {
  width: 100%;
  border: 2px solid #dfe4ee;
  border-radius: 15px;
  background: #fff;
  color: var(--ink);
  padding: 13px 15px;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background .18s ease;
}

.form-field input {
  min-height: 50px;
}

.form-field textarea {
  resize: vertical;
  min-height: 120px;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
  color: #9aa2b5;
}

.form-field input:hover,
.form-field textarea:hover,
.form-field select:hover {
  border-color: #bcc6dc;
}

.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
  outline: none;
  border-color: var(--blue);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(18,58,168,.10);
}


/* -------------------------
   Checkbox
   ------------------------- */

.checkbox-field {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 11px;
  align-items: start;
  margin-top: 16px;
  padding: 13px 15px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #e5e8f1;
}

.checkbox-field:hover {
  border-color: #cbd4e8;
}

.checkbox-field input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: var(--blue);
  cursor: pointer;
}

.checkbox-field label {
  font-size: .92rem;
  line-height: 1.45;
  color: #4d556c;
  cursor: pointer;
}

.checkbox-field a {
  color: var(--blue);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 2px;
}


/* -------------------------
   Quota associativa
   ------------------------- */

.membership-payment {
  background:
    linear-gradient(
      135deg,
      #f4f7ff 0%,
      #ffffff 100%
    ) !important;
  border: 3px solid var(--blue) !important;
  box-shadow: 7px 7px 0 rgba(18,58,168,.10);
}

.membership-fee {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 4px 0 12px;
  padding: 18px 20px;
  border-radius: 17px;
  background: #fff;
  border: 2px solid var(--line);
  color: var(--muted);
  font-size: 0.88rem;
}

.membership-fee strong {
  color: var(--blue);
  font-size: 1.5rem;
  font-weight: 950;
  white-space: nowrap;
}

.form-note {
  margin: 12px 0 0;
  padding: 14px 16px;
  border-left: 4px solid var(--red);
  border-radius: 0 12px 12px 0;
  background: #fff;
  color: var(--muted);
  font-size: .9rem;
}


/* -------------------------
   Pulsante
   ------------------------- */

.form-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 28px;
}

.membership-form .btn-primary {
  min-height: 54px;
  padding-inline: 26px;
  font-size: .98rem;
}

.membership-form .btn-primary::after {
  content: " →";
  font-size: 1.15rem;
}


/* -------------------------
   Messaggi
   ------------------------- */

.form-message {
  margin: 20px 0 0;
  padding: 15px 18px;
  border-radius: 15px;
  font-weight: 750;
}

.form-message.success {
  display: block;
  background: #eaf8f0;
  border: 2px solid #a9dfc0;
  color: #116b35;
}


/* -------------------------
   Campi non validi
   ------------------------- 

.membership-form input:invalid:not(:placeholder-shown),
.membership-form textarea:invalid:not(:placeholder-shown),
.membership-form select:invalid {
  border-color: #e4a0a7;
}
*/

.membership-form input:valid,
.membership-form textarea:valid,
.membership-form select:valid {
  border-color: #cfd6e5;
}


/* -------------------------
   Responsive tablet
   ------------------------- */

@media (max-width: 760px) {

  .membership-panel {
    padding: 26px 20px;
  }

  .membership-form fieldset {
    padding: 20px 16px;
    border-radius: 18px;
  }

  .membership-form .form-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .membership-fee {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .membership-fee strong {
    font-size: 1.35rem;
  }

  .form-actions {
    justify-content: stretch;
  }

  .membership-form .btn-primary {
    width: 100%;
  }
}


/* -------------------------
   Responsive mobile
   ------------------------- */

@media (max-width: 480px) {

  .membership-panel {
    padding: 22px 14px;
    border-radius: 22px;
  }

  .membership-panel h3 {
    font-size: 2rem;
  }

  .membership-form fieldset {
    padding: 18px 13px;
    margin-bottom: 18px;
  }

  .membership-form legend {
    font-size: 1rem;
  }

  .checkbox-field {
    grid-template-columns: 20px 1fr;
    padding: 12px;
  }

  .checkbox-field input[type="checkbox"] {
    width: 18px;
    height: 18px;
  }

  .checkbox-field label {
    font-size: .86rem;
  }
}

.regulation-text {
    display: none;
}

.regulation-text.visible {
    display: block;
}

html {
    scroll-behavior: smooth;
}

#regulation-content {
    scroll-margin-top: 100px;
}

.cards .card p {
  margin-bottom: 16px;
}


/* =========================================================
   LANGUAGE SWITCH
   ========================================================= */

.nav__right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.language-switch {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 5px;
  background: var(--blue-soft);
  border: 2px solid rgba(255,255,255,.35);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  box-shadow: 0 5px 15px rgba(0,0,0,.2);
}

.language-btn {
  border: 0;
  background: transparent;
  color: var(--blue);
  -webkit-text-stroke: 1px rgba(0, 0, 0, 0.18);
  padding: 7px 9px;
  border-radius: 999px;
  font-family: inherit;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.language-btn:hover {
  color: #fff;
  transform: translateY(-1px);
}

.language-btn.is-active {
  background: var(--yellow);
  color: var(--navy);
  box-shadow: 0 3px 0 #9d6b00;
}

.language-divider {
  color: var(--blue);
  font-weight: 900;
  user-select: none;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 820px) {
  .nav { gap: 10px; }
  .nav__right { gap: 7px; }

  .nav__cta {
    padding: 10px 13px;
    font-size: .75rem;
  }

  .language-switch { padding: 4px 5px; }

  .language-btn {
    padding: 6px 7px;
    font-size: .7rem;
  }
}

@media (max-width: 480px) {
  .brand { font-size: .75rem; }
  .nav { padding: 16px 12px; }
  .nav__right { gap: 5px; }
  .nav__cta { display: none; }
  .language-switch { padding: 3px 4px; }
  .language-btn {
    padding: 6px;
    font-size: .68rem;
  }
}
/*
.header-inner {
  display: flex;
  align-items: center;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-left: 24px;
}

.menu-toggle {
  display: none;
}
*/
.header-inner {
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: 16px;
}

.menu-toggle {
  display: none;
}


/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

@media (max-width: 980px) {

  .header-inner {
    position: relative;
  }

  .nav-links {
    position: fixed;
    top: 78px;
    left: 16px;
    right: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 14px;
    box-shadow: var(--shadow);
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-left: 0;
  }

  .nav-links.open {
    display: flex;
  }

  .nav-links a {
    text-align: center;
  }

  .header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
  }

  .menu-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: var(--black);
    color: #fff;
    cursor: pointer;
  }

  .menu-toggle span {
    display: block !important;
    width: 22px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
  }
}


/* =========================================================
   MOBILE SMALL
   ========================================================= */

@media (max-width: 680px) {

  .navbar {
    height: 70px;
  }

  .nav-links {
    top: 70px;
  }

  .header-actions {
    gap: 8px;
  }

  .language-switch {
    padding: 4px;
  }

  .language-btn {
    padding: 6px 7px;
    font-size: .7rem;
  }

  .menu-toggle {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    border-radius: 12px;
  }
}

@media (max-width: 980px) {
  .header-actions {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 0;
  }

  .language-switch {
    order: 1;
  }

  .menu-toggle {
    order: 2;
    display: flex !important;
  }
}



/* =========================================================
   MEMBERSHIP FORM - DYNAMIC FIELDS
   ========================================================= */

.membership-form .form-field-full {
  grid-column: 1 / -1;
}

.membership-form .form-field[hidden],
.membership-form fieldset[hidden] {
  display: none !important;
}


/* ---------------------------------------------------------
   Helper text
   --------------------------------------------------------- */

.field-help {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45;
}


/* ---------------------------------------------------------
   Autocomplete
   --------------------------------------------------------- */

.autocomplete {
  position: relative;
  width: 100%;
}

.autocomplete-results {
  position: absolute;
  z-index: 50;
  top: calc(100% + 6px);
  left: 0;
  right: 0;

  max-height: 260px;
  overflow-y: auto;

  background: #fff;
  border: 2px solid var(--line);
  border-radius: 15px;

  box-shadow:
    0 15px 35px rgba(12, 13, 18, .14);

  padding: 6px;
}

.autocomplete-option {
  width: 100%;
  display: block;

  padding: 11px 13px;

  border: 0;
  border-radius: 10px;

  background: transparent;
  color: var(--ink);

  text-align: left;
  font-weight: 700;

  cursor: pointer;
}

.autocomplete-option:hover,
.autocomplete-option:focus {
  background: var(--blue-soft);
  color: var(--blue);

  outline: none;
}


/* ---------------------------------------------------------
   Campo valido / erro
   --------------------------------------------------------- */

.membership-form input.field-error,
.membership-form select.field-error,
.membership-form textarea.field-error {
  border-color: var(--red) !important;

  box-shadow:
    0 0 0 4px rgba(227, 29, 45, .09);
}

.membership-form input.field-valid,
.membership-form select.field-valid,
.membership-form textarea.field-valid {
  border-color: #b8d9c4;
}


/* ---------------------------------------------------------
   Honeypot
   --------------------------------------------------------- */

.form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;

  left: -10000px !important;
  top: auto !important;

  opacity: 0 !important;
}


/* ---------------------------------------------------------
   Submit loading
   --------------------------------------------------------- */

.membership-form .btn-primary:disabled {
  opacity: .72;
  cursor: wait;
  transform: none;
}

.membership-form .btn-primary.is-loading::after {
  content: " …";
}


/* ---------------------------------------------------------
   Messaggi
   --------------------------------------------------------- */

.form-message.error {
  display: block;

  background: #fff0f1;

  border: 2px solid #f0b7bc;
  border-left: 5px solid var(--red);

  color: #8d1823;
}

.form-message.success {
  display: block;

  background: #eaf8f0;

  border: 2px solid #a9dfc0;
  border-left: 5px solid var(--green);

  color: #116b35;
}

.application-reference {
  margin-top: 8px;

  font-weight: 950;
  color: var(--blue);
}


/* ---------------------------------------------------------
   Membership fee
   --------------------------------------------------------- */

.membership-fee {
  flex-wrap: wrap;
}


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

@media (max-width: 760px) {

  .membership-form .form-field-full {
    grid-column: auto;
  }

  .membership-form .autocomplete-results {
    max-height: 220px;
  }

}


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

@media (max-width: 480px) {

  .membership-form fieldset {
    width: 100%;
  }

  .membership-form .form-field input,
  .membership-form .form-field select,
  .membership-form .form-field textarea {
    font-size: 16px;
  }

  .autocomplete-results {
    max-height: 200px;
  }

  .membership-fee {
    padding: 16px;
  }

}

/* =========================================================
   TELEFONO - intl-tel-input
   ========================================================= */

.iti {
  width: 100%;
}

.iti input {
  width: 100%;
  border-radius: 15px !important;
}

/* Parte con bandiera + prefisso */
.iti__selected-flag {
  border-radius: 13px 0 0 13px;
}

/* Menu dei Paesi */
.iti__country-list {
  z-index: 9999;
}

@media (max-width: 760px) {

  .membership-form .form-grid > .form-field {
    min-width: 0;
  }

  .membership-form input[type="date"] {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    display: block;
    -webkit-appearance: none;
    appearance: none;
  }

}


.dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    margin: 0 0 20px;
}

.dots span {
    display: inline-block;
    animation: dotsJump 1.2s infinite ease-in-out;
}

.dots span:nth-child(1) {
    animation-delay: 0s;
}

.dots span:nth-child(2) {
    animation-delay: 0.15s;
}

.dots span:nth-child(3) {
    animation-delay: 0.30s;
}

@keyframes dotsJump {
    0%,
    60%,
    100% {
        transform: translateY(0);
    }

    30% {
        transform: translateY(-10px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dots span {
        animation: none;
    }
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color: #000 !important;
    background-color: #fff !important;
    transition: background-color 9999s ease-out 0s;
}


/* =========================================================
   PAGINA RISULTATO PAGAMENTO
   Correzione layout mobile / iPhone
   ========================================================= */

.payment-result {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 70vh;

  display: grid;
  place-items: center;

  padding: 40px 16px;
  text-align: center;

  overflow-x: hidden;
}

.payment-card {
  width: 100%;
  max-width: 760px;
  min-width: 0;

  margin: 0 auto;
  padding: 36px;

  box-sizing: border-box;

  text-align: center;
}

.payment-card h1,
.payment-card h3,
.payment-card p {
  max-width: 100%;
  min-width: 0;

  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.payment-card h1 {
  text-wrap: balance;
}

.payment-card .btn {
  max-width: 100%;
  box-sizing: border-box;
}

.payment-reference {
  margin-top: 24px;
  font-size: .9em;
  opacity: .7;
}


/* Smartphone */
@media (max-width: 680px) {

  .payment-result {
    width: 100%;
    max-width: 100%;
    padding: 32px 12px;
  }

  .payment-card {
    width: 100%;
    max-width: 100%;
    padding: 28px 18px;
    text-align: center;
  }

  .payment-card h1 {
    font-size: clamp(2.2rem, 10vw, 3.2rem);
    line-height: 1.05;
    text-wrap: balance;
  }

  .payment-card h3 {
    font-size: 1.05rem;
    line-height: 1.4;
  }

  .payment-card p {
    line-height: 1.5;
  }
}


/* iPhone piccoli */
@media (max-width: 390px) {

  .payment-result {
    padding-left: 8px;
    padding-right: 8px;
  }

  .payment-card {
    padding: 24px 14px;
  }

  .payment-card h1 {
    font-size: 2rem;
  }
}
/* =========================================================
   DONAZIONE + TOTALE
   ========================================================= */

.donation-box {
  margin-top: 18px;
  padding: 20px;
  border-radius: 18px;
  background: #fff;
  border: 2px solid var(--line);
}

.donation-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.donation-title {
  margin: 0;
  font-weight: 950;
  color: var(--black);
  font-size: 1rem;
}

.donation-description {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .88rem;
}

.donation-value {
  flex: 0 0 auto;
  color: var(--blue);
  font-size: 1.5rem;
  font-weight: 950;
  white-space: nowrap;
}


/* -------------------------
   Slider
   ------------------------- */

.donation-slider-wrap {
  margin-top: 22px;
}

#donazione {
  --donation-progress: 0%;

  width: 100%;
  height: 8px;

  appearance: none;
  -webkit-appearance: none;

  border: 0;
  border-radius: 999px;

  background:
    linear-gradient(
      to right,
      var(--blue) 0%,
      var(--blue) var(--donation-progress),
      #dfe4f0 var(--donation-progress),
      #dfe4f0 100%
    );

  cursor: pointer;
}


/* Chrome / Edge / Safari */

#donazione::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: 999px;
  background: transparent;
}

#donazione::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;

  width: 24px;
  height: 24px;

  margin-top: -8px;

  border: 4px solid #fff;
  border-radius: 50%;

  background: var(--blue);

  box-shadow:
    0 3px 0 #082267,
    0 4px 12px rgba(18,58,168,.25);

  cursor: grab;
}

#donazione::-webkit-slider-thumb:active {
  cursor: grabbing;
}


/* Firefox */

#donazione::-moz-range-track {
  height: 8px;
  border-radius: 999px;
  background: #dfe4f0;
}

#donazione::-moz-range-progress {
  height: 8px;
  border-radius: 999px;
  background: var(--blue);
}

#donazione::-moz-range-thumb {
  width: 18px;
  height: 18px;

  border: 4px solid #fff;
  border-radius: 50%;

  background: var(--blue);

  box-shadow:
    0 3px 0 #082267,
    0 4px 12px rgba(18,58,168,.25);

  cursor: grab;
}


/* Focus accessibile */

#donazione:focus {
  outline: none;
}

#donazione:focus-visible {
  box-shadow: 0 0 0 4px rgba(18,58,168,.14);
  border-radius: 999px;
}


/* Scala */

.donation-scale {
  display: flex;
  justify-content: space-between;
  margin-top: 9px;

  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}


/* -------------------------
   Totale
   ------------------------- */

.membership-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  margin-top: 18px;
  padding: 20px;

  border-radius: 17px;

  background: #fff;
  border: 2px solid var(--line);
  color: var(--muted);

 

  /*font-weight: 900;*/
    font-size: 1.05rem;

}

.membership-total span {
  font-size: 1.05rem;
}

.membership-total strong {
  color: var(--blue);
  font-size: 1.7rem;
  font-weight: 950;
  white-space: nowrap;
}


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

@media (max-width: 600px) {

  .donation-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .donation-value {
    font-size: 1.35rem;
  }

  .membership-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .membership-total strong {
    font-size: 1.55rem;
  }

}


/* =========================================================
   RINNOVO TESSERA
   ========================================================= */

.renewal-member-info {
  margin-bottom: 30px;
}

.renewal-member-info h3 {
  margin-bottom: 12px;
}

.renewal-member-info > p:not(.kicker) {
  color: var(--muted);
  max-width: 760px;
}

.renewal-member-info .membership-fee {
  margin-top: 14px;
  margin-bottom: 0;
}

.renewal-member-info .membership-fee strong {
  font-size: 1.15rem;
}


/* Stato tessera */

.renewal-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 8px 13px;
  border-radius: 999px;
  background: var(--blue-soft);
  color: var(--blue);
  font-size: .85rem;
  font-weight: 900;
}


/* Token non valido / errore */

.renewal-error {
  margin-bottom: 24px;
  padding: 18px 20px;
  border-radius: 16px;
  background: #fff0f1;
  border: 2px solid #f0b7bc;
  border-left: 5px solid var(--red);
  color: #8d1823;
}

.renewal-error strong {
  display: block;
  margin-bottom: 4px;
}

/* WPI — preferenze cookie */
.wpi-cookie{position:fixed;inset:auto 20px 20px auto;margin:0;width:min(580px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:auto;padding:28px;background:#fff;color:var(--ink);border:3px solid var(--black);border-radius:28px;box-shadow:10px 10px 0 rgba(18,58,168,.22),0 20px 70px #071b3633;z-index:10010}
.wpi-cookie::backdrop{background:#071b3655;backdrop-filter:blur(3px)}
.wpi-cookie h2{font-size:clamp(1.8rem,5vw,2.3rem);line-height:1.08;margin:10px 36px 16px 0;text-transform:uppercase}
.wpi-cookie p{font-size:.95rem;line-height:1.6;color:#4d556c;margin:0 0 16px}
.wpi-cookie .wpi-cookie-kicker{color:var(--blue);font-size:.75rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.wpi-cookie-close{position:absolute;right:18px;top:18px;width:40px;height:40px;border:2px solid var(--black);border-radius:50%;background:#fff;font-size:1.5rem;cursor:pointer;line-height:1}
.wpi-cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 20px}
.wpi-cookie .btn{font-size:.88rem;padding:12px 14px;min-height:48px}
.wpi-cookie-actions .wpi-cookie-custom{grid-column:1/-1;background:var(--blue-soft);border-color:var(--blue);color:var(--blue);box-shadow:none}
.wpi-cookie a{color:var(--blue);text-underline-offset:3px;font-weight:800;font-size:.9rem}
.wpi-cookie-row{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:14px;background:#f2f5ff;border:1px solid var(--line);border-radius:16px;margin-top:10px}
.wpi-cookie-row strong{display:block;font-size:.95rem}.wpi-cookie-row small{display:block;color:#4d556c;font-size:.8rem;line-height:1.5;margin-top:4px}.wpi-cookie-row input{width:22px;height:22px;accent-color:var(--blue);flex:none}.wpi-cookie-row span{min-width:0}.wpi-cookie-row b{font-size:.72rem;color:#176235;white-space:nowrap}
.wpi-cookie [hidden]{display:none!important}
.wpi-cookie-reopen{position:fixed;bottom:16px;left:16px;z-index:1001;background:#fff;color:var(--blue);border:2px solid var(--black);border-radius:999px;padding:9px 15px;font-size:.8rem;font-weight:850;box-shadow:3px 3px 0 #123aa822;cursor:pointer}
.wpi-cookie :focus-visible,.wpi-cookie-reopen:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.wpi-cookie-status{font-size:.8rem!important;color:#8a3000!important}
@media(max-width:600px){.wpi-cookie{inset:auto 10px 10px;width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:22px 18px;border-radius:22px;box-shadow:0 10px 40px #071b3633}.wpi-cookie-actions{gap:10px}.wpi-cookie .btn{font-size:.8rem;padding:10px 8px}.wpi-cookie-reopen{bottom:10px;left:10px}}
@media(prefers-reduced-motion:reduce){.wpi-cookie .btn{transition:none}}
#wpi-cookie-title:focus {
  outline: none;
}
.wpi-cookie-reopen {
  display: none;
}