/*
Theme Name: Ebike Premium
Template: generatepress
Author: Ebike Rental
Version: 1.0
Description: Child theme GeneratePress per la landing page Ebike Rental & Tour Puglia.
*/

/* ==========================================================================
   Gli stili della landing sono confinati in .ebike-home per non
   interferire con il CSS di GeneratePress e degli altri plugin attivi.
   ========================================================================== */

.ebike-home {
  --verde: #26382F;
  --verde-hover: #3F5F46;
  --oliva: #769358;
  --ocra: #E0A63B;
  --ocra-hover: #c9902c;
  --bianco: #FFFFFF;
  --avorio: #FFFAF0;
  --crema: #F6EBD8;
  --testo: #181B17;
  --grigio: #5A5A5A;

  --font-title: 'Montserrat', sans-serif;
  --font-body: 'Inter', sans-serif;

  --container: 1200px;
  --radius: 12px;

  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--testo);
  background: var(--bianco);
  -webkit-font-smoothing: antialiased;
}

.ebike-home *,
.ebike-home *::before,
.ebike-home *::after { margin: 0; padding: 0; box-sizing: border-box; }

.ebike-home img { max-width: 100%; display: block; }
.ebike-home a { text-decoration: none; color: inherit; }

.ebike-home h1,
.ebike-home h2,
.ebike-home h3,
.ebike-home h4 { font-family: var(--font-title); font-weight: 600; line-height: 1.15; }
.ebike-home h1 { font-size: 56px; letter-spacing: -0.5px; }
.ebike-home h2 { font-size: 36px; margin-bottom: 24px; color: var(--verde); }
.ebike-home h3 { font-size: 24px; }
.ebike-home p { color: var(--grigio); }

.ebike-home .container { max-width: var(--container); margin: 0 auto; padding: 0 32px; }

/* Pulsanti CRO */
.ebike-home .btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 52px; padding: 0 32px; border-radius: 6px;
  font-family: var(--font-body); font-size: 16px; font-weight: 600;
  transition: all .3s ease; cursor: pointer; border: none; text-align: center;
}
.ebike-home .btn-primary { background: var(--ocra); color: var(--testo); }
.ebike-home .btn-primary:hover { background: var(--ocra-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(224, 166, 59, 0.3); }
.ebike-home .btn-outline { background: transparent; color: var(--bianco); border: 2px solid var(--bianco); }
.ebike-home .btn-outline:hover { background: var(--bianco); color: var(--verde); }
.ebike-home .btn-dark-outline { background: transparent; color: var(--verde); border: 2px solid var(--verde); }
.ebike-home .btn-dark-outline:hover { background: var(--verde); color: var(--bianco); }

/* ==========================================================================
   HEADER (classe .eb-header per non collidere con .site-header di GeneratePress)
   ========================================================================== */
.ebike-home .eb-header {
  background: var(--bianco);
  border-top: 4px solid var(--oliva);
  position: absolute; top: 0; left: 0; right: 0; z-index: 100;
}
.ebike-home .header-inner { display: flex; align-items: center; justify-content: space-between; height: 80px; }
.ebike-home .logo { font-family: var(--font-title); font-size: 26px; color: var(--verde); font-weight: 700; }
.ebike-home .main-nav { display: flex; gap: 32px; align-items: center; }
.ebike-home .main-nav a { font-size: 15px; font-weight: 600; color: var(--verde); text-transform: uppercase; letter-spacing: 0.5px; transition: color 0.3s; }
.ebike-home .main-nav a:hover { color: var(--oliva); }
.ebike-home .lang-switch { font-size: 14px; font-weight: 600; color: var(--verde); border: 1px solid rgba(38,56,47,0.3); padding: 6px 12px; border-radius: 4px; }
.ebike-home .lang-switch:hover { border-color: var(--verde); }

/* ==========================================================================
   SEZ 1: HERO CON FORM DI PRENOTAZIONE
   ========================================================================== */
.ebike-home .hero {
  position: relative; height: 100vh; min-height: 750px;
  display: flex; align-items: center; justify-content: center;
  background: #1a2b22;
}
.ebike-home .hero-bg {
  position: absolute; inset: 0;
  background: url('https://prova.ebikerentalpuglia.it/wp-content/uploads/2026/11/ebike-1541625602330-2000.jpg') center/cover no-repeat;
}
.ebike-home .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(26, 43, 34, 0.6) 0%, rgba(26, 43, 34, 0.8) 100%);
}
.ebike-home .hero-content {
  position: relative; z-index: 2; color: var(--bianco); text-align: center; width: 100%; padding-top: 80px;
}
.ebike-home .hero-content h1 { color: var(--bianco); margin-bottom: 16px; font-size: 64px; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.ebike-home .hero-content p { color: rgba(255,255,255,0.9); font-size: 22px; margin-bottom: 40px; font-weight: 500; }

/* Booking Widget - progressivo */
.ebike-home .booking-widget {
  background: var(--bianco); padding: 24px; border-radius: 8px;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px; align-items: end;
  max-width: 1000px; margin: 0 auto;
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
.ebike-home .bw-group { display: contents; }
.ebike-home .bw-group[hidden] { display: none; }
.ebike-home .bw-field { text-align: left; min-width: 0; }
.ebike-home .bw-field label { display: block; font-size: 13px; font-weight: 700; color: var(--verde); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; }
.ebike-home .bw-field input,
.ebike-home .bw-field select {
  width: 100%; height: 48px; padding: 0 12px; border: 1px solid #ccc; border-radius: 6px;
  font-family: var(--font-body); font-size: 15px; color: var(--testo); outline: none; background: var(--bianco);
}
.ebike-home .bw-field input:focus,
.ebike-home .bw-field select:focus { border-color: var(--ocra); }
.ebike-home .bw-submit .btn { height: 48px; width: 100%; padding: 0 24px; }
.ebike-home .bw-trust { margin-top: 18px; font-size: 15px; font-weight: 500; color: rgba(255,255,255,0.9); letter-spacing: 0.2px; }

/* Trust Bar */
.ebike-home .trust-bar { background: var(--avorio); padding: 24px 0; border-bottom: 1px solid #e0dcd3; }
.ebike-home .trust-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; }
.ebike-home .trust-item { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; color: var(--verde); }
.ebike-home .trust-item .icon { font-size: 24px; color: var(--ocra); }
.ebike-home .trust-rating { display: flex; align-items: center; gap: 12px; }
.ebike-home .trust-rating .stars { color: var(--ocra); font-size: 18px; }
.ebike-home .trust-rating .text { font-size: 14px; font-weight: 600; color: var(--verde); }

/* ==========================================================================
   SEZ 2: SERVIZI CON PREZZI
   ========================================================================== */
.ebike-home .services { padding: 100px 0; background: var(--bianco); }
.ebike-home .section-header { text-align: center; margin-bottom: 60px; max-width: 700px; margin-left: auto; margin-right: auto; }
.ebike-home .services-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
.ebike-home .srv-card { border-radius: var(--radius); overflow: hidden; border: 1px solid #eee; display: flex; flex-direction: column; transition: transform 0.3s; }
.ebike-home .srv-card:hover { transform: translateY(-8px); box-shadow: 0 12px 24px rgba(0,0,0,0.05); }
.ebike-home .srv-img { height: 240px; width: 100%; object-fit: cover; }
.ebike-home .srv-content { padding: 32px; display: flex; flex-direction: column; flex-grow: 1; }
.ebike-home .srv-content h3 { color: var(--verde); margin-bottom: 12px; }
.ebike-home .srv-content p { margin-bottom: 24px; font-size: 15px; flex-grow: 1; }
.ebike-home .srv-price { font-size: 14px; font-weight: 600; color: var(--ocra); margin-bottom: 16px; display: block; text-transform: uppercase; letter-spacing: 0.5px; }

/* ==========================================================================
   SEZ 3: DISCOVER PUGLIA
   ========================================================================== */
.ebike-home .discover { padding: 100px 0; background: var(--avorio); }
.ebike-home .discover-inner { display: flex; align-items: center; gap: 80px; }
.ebike-home .discover-text { flex: 1; max-width: 500px; }
.ebike-home .discover-text h2 { font-size: 42px; margin-bottom: 24px; }
.ebike-home .discover-text p { margin-bottom: 32px; font-size: 18px; }
.ebike-home .territories-list { list-style: none; margin-bottom: 40px; }
.ebike-home .territories-list li { padding: 16px 0; border-bottom: 1px solid rgba(0,0,0,0.1); font-weight: 600; color: var(--verde); display: flex; justify-content: space-between; align-items: center; }
.ebike-home .territories-list li span { font-weight: 400; font-size: 14px; color: var(--grigio); }
.ebike-home .discover-img { flex: 1.2; height: 600px; border-radius: var(--radius); overflow: hidden; }
.ebike-home .discover-img img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   SEZ 4: RECENSIONI
   ========================================================================== */
.ebike-home .reviews { padding: 100px 0; background: var(--bianco); text-align: center; }
.ebike-home .rev-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px; margin-top: 48px; }
.ebike-home .rev-card { background: var(--avorio); padding: 40px; border-radius: var(--radius); text-align: left; }
.ebike-home .rev-stars { color: var(--ocra); font-size: 20px; margin-bottom: 16px; letter-spacing: 2px; }
.ebike-home .rev-card blockquote { font-family: var(--font-title); font-size: 18px; font-weight: 600; color: var(--verde); margin-bottom: 24px; line-height: 1.5; }
.ebike-home .rev-author { font-size: 14px; font-weight: 600; color: var(--grigio); text-transform: uppercase; letter-spacing: 1px; }

/* ==========================================================================
   SEZ 5: CTA FINALE
   ========================================================================== */
.ebike-home .final-cta { position: relative; padding: 120px 0; text-align: center; background: var(--verde); }
.ebike-home .final-content { position: relative; z-index: 2; max-width: 700px; margin: 0 auto; }
.ebike-home .final-content h2 { color: var(--bianco); font-size: 48px; margin-bottom: 24px; }
.ebike-home .final-content p { color: rgba(255,255,255,0.9); font-size: 18px; margin-bottom: 40px; }

/* Responsive */
@media (max-width: 900px) {
  .ebike-home .hero { height: auto; min-height: 100vh; padding: 32px 0 48px; }
  .ebike-home .hero-content { padding-top: 96px; padding-left: 20px; padding-right: 20px; }
  .ebike-home .hero-content h1 { font-size: 38px; }
  .ebike-home .hero-content p { font-size: 18px; margin-bottom: 32px; }
  .ebike-home .booking-widget { grid-template-columns: 1fr; padding: 20px; margin: 0; max-width: none; }
  .ebike-home .bw-submit .btn { width: 100%; }
  .ebike-home .services-grid { grid-template-columns: 1fr; }
  .ebike-home .discover-inner { flex-direction: column; gap: 40px; }
  .ebike-home .discover-img { height: 400px; width: 100%; }
  .ebike-home .rev-grid { grid-template-columns: 1fr; }
  .ebike-home .main-nav { display: none; }
  .ebike-home .trust-inner { justify-content: center; text-align: center; }
}

/* ==========================================================================
   Integrazione con GeneratePress: sulla home nascondiamo il masthead
   del tema padre, altrimenti la pagina mostrerebbe due header sovrapposti.
   ========================================================================== */
body.ebike-front #masthead { display: none; }

/* ==========================================================================
   PAGINA CATALOGO NOLEGGIO (.erp-catalog)
   Riusa i token di .ebike-home: stessi colori, font e spaziature della home.
   ========================================================================== */

.erp-catalog .cat-hero { background: var(--verde); color: var(--bianco); padding: 90px 0 70px; }
.erp-catalog .cat-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ocra); margin-bottom: 18px; }
.erp-catalog .cat-hero h1 { color: var(--bianco); font-size: 54px; margin-bottom: 18px; }
.erp-catalog .cat-hero p.cat-sub { color: rgba(255,255,255,.85); font-size: 19px; max-width: 660px; margin: 0; }
.erp-catalog .cat-hero-meta { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 34px; font-size: 14px; font-weight: 600; color: rgba(255,255,255,.9); }
.erp-catalog .cat-hero-meta span::before { content: "\2014"; margin-right: 8px; color: var(--ocra); }

/* Griglia card */
.erp-catalog .cat-grid-section { padding: 80px 0 40px; background: var(--bianco); }
.erp-catalog .cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.erp-catalog .cat-card { display: flex; flex-direction: column; background: var(--bianco); border: 1px solid #ECEDE8; border-radius: var(--radius); overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.erp-catalog .cat-card:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(38,56,47,.10); }
.erp-catalog .cat-card__media { aspect-ratio: 4 / 3; background: #E7EAE5; overflow: hidden; }
.erp-catalog .cat-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.erp-catalog .cat-card__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex-grow: 1; }
.erp-catalog .cat-card__cat { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--oliva); margin-bottom: 8px; }
.erp-catalog .cat-card__name { font-size: 24px; color: var(--verde); margin-bottom: 10px; }
.erp-catalog .cat-card__desc { font-size: 15px; margin-bottom: 22px; flex-grow: 1; }
.erp-catalog .cat-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.erp-catalog .cat-card__price { font-family: var(--font-title); font-size: 22px; font-weight: 700; color: var(--verde); }
.erp-catalog .cat-card__price small { font-family: var(--font-body); font-size: 13px; font-weight: 500; color: var(--grigio); }
.erp-catalog .cat-card__btn { height: 46px; padding: 0 20px; font-size: 15px; white-space: nowrap; }

/* Card "Custom Request" senza foto */
.erp-catalog .cat-card--custom .cat-card__media { background: linear-gradient(135deg, var(--verde) 0%, var(--verde-hover) 100%); display: flex; align-items: center; justify-content: center; }
.erp-catalog .cat-card--custom .cat-card__media span { font-family: var(--font-title); font-size: 68px; font-weight: 700; color: var(--ocra); line-height: 1; }

/* Sezioni editoriali */
.erp-catalog .cat-section { padding: 90px 0; background: var(--bianco); }
.erp-catalog .cat-section--alt { background: var(--avorio); }
.erp-catalog .cat-section__head { max-width: 700px; margin-bottom: 46px; }
.erp-catalog .cat-section__head h2 { font-size: 38px; margin-bottom: 14px; }
.erp-catalog .cat-section__head p { font-size: 17px; margin: 0; }

/* How rental works */
.erp-catalog .cat-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.erp-catalog .cat-step { background: var(--bianco); border: 1px solid #ECEDE8; border-radius: var(--radius); padding: 32px; }
.erp-catalog .cat-step__num { display: block; font-family: var(--font-title); font-size: 40px; font-weight: 700; color: var(--ocra); line-height: 1; margin-bottom: 16px; }
.erp-catalog .cat-step h3 { font-size: 21px; margin-bottom: 10px; color: var(--verde); }
.erp-catalog .cat-step p { font-size: 15px; margin: 0; }

/* What's included */
.erp-catalog .cat-split { display: flex; gap: 70px; align-items: flex-start; }
.erp-catalog .cat-split__text { flex: 1; }
.erp-catalog .cat-split__text .cat-section__head { margin-bottom: 0; }
.erp-catalog .cat-split__note { margin-top: 22px; font-size: 16px; }
.erp-catalog .cat-list { list-style: none; margin: 0; padding: 0; flex: 1; }
.erp-catalog .cat-list li { display: flex; gap: 12px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid rgba(38,56,47,.10); font-size: 16px; color: var(--testo); }
.erp-catalog .cat-list li:first-child { padding-top: 0; }
.erp-catalog .cat-list li::before { content: "\2713"; color: var(--oliva); font-weight: 700; line-height: 1.5; }

/* Delivery & support */
.erp-catalog .cat-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.erp-catalog .cat-mini { background: var(--bianco); border: 1px solid #ECEDE8; border-radius: var(--radius); padding: 28px; }
.erp-catalog .cat-mini h3 { font-size: 19px; margin-bottom: 10px; color: var(--verde); }
.erp-catalog .cat-mini p { font-size: 15px; margin: 0; }

/* FAQ con <details> nativi: nessun JavaScript necessario */
.erp-catalog .cat-faq__list { max-width: 840px; }
.erp-catalog .cat-faq details { border-bottom: 1px solid rgba(38,56,47,.14); padding: 20px 0; }
.erp-catalog .cat-faq summary { display: flex; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; font-family: var(--font-title); font-size: 19px; font-weight: 600; color: var(--verde); }
.erp-catalog .cat-faq summary::-webkit-details-marker { display: none; }
.erp-catalog .cat-faq summary::after { content: "+"; color: var(--ocra); font-size: 22px; line-height: 1; }
.erp-catalog .cat-faq details[open] summary::after { content: "\2013"; }
.erp-catalog .cat-faq details p { margin: 14px 0 0; font-size: 16px; max-width: 720px; }

/* CTA finale */
.erp-catalog .cat-cta { background: var(--verde); padding: 80px 0; text-align: center; }
.erp-catalog .cat-cta h2 { color: var(--bianco); font-size: 40px; margin-bottom: 16px; }
.erp-catalog .cat-cta p { color: rgba(255,255,255,.85); font-size: 17px; margin-bottom: 32px; }

/* Responsive */
@media (max-width: 1000px) {
  .erp-catalog .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .erp-catalog .cat-steps,
  .erp-catalog .cat-cards { grid-template-columns: 1fr; }
  .erp-catalog .cat-split { flex-direction: column; gap: 36px; }
}

@media (max-width: 640px) {
  .erp-catalog .cat-grid { grid-template-columns: 1fr; }
  .erp-catalog .cat-hero { padding: 64px 0 52px; }
  .erp-catalog .cat-hero h1 { font-size: 36px; }
  .erp-catalog .cat-hero p.cat-sub { font-size: 17px; }
  .erp-catalog .cat-hero-meta { gap: 14px; }
  .erp-catalog .cat-section { padding: 60px 0; }
  .erp-catalog .cat-section__head h2 { font-size: 30px; }
  .erp-catalog .cat-card__footer { flex-direction: column; align-items: stretch; gap: 12px; }
  .erp-catalog .cat-card__btn { width: 100%; }
  .erp-catalog .cat-cta h2 { font-size: 30px; }
}

/* ==========================================================================
   SCHEDA PRODOTTO (.ebike-product) — ERP Bike Rental Manager
   Due colonne: 7/12 galleria + titolo, 5/12 pannello prenotazione sticky.
   ========================================================================== */

.ebike-product .eb-product-wrap { padding-top: 60px; padding-bottom: 90px; }

.ebike-product .eb-product-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: start; }

/* --- Colonna sinistra: galleria --- */
.ebike-product .eb-product-gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0; }
.ebike-product .eb-product-gallery .woocommerce-product-gallery__wrapper { border-radius: var(--radius); overflow: hidden; }
.ebike-product .eb-product-gallery img { border-radius: var(--radius); }
.ebike-product .eb-product-gallery .flex-control-thumbs { display: flex; gap: 12px; margin: 14px 0 0; padding: 0; list-style: none; }
.ebike-product .eb-product-gallery .flex-control-thumbs li { width: 96px !important; float: none !important; margin: 0; }
.ebike-product .eb-product-gallery .flex-control-thumbs img { border-radius: 8px; opacity: .75; }
.ebike-product .eb-product-gallery .flex-control-thumbs img.flex-active,
.ebike-product .eb-product-gallery .flex-control-thumbs img:hover { opacity: 1; }

/* --- Titolo e sommario --- */
.ebike-product .eb-product-heading { margin-top: 34px; }
.ebike-product .eb-product-title { font-size: 44px; line-height: 1.1; color: var(--verde); margin: 0 0 14px; }
.ebike-product .eb-product-excerpt p { font-size: 17px; line-height: 1.65; }

/* --- Colonna destra: pannello sticky --- */
.ebike-product .eb-product-side { position: relative; }
.ebike-product .eb-product-panel {
  position: sticky;
  top: 28px;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  padding: 28px;
  box-shadow: 0 18px 40px rgba(38, 56, 47, .08);
}
.ebike-product .eb-product-price {
  font-family: var(--font-title);
  font-size: 34px;
  font-weight: 700;
  color: var(--verde);
  padding-bottom: 20px;
  margin-bottom: 22px;
  border-bottom: 1px solid #ECEDE8;
}
.ebike-product .eb-product-price del { font-size: 20px; font-weight: 500; color: var(--grigio); margin-right: 8px; }
.ebike-product .eb-product-price ins { text-decoration: none; }
.ebike-product .eb-product-price .woocommerce-Price-currencySymbol { font-size: 24px; }

/* --- Form WooCommerce + campi del plugin --- */
.ebike-product form.cart { display: block; margin: 0; }
.ebike-product form.cart .quantity { float: none; display: block; margin: 0 0 16px; }
.ebike-product .quantity input.qty,
.ebike-product .erp-rental-form input[type="date"],
.ebike-product .erp-rental-form input[type="text"],
.ebike-product .erp-rental-form select {
  width: 100%;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #CCCCCC;
  border-radius: 6px;
  background: var(--bianco);
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--testo);
}
.ebike-product .quantity input.qty:focus,
.ebike-product .erp-rental-form input:focus,
.ebike-product .erp-rental-form select:focus { border-color: var(--ocra); outline: none; }

.ebike-product .erp-rental-form { display: block; }
.ebike-product .erp-rental-form > p { margin: 0 0 14px; }
.ebike-product .erp-rental-form label,
.ebike-product .eb-product-booking .quantity label {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--verde);
}

.ebike-product .erp-delivery-fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.ebike-product .erp-delivery-fieldset legend {
  padding: 0;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--verde);
}
.ebike-product .erp-pickup-choice,
.ebike-product .erp-delivery-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding: 12px;
  border: 1px solid #ECEDE8;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--testo);
  cursor: pointer;
}
.ebike-product .erp-pickup-choice:hover,
.ebike-product .erp-delivery-choice:hover { border-color: var(--oliva); }
.ebike-product .erp-pickup-choice input,
.ebike-product .erp-delivery-choice input { margin: 0; accent-color: var(--verde); }

.ebike-product .erp-hours-row { display: flex; gap: 12px; }
.ebike-product .erp-hours-row > p { flex: 1; margin: 0; }
.ebike-product .erp-hours-heading { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--verde); }
.ebike-product .erp-hours-help,
.ebike-product .erp-rental-note,
.ebike-product .erp-half-info,
.ebike-product .erp-delivery-hours-help,
.ebike-product .erp-delivery-price,
.ebike-product .erp-pickup-address {
  margin: 8px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--grigio);
}
.ebike-product .erp-rental-note { margin-top: 14px; padding-top: 12px; border-top: 1px solid #ECEDE8; }
.ebike-product .erp-time-availability:empty { display: none; }
.ebike-product .erp-time-availability { margin: 10px 0 0; font-size: 13px; font-weight: 600; color: var(--verde); }

/* --- Pulsante di prenotazione --- */
.ebike-product .single_add_to_cart_button,
.ebike-product button[name="add-to-cart"] {
  width: 100%;
  height: 54px;
  margin-top: 18px;
  border: 0;
  border-radius: 6px !important;
  background: var(--verde) !important;
  color: var(--bianco) !important;
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.ebike-product .single_add_to_cart_button:hover,
.ebike-product button[name="add-to-cart"]:hover {
  background: var(--verde-hover) !important;
  color: var(--bianco) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(38, 56, 47, .28);
}
.ebike-product .single_add_to_cart_button:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.ebike-product .stock { display: block; margin: 0 0 12px; font-size: 13px; font-weight: 600; color: var(--oliva); }

/* --- Tabs, recensioni, correlati --- */
.ebike-product .woocommerce-tabs { margin-top: 70px; }
.ebike-product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 26px; margin: 0 0 26px; padding: 0 0 0 0; list-style: none; border-bottom: 1px solid #ECEDE8; }
.ebike-product .woocommerce-tabs ul.tabs::before,
.ebike-product .woocommerce-tabs ul.tabs::after { display: none; }
.ebike-product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; border-radius: 0; }
.ebike-product .woocommerce-tabs ul.tabs li::before,
.ebike-product .woocommerce-tabs ul.tabs li::after { display: none; }
.ebike-product .woocommerce-tabs ul.tabs li a { display: block; padding: 12px 0; border-bottom: 2px solid transparent; font-family: var(--font-body); font-size: 15px; font-weight: 600; color: var(--verde); }
.ebike-product .woocommerce-tabs ul.tabs li.active a { border-bottom-color: var(--ocra); }
.ebike-product .woocommerce-tabs .panel h2 { font-size: 26px; margin-bottom: 16px; }
.ebike-product .related.products,
.ebike-product .upsells.products { margin-top: 76px; }
.ebike-product .related.products > h2,
.ebike-product .upsells.products > h2 { font-size: 32px; margin-bottom: 28px; }
.ebike-product .woocommerce-message,
.ebike-product .woocommerce-info,
.ebike-product .woocommerce-error { border-radius: 8px; margin-bottom: 26px; }

/* --- Responsive --- */
@media (max-width: 1000px) {
  .ebike-product .eb-product-grid { grid-template-columns: 1fr; gap: 36px; }
  .ebike-product .eb-product-panel { position: static; }
  .ebike-product .eb-product-title { font-size: 34px; }
  .ebike-product .eb-product-price { font-size: 28px; }
}

@media (max-width: 640px) {
  .ebike-product .eb-product-wrap { padding-top: 36px; padding-bottom: 60px; }
  .ebike-product .eb-product-title { font-size: 28px; }
  .ebike-product .eb-product-panel { padding: 20px; }
  .ebike-product .erp-hours-row { flex-direction: column; gap: 14px; }
  .ebike-product .woocommerce-tabs ul.tabs { gap: 18px; }
}

/* ==========================================================================
   TABELLE NELLA DESCRIZIONE PRODOTTO
   Il markup arriva dal vecchio sito con stili inline (#28a745 ecc.):
   servono override con !important.
   ========================================================================== */

.ebike-product .woocommerce-Tabs-panel--description table {
  width: 100% !important;
  max-width: 560px !important;
  margin: 26px auto !important;
  border: 1px solid #E6E8E2 !important;
  border-radius: 10px !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
}

/* Intestazione: via il verde brillante */
.ebike-product .woocommerce-Tabs-panel--description thead tr {
  background: var(--bianco) !important;
  color: var(--verde) !important;
}
.ebike-product .woocommerce-Tabs-panel--description thead th {
  padding: 14px 16px !important;
  background: var(--bianco) !important;
  color: var(--verde) !important;
  border-bottom: 1px solid #E6E8E2 !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .6px !important;
  text-transform: uppercase !important;
}

/* Righe: bianco + bordi grigi sottili */
.ebike-product .woocommerce-Tabs-panel--description tbody tr {
  background: var(--bianco) !important;
  color: var(--testo) !important;
}
.ebike-product .woocommerce-Tabs-panel--description tbody td {
  padding: 12px 16px !important;
  background: transparent !important;
  color: var(--testo) !important;
  border-bottom: 1px solid #EDEFEA !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  vertical-align: middle !important;
}
.ebike-product .woocommerce-Tabs-panel--description tbody tr:last-child td { border-bottom: 0 !important; }

/* Colonna prezzi a destra */
.ebike-product .woocommerce-Tabs-panel--description tbody td:last-child {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

/* Riga "POPOLARE": sfondo avorio + accento ocra */
.ebike-product .woocommerce-Tabs-panel--description tbody tr[style*="1e7e34"],
.ebike-product .woocommerce-Tabs-panel--description tbody tr[style*="1e7e34"] td {
  background: var(--avorio) !important;
  color: var(--testo) !important;
}
.ebike-product .woocommerce-Tabs-panel--description tbody tr[style*="1e7e34"] td {
  border-bottom: 1px solid rgba(224, 166, 59, .45) !important;
}
.ebike-product .woocommerce-Tabs-panel--description tbody tr[style*="1e7e34"] td:first-child {
  border-left: 4px solid var(--ocra) !important;
  font-weight: 700 !important;
}
.ebike-product .woocommerce-Tabs-panel--description tbody tr[style*="1e7e34"] td:last-child {
  color: var(--verde) !important;
  font-family: var(--font-title) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* Il verde acceso di "GRATIS" diventa oliva */
.ebike-product .woocommerce-Tabs-panel--description tbody td[style*="28a745"] { color: var(--oliva) !important; }

/* ==========================================================================
   PRODOTTI CORRELATI — stesso linguaggio delle card del catalogo
   ========================================================================== */

.ebike-product .related ul.products,
.ebike-product .upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin: 0 !important;
  padding: 0;
}
.ebike-product .related ul.products li.product,
.ebike-product .upsells ul.products li.product {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 0 18px !important;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  overflow: hidden;
  text-align: left;
  transition: transform .3s ease, box-shadow .3s ease;
}
.ebike-product .related ul.products li.product:hover,
.ebike-product .upsells ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 34px rgba(38, 56, 47, .10);
}
.ebike-product .related ul.products li.product img,
.ebike-product .upsells ul.products li.product img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: var(--avorio);
  margin: 0 !important;
  border-radius: 0;
}
.ebike-product .related .woocommerce-loop-product__title,
.ebike-product .upsells .woocommerce-loop-product__title {
  padding: 16px 18px 6px !important;
  margin: 0 !important;
  font-family: var(--font-title) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.3;
  color: var(--verde) !important;
}
.ebike-product .related .price,
.ebike-product .upsells .price {
  display: block;
  padding: 0 18px 14px !important;
  margin: 0 !important;
  font-family: var(--font-title) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--verde) !important;
}
.ebike-product .related .price del,
.ebike-product .upsells .price del { font-size: 14px !important; color: var(--grigio) !important; }
.ebike-product .related .price ins,
.ebike-product .upsells .price ins { text-decoration: none !important; }

.ebike-product .related .button.add_to_cart_button,
.ebike-product .related a.add_to_cart_button,
.ebike-product .upsells .button.add_to_cart_button {
  display: block !important;
  margin: 0 18px !important;
  height: 44px !important;
  line-height: 44px !important;
  padding: 0 14px !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: var(--verde) !important;
  color: var(--bianco) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background .25s ease;
}
.ebike-product .related .button.add_to_cart_button:hover,
.ebike-product .related a.add_to_cart_button:hover,
.ebike-product .upsells .button.add_to_cart_button:hover {
  background: var(--verde-hover) !important;
  color: var(--bianco) !important;
}
.ebike-product .related .woocommerce-loop-product__link { text-decoration: none; }

@media (max-width: 1000px) {
  .ebike-product .related ul.products,
  .ebike-product .upsells ul.products { grid-template-columns: repeat(2, 1fr); gap: 22px; }
}

@media (max-width: 640px) {
  .ebike-product .related ul.products,
  .ebike-product .upsells ul.products { grid-template-columns: 1fr; }
  .ebike-product .woocommerce-Tabs-panel--description table { max-width: 100% !important; }
}

/* ==========================================================================
   SCHEDA PRODOTTO — nuove sezioni editoriali
   (highlights, A caratteristiche, B incluso, C pratiche/FAQ, D alternative)
   ========================================================================== */

/* Titolo: caratteristiche principali e uso consigliato */
.ebike-product .eb-product-highlights { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.ebike-product .eb-product-highlights li { position: relative; padding-left: 26px; font-size: 16px; color: var(--testo); }
.ebike-product .eb-product-highlights li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--oliva); font-weight: 700; }
.ebike-product .eb-product-highlights strong { color: var(--verde); font-weight: 600; }
.ebike-product .eb-product-use {
  margin: 18px 0 0;
  padding: 16px 18px;
  background: var(--avorio);
  border-left: 3px solid var(--ocra);
  border-radius: 6px;
  font-size: 15px;
  color: var(--testo);
}
.ebike-product .eb-product-use strong { color: var(--verde); }

/* Contenitore sezioni */
.ebike-product .eb-sec { margin-top: 80px; }
.ebike-product .eb-sec__head { max-width: 720px; margin-bottom: 40px; }
.ebike-product .eb-sec__head h2 { font-size: 36px; margin: 0 0 12px; color: var(--verde); }
.ebike-product .eb-sec__head p { font-size: 17px; margin: 0; }

/* SEZIONE A: specifiche */
.ebike-product .eb-specs { margin: 0; border-top: 1px solid #ECEDE8; }
.ebike-product .eb-specs__row { display: flex; gap: 24px; padding: 16px 4px; border-bottom: 1px solid #ECEDE8; }
.ebike-product .eb-specs dt { flex: 0 0 240px; margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--verde); }
.ebike-product .eb-specs dd { margin: 0; flex: 1; font-size: 16px; color: var(--testo); }

/* SEZIONE B: pannello su sfondo avorio */
.ebike-product .eb-sec--included { background: var(--avorio); border-radius: var(--radius); padding: 48px; }
.ebike-product .eb-sec--included .eb-sec__head { margin-bottom: 34px; }

.ebike-product .eb-included { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.ebike-product .eb-included__col h3 { font-size: 21px; margin: 0 0 18px; color: var(--verde); }
.ebike-product .eb-check-list { list-style: none; margin: 0; padding: 0; }
.ebike-product .eb-check-list li { position: relative; padding: 10px 0 10px 28px; font-size: 16px; border-bottom: 1px solid rgba(38,56,47,.10); }
.ebike-product .eb-check-list li:last-child { border-bottom: 0; }
.ebike-product .eb-check-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--oliva); font-weight: 700; }

.ebike-product .eb-optional-list { list-style: none; margin: 0 0 16px; padding: 0; }
.ebike-product .eb-optional-list li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-bottom: 1px solid rgba(38,56,47,.10); font-size: 16px; }
.ebike-product .eb-optional-list__price { white-space: nowrap; font-weight: 700; color: var(--verde); }
.ebike-product .eb-optional-list__price small { font-weight: 500; font-size: 12.5px; color: var(--grigio); }
.ebike-product .eb-included__note { font-size: 14px; line-height: 1.6; color: var(--grigio); margin: 0 0 12px; }

/* SEZIONE C: passi e FAQ */
.ebike-product .eb-steps { list-style: none; margin: 0 0 48px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ebike-product .eb-steps li { background: var(--bianco); border: 1px solid #ECEDE8; border-radius: var(--radius); padding: 28px; }
.ebike-product .eb-steps__num { display: block; font-family: var(--font-title); font-size: 34px; font-weight: 700; color: var(--ocra); line-height: 1; margin-bottom: 14px; }
.ebike-product .eb-steps h3 { font-size: 19px; margin: 0 0 10px; color: var(--verde); }
.ebike-product .eb-steps p { font-size: 15px; margin: 0; }
.ebike-product .eb-faq { max-width: 840px; }
.ebike-product .eb-faq details { border-bottom: 1px solid #E6E8E2; padding: 18px 0; }
.ebike-product .eb-faq summary { display: flex; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; font-family: var(--font-title); font-size: 19px; font-weight: 600; color: var(--verde); }
.ebike-product .eb-faq summary::-webkit-details-marker { display: none; }
.ebike-product .eb-faq summary::after { content: "+"; color: var(--ocra); font-size: 22px; line-height: 1; }
.ebike-product .eb-faq details[open] summary::after { content: "\2013"; }
.ebike-product .eb-faq details p { margin: 12px 0 0; font-size: 16px; max-width: 720px; }

/* SEZIONE C-bis e C-ter: percorsi e accessori
   (nessuno stile per le vecchie "biciclette alternative": sezione rimossa) */

@media (max-width: 1000px) {
  .ebike-product .eb-included { grid-template-columns: 1fr; gap: 36px; }
  .ebike-product .eb-steps { grid-template-columns: 1fr; }
  .ebike-product .eb-sec--included { padding: 32px; }
}

@media (max-width: 640px) {
  .ebike-product .eb-sec { margin-top: 56px; }
  .ebike-product .eb-sec__head h2 { font-size: 28px; }
  .ebike-product .eb-specs__row { flex-direction: column; gap: 6px; }
  .ebike-product .eb-specs dt { flex: none; }
  .ebike-product .eb-sec--included { padding: 24px; }
}

/* ==========================================================================
   SCHEDA PRODOTTO — sezioni "Dove puoi andare" e "Accessori"
   Spezzano il ritmo tra le info pratiche e la chiusura della pagina.
   ========================================================================== */

/* --- I percorsi --- */
.ebike-product .eb-sec--journeys { background: var(--avorio); border-radius: var(--radius); padding: 48px; }
.ebike-product .eb-sec--journeys .eb-sec__head { margin-bottom: 34px; }

.ebike-product .eb-journeys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ebike-product .eb-journey {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--verde);
}
.ebike-product .eb-journey img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.ebike-product .eb-journey:hover img { transform: scale(1.05); }
.ebike-product .eb-journey::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26, 43, 34, .88) 0%, rgba(26, 43, 34, .25) 45%, rgba(26, 43, 34, 0) 75%);
  pointer-events: none;
}
.ebike-product .eb-journey figcaption {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 20px;
  z-index: 2;
  color: var(--bianco);
}
.ebike-product .eb-journey__title {
  display: block;
  font-family: var(--font-title);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 4px;
}
.ebike-product .eb-journey__sub {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, .82);
}

/* --- Accessori --- */
.ebike-product .eb-acc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ebike-product .eb-acc-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  padding: 28px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.ebike-product .eb-acc-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(38, 56, 47, .09); }
.ebike-product .eb-acc-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--avorio);
  color: var(--ocra);
}
.ebike-product .eb-acc-card__icon svg { width: 26px; height: 26px; }
.ebike-product .eb-acc-card h3 { font-size: 19px; margin: 0 0 10px; color: var(--verde); }
.ebike-product .eb-acc-card p { font-size: 15px; line-height: 1.6; margin: 0 0 18px; flex-grow: 1; }
.ebike-product .eb-acc-card__price {
  font-family: var(--font-title);
  font-size: 16px;
  font-weight: 700;
  color: var(--verde);
}
.ebike-product .eb-acc-card__price small { font-family: var(--font-body); font-size: 12.5px; font-weight: 500; color: var(--grigio); }

@media (max-width: 1000px) {
  .ebike-product .eb-journeys { grid-template-columns: repeat(2, 1fr); }
  .ebike-product .eb-journey { aspect-ratio: 1 / 1; }
  .ebike-product .eb-acc-grid { grid-template-columns: repeat(2, 1fr); }
  .ebike-product .eb-sec--journeys { padding: 32px; }
}

@media (max-width: 640px) {
  .ebike-product .eb-journeys { grid-template-columns: 1fr; }
  .ebike-product .eb-acc-grid { grid-template-columns: 1fr; }
  .ebike-product .eb-sec--journeys { padding: 24px; }
  .ebike-product .eb-journey__title { font-size: 19px; }
}

/* ==========================================================================
   PAGINA "TOURS & EXPERIENCES" (.erp-tours)
   Fascia verde + filtro a due tab + griglia di card.
   ========================================================================== */

.erp-tours .tour-hero { background: var(--verde); color: var(--bianco); padding: 90px 0 70px; }
.erp-tours .tour-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ocra); margin-bottom: 18px; }
.erp-tours .tour-hero h1 { color: var(--bianco); font-size: 54px; margin-bottom: 18px; }
.erp-tours .tour-hero p { color: rgba(255, 255, 255, .85); font-size: 19px; max-width: 700px; margin: 0; }
.erp-tours .tour-hero-meta { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 32px; font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, .9); }
.erp-tours .tour-hero-meta span::before { content: "\2014"; margin-right: 8px; color: var(--ocra); }

.erp-tours .tour-list { padding: 56px 0 90px; background: var(--bianco); }

/* Filtro a due tab */
.erp-tours .tour-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 40px; }
.erp-tours .tour-tab {
  appearance: none;
  border: 1px solid #E0E3DC;
  background: var(--bianco);
  color: var(--verde);
  border-radius: 999px;
  padding: 12px 22px;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.erp-tours .tour-tab span { font-weight: 500; color: var(--grigio); }
.erp-tours .tour-tab:hover { border-color: var(--oliva); }
.erp-tours .tour-tab.is-active { background: var(--verde); border-color: var(--verde); color: var(--bianco); }
.erp-tours .tour-tab.is-active span { color: rgba(255, 255, 255, .75); }

/* Griglia card */
.erp-tours .tour-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.erp-tours .tour-card {
  display: flex;
  flex-direction: column;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}
.erp-tours .tour-card[hidden] { display: none; }
.erp-tours .tour-card:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(38, 56, 47, .10); }

.erp-tours .tour-card__media { position: relative; aspect-ratio: 4 / 3; background: #E7EAE5; overflow: hidden; }
.erp-tours .tour-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.erp-tours .tour-card:hover .tour-card__media img { transform: scale(1.04); }

.erp-tours .tour-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 7px 13px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .3px;
  white-space: nowrap;
}
.erp-tours .tour-badge--book { background: var(--ocra); color: var(--testo); }
.erp-tours .tour-badge--request { background: rgba(255, 255, 255, .95); color: var(--verde); border: 1px solid var(--verde); }

.erp-tours .tour-card__body { padding: 24px; display: flex; flex-direction: column; flex-grow: 1; }
.erp-tours .tour-card__title { font-size: 23px; line-height: 1.2; color: var(--verde); margin: 0 0 16px; }

.erp-tours .tour-card__meta { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 8px; }
.erp-tours .tour-card__meta li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding-bottom: 8px;
  border-bottom: 1px dashed #ECEDE8;
  font-size: 14.5px;
  color: var(--testo);
}
.erp-tours .tour-card__meta li:last-child { border-bottom: 0; padding-bottom: 0; }
.erp-tours .tour-meta__label { font-size: 11.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--oliva); }

.erp-tours .tour-card__footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.erp-tours .tour-card__price { font-family: var(--font-title); font-size: 21px; font-weight: 700; color: var(--verde); white-space: nowrap; }
.erp-tours .tour-card__price small { font-family: var(--font-body); font-size: 12.5px; font-weight: 500; color: var(--grigio); }
.erp-tours .tour-card__price--muted { font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--grigio); }
.erp-tours .tour-card__btn { height: 44px; padding: 0 18px; font-size: 14.5px; white-space: nowrap; }

@media (max-width: 1000px) {
  .erp-tours .tour-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .erp-tours .tour-hero { padding: 70px 0 56px; }
  .erp-tours .tour-hero h1 { font-size: 42px; }
}

@media (max-width: 640px) {
  .erp-tours .tour-grid { grid-template-columns: 1fr; }
  .erp-tours .tour-hero h1 { font-size: 34px; }
  .erp-tours .tour-hero p { font-size: 17px; }
  .erp-tours .tour-hero-meta { gap: 14px; }
  .erp-tours .tour-tab { padding: 11px 18px; font-size: 14px; }
  .erp-tours .tour-card__footer { flex-direction: column; align-items: stretch; gap: 12px; }
  .erp-tours .tour-card__btn { width: 100%; }
}

/* ==========================================================================
   DETTAGLIO ESPERIENZA (.erp-tour-detail)
   Hero 16:9 + due colonne 7/5 + FAQ e correlati sotto la piega.
   ========================================================================== */

.erp-tour-detail .td-hero__media { position: absolute; inset: 0; }
.erp-tour-detail .td-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.erp-tour-detail .td-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26, 43, 34, .92) 0%, rgba(26, 43, 34, .45) 55%, rgba(26, 43, 34, .10) 100%);
}
.erp-tour-detail .td-hero__content { position: relative; z-index: 2; padding-bottom: 48px; color: var(--bianco); }
.erp-tour-detail .td-hero__badge {
  display: inline-block;
  padding: 7px 14px;
  border-radius: 999px;
  margin-bottom: 18px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .4px;
}
.erp-tour-detail .td-hero__badge.is-book { background: var(--ocra); color: var(--testo); }
.erp-tour-detail .td-hero__badge.is-request { background: rgba(255, 255, 255, .95); color: var(--verde); border: 1px solid var(--verde); }
.erp-tour-detail .td-hero h1 { color: var(--bianco); font-size: 52px; line-height: 1.1; margin: 0 0 22px; }

/* Corpo a due colonne */
.erp-tour-detail .td-wrap { padding: 72px 0 40px; }
.erp-tour-detail .td-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: start; }

.erp-tour-detail .td-block { margin-bottom: 56px; }
.erp-tour-detail .td-block h2 { font-size: 30px; margin: 0 0 18px; color: var(--verde); }
.erp-tour-detail .td-lead { font-size: 18px; line-height: 1.7; color: var(--testo); margin: 0; }

.erp-tour-detail .td-itinerary { list-style: none; counter-reset: tdstep; margin: 26px 0 0; padding: 0; display: grid; gap: 16px; }
.erp-tour-detail .td-itinerary li {
  position: relative;
  padding-left: 48px;
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 16px;
  color: var(--testo);
}
.erp-tour-detail .td-itinerary li::before {
  counter-increment: tdstep;
  content: counter(tdstep);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--avorio);
  color: var(--verde);
  font-size: 13px;
  font-weight: 700;
}

/* Tappa con foto (opzionale) */
.erp-tour-detail .td-step__text { flex: 1 1 auto; min-width: 0; }
.erp-tour-detail .td-step__media {
  flex: 0 0 140px;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  overflow: hidden;
  background: #E7EAE5;
}
.erp-tour-detail .td-step__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.erp-tour-detail .td-check-list { list-style: none; margin: 0; padding: 0; }
.erp-tour-detail .td-check-list li { position: relative; padding: 10px 0 10px 28px; border-bottom: 1px solid #ECEDE8; font-size: 16px; color: var(--testo); }
.erp-tour-detail .td-check-list li:last-child { border-bottom: 0; }
.erp-tour-detail .td-check-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--oliva); font-weight: 700; }

.erp-tour-detail .td-specs { margin: 0; border-top: 1px solid #ECEDE8; }
.erp-tour-detail .td-specs__row { display: flex; gap: 24px; padding: 16px 0; border-bottom: 1px solid #ECEDE8; }
.erp-tour-detail .td-specs dt { flex: 0 0 200px; margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--verde); }
.erp-tour-detail .td-specs dd { margin: 0; flex: 1; font-size: 16px; color: var(--testo); }

/* Pannello sticky */
.erp-tour-detail .td-side { position: relative; }
.erp-tour-detail .td-panel {
  position: sticky;
  top: 28px;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  padding: 28px;
  box-shadow: 0 18px 40px rgba(38, 56, 47, .08);
}
.erp-tour-detail .td-panel__price {
  font-family: var(--font-title);
  font-size: 34px;
  font-weight: 700;
  color: var(--verde);
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ECEDE8;
}
.erp-tour-detail .td-panel__price small { font-family: var(--font-body); font-size: 14px; font-weight: 500; color: var(--grigio); }
.erp-tour-detail .td-panel__price--muted { font-family: var(--font-body); font-size: 20px; font-weight: 600; color: var(--grigio); }

.erp-tour-detail .td-panel__facts { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px; }
.erp-tour-detail .td-panel__facts li { display: flex; justify-content: space-between; gap: 14px; font-size: 14.5px; }
.erp-tour-detail .td-panel__facts span { color: var(--grigio); }
.erp-tour-detail .td-panel__facts strong { color: var(--verde); font-weight: 600; text-align: right; }

.erp-tour-detail .td-form { display: grid; gap: 14px; }
.erp-tour-detail .td-field label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--verde); }
.erp-tour-detail .td-field input {
  width: 100%;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #CCCCCC;
  border-radius: 6px;
  background: var(--bianco);
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--testo);
}
.erp-tour-detail .td-field input:focus { border-color: var(--ocra); outline: none; }
.erp-tour-detail .td-submit { width: 100%; height: 52px; margin-top: 4px; }
.erp-tour-detail .td-panel__note { margin: 16px 0 0; font-size: 13px; line-height: 1.55; color: var(--grigio); }

/* FAQ e correlati */
.erp-tour-detail .td-bottom { padding-bottom: 90px; }
.erp-tour-detail .td-faq { max-width: 860px; }
.erp-tour-detail .td-faq details { border-bottom: 1px solid #E6E8E2; padding: 18px 0; }
.erp-tour-detail .td-faq summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-title);
  font-size: 19px;
  font-weight: 600;
  color: var(--verde);
}
.erp-tour-detail .td-faq summary::-webkit-details-marker { display: none; }
.erp-tour-detail .td-faq summary::after { content: "+"; color: var(--ocra); font-size: 22px; line-height: 1; }
.erp-tour-detail .td-faq details[open] summary::after { content: "\2013"; }
.erp-tour-detail .td-faq details p { margin: 12px 0 0; font-size: 16px; max-width: 720px; }

.erp-tour-detail .td-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.erp-tour-detail .td-related-card {
  display: block;
  background: var(--bianco);
  border: 1px solid #ECEDE8;
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease;
}
.erp-tour-detail .td-related-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(38, 56, 47, .10); }
.erp-tour-detail .td-related-card__media { aspect-ratio: 4 / 3; background: #E7EAE5; overflow: hidden; }
.erp-tour-detail .td-related-card__media img { width: 100%; height: 100%; object-fit: cover; }
.erp-tour-detail .td-related-card__body { padding: 18px 18px 20px; }
.erp-tour-detail .td-related-card__cat { font-size: 11.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--oliva); }
.erp-tour-detail .td-related-card h3 { font-size: 18px; line-height: 1.25; margin: 8px 0 8px; color: var(--verde); }
.erp-tour-detail .td-related-card__meta { font-size: 13.5px; color: var(--grigio); }

@media (max-width: 1000px) {
  .erp-tour-detail .td-grid { grid-template-columns: 1fr; gap: 36px; }
  .erp-tour-detail .td-panel { position: static; }
  .erp-tour-detail .td-hero h1 { font-size: 40px; }
  .erp-tour-detail .td-related-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .erp-tour-detail .td-hero h1 { font-size: 30px; }
  .erp-tour-detail .td-wrap { padding: 48px 0 24px; }
  .erp-tour-detail .td-block { margin-bottom: 40px; }
  .erp-tour-detail .td-block h2 { font-size: 24px; }
  .erp-tour-detail .td-lead { font-size: 16.5px; }
  .erp-tour-detail .td-specs__row { flex-direction: column; gap: 6px; }
  .erp-tour-detail .td-specs dt { flex: none; }
  .erp-tour-detail .td-step__media { flex: 0 0 88px; }
  .erp-tour-detail .td-related-grid { grid-template-columns: 1fr; }
  .erp-tour-detail .td-panel { padding: 20px; }
}

/* ==========================================================================
   ERP Tour Manager — modulo di prenotazione (data + partecipanti)
   ========================================================================== */

.erp-tour-detail .erp-booking-form {
	margin-top: 20px;
}

.erp-tour-detail .erp-booking-hint {
	margin: 6px 0 0;
	font-size: 12.5px;
	color: var(--grigio);
}

/* Riga del totale: prezzo unitario × partecipanti */
.erp-tour-detail .erp-booking-total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 4px 0 16px;
	padding: 14px 16px;
	background: var(--avorio);
	border: 1px solid var(--crema);
	border-radius: var(--radius);
	line-height: 1.2;
}

.erp-tour-detail .erp-booking-total__calc {
	font-size: 14px;
	color: var(--grigio);
}

.erp-tour-detail .erp-booking-total__value {
	font-family: var(--font-title);
	font-size: 24px;
	font-weight: 700;
	color: var(--verde);
	white-space: nowrap;
}

/* Gli importi di WooCommerce ereditano il colore del contenitore */
.erp-tour-detail .erp-booking-total .woocommerce-Price-amount {
	color: inherit;
	font-weight: inherit;
}

@media (max-width: 640px) {
	.erp-tour-detail .erp-booking-total {
		padding: 12px 14px;
	}

	.erp-tour-detail .erp-booking-total__value {
		font-size: 20px;
	}
}

/* ==========================================================================
   ERP Tour Manager — bottone di invio del form prenotazione
   ========================================================================== */

.erp-tour-detail .erp-booking-form .td-submit {
	background: var(--ocra);
	color: var(--testo);
	border: 0;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	padding: 0 24px;
	cursor: pointer;
}

.erp-tour-detail .erp-booking-form .td-submit:hover {
	background: var(--ocra-hover);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(224, 166, 59, 0.3);
}

/* ==========================================================================
   ERP Tour Manager — posti disponibili nel form di prenotazione
   ========================================================================== */

.erp-tour-detail .erp-booking-spots {
	margin: 2px 0 10px;
	padding: 10px 12px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--verde);
	background: rgba(118, 147, 88, .12);
	border-left: 3px solid var(--oliva);
	border-radius: 4px;
}

.erp-tour-detail .erp-booking-spots.is-error {
	color: #8a1f1f;
	background: rgba(179, 45, 46, .10);
	border-left-color: #b32d2e;
}

.erp-tour-detail .erp-booking-form .td-submit[disabled] {
	opacity: .55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

/* ==========================================================================
   Ebike Premium — Blog (archivio e singolo articolo)
   ========================================================================== */

/* --- Intestazione archivio ------------------------------------------------ */

.erp-blog .blog-hero {
	background: var(--verde);
	padding: 72px 0 64px;
}

.erp-blog .blog-hero .container {
	max-width: var(--container);
}

.erp-blog .blog-eyebrow {
	display: inline-block;
	margin-bottom: 14px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--ocra);
}

.erp-blog .blog-hero h1 {
	margin: 0 0 16px;
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.1;
	color: var(--bianco);
}

.erp-blog .blog-hero p {
	margin: 0;
	max-width: 46rem;
	font-size: 17px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.88);
}

.erp-blog .blog-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

.erp-blog .blog-cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: var(--radius-pill, 999px);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bianco);
	transition: background 0.2s ease, border-color 0.2s ease;
}

.erp-blog .blog-cat span {
	font-size: 12px;
	color: var(--ocra);
}

.erp-blog .blog-cat:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--ocra);
}

/* --- Elenco articoli ------------------------------------------------------ */

.erp-blog .blog-list {
	padding: 64px 0 90px;
}

.erp-blog .blog-list .container {
	max-width: var(--container);
}

.erp-blog .blog-featured {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 0;
	margin-bottom: 46px;
	background: var(--bianco);
	border: 1px solid rgba(38, 56, 47, 0.10);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(24, 27, 23, 0.07);
}

.erp-blog .blog-featured__media {
	display: block;
	min-height: 100%;
	overflow: hidden;
}

.erp-blog .blog-featured__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 4 / 3;
	transition: transform 0.4s ease;
}

.erp-blog .blog-featured:hover .blog-featured__media img {
	transform: scale(1.03);
}

.erp-blog .blog-featured__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 38px 40px;
}

.erp-blog .blog-featured__body h2 {
	margin: 10px 0 14px;
	font-size: clamp(24px, 2.6vw, 32px);
	line-height: 1.2;
}

.erp-blog .blog-featured__body h2 a {
	color: var(--verde);
}

.erp-blog .blog-featured__excerpt {
	margin: 0 0 20px;
	font-size: 16.5px;
	line-height: 1.7;
	color: var(--grigio);
}

.erp-blog .blog-featured__cta {
	align-self: flex-start;
	margin-top: 22px;
	height: 46px;
	padding: 0 24px;
	font-size: 15px;
}

.erp-blog .blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.erp-blog .blog-card {
	display: flex;
	flex-direction: column;
	background: var(--bianco);
	border: 1px solid rgba(38, 56, 47, 0.10);
	border-radius: var(--radius);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.erp-blog .blog-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 34px rgba(24, 27, 23, 0.10);
}

.erp-blog .blog-card__media {
	display: block;
	overflow: hidden;
}

.erp-blog .blog-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.erp-blog .blog-card:hover .blog-card__media img {
	transform: scale(1.04);
}

.erp-blog .blog-card__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 22px 22px 24px;
}

.erp-blog .blog-card__cat {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--oliva);
}

.erp-blog .blog-card__title {
	margin: 8px 0 10px;
	font-size: 19px;
	line-height: 1.3;
}

.erp-blog .blog-card__title a {
	color: var(--verde);
}

.erp-blog .blog-card__excerpt {
	margin: 0 0 16px;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--grigio);
}

.erp-blog .blog-card__meta {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	font-size: 12.5px;
	color: var(--grigio);
}

/* --- Paginazione ---------------------------------------------------------- */

.erp-blog .blog-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 52px;
}

.erp-blog .blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 16px;
	border: 1px solid rgba(38, 56, 47, 0.22);
	border-radius: var(--radius);
	font-family: var(--font-title);
	font-size: 14px;
	font-weight: 600;
	color: var(--verde);
}

.erp-blog .blog-pagination .page-numbers.current,
.erp-blog .blog-pagination .page-numbers:hover {
	background: var(--verde);
	border-color: var(--verde);
	color: var(--bianco);
}

.erp-blog .blog-empty {
	padding: 40px 0;
	font-size: 17px;
	color: var(--grigio);
}

/* --- Singolo articolo ----------------------------------------------------- */

.erp-article .article-header {
	padding: 56px 0 36px;
}

.erp-article .article-header .container,
.erp-article .article-hero .container,
.erp-article .article-wrap,
.erp-article .article-related .container,
.erp-article .article-nav .container {
	max-width: var(--container);
}

.erp-article .article-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
	font-size: 13px;
	font-weight: 600;
	color: var(--grigio);
}

.erp-article .article-breadcrumb a {
	color: var(--grigio);
}

.erp-article .article-breadcrumb a:hover {
	color: var(--ocra);
}

.erp-article .article-header h1 {
	margin: 0 0 18px;
	max-width: 20ch;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.12;
	color: var(--verde);
}

.erp-article .article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--grigio);
}

.erp-article .article-hero {
	margin: 0 0 40px;
}

.erp-article .article-hero img {
	width: 100%;
	max-height: 560px;
	object-fit: cover;
	border-radius: var(--radius);
}

.erp-article .article-hero figcaption {
	margin-top: 10px;
	font-size: 13px;
	color: var(--grigio);
}

.erp-article .article-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	align-items: start;
	padding-bottom: 40px;
}

/* Contenuto: ripristina tipografia e link dentro il contenitore del tema */
.erp-article .entry-content {
	font-size: 17px;
	line-height: 1.78;
	color: var(--testo);
}

.erp-article .entry-content p,
.erp-article .entry-content ul,
.erp-article .entry-content ol,
.erp-article .entry-content figure,
.erp-article .entry-content table {
	margin-top: 0;
	margin-bottom: 1.35em;
}

.erp-article .entry-content h2 {
	margin: 2em 0 0.6em;
	font-size: 28px;
	line-height: 1.25;
	color: var(--verde);
}

.erp-article .entry-content h3 {
	margin: 1.7em 0 0.5em;
	font-size: 21px;
	line-height: 1.3;
	color: var(--verde);
}

.erp-article .entry-content a {
	color: var(--verde);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.erp-article .entry-content a:hover {
	color: var(--ocra-scuro);
}

.erp-article .entry-content ul,
.erp-article .entry-content ol {
	padding-left: 1.35em;
}

.erp-article .entry-content li + li {
	margin-top: 0.4em;
}

.erp-article .entry-content img {
	border-radius: var(--radius-small);
}

.erp-article .entry-content blockquote {
	margin: 1.6em 0;
	padding: 20px 24px;
	background: var(--avorio);
	border-left: 4px solid var(--ocra);
	border-radius: 0 var(--radius-small) var(--radius-small) 0;
	font-family: var(--font-title);
	font-size: 19px;
	color: var(--verde);
}

.erp-article .entry-content .wp-block-buttons {
	margin: 1.6em 0;
}

/* Colonna laterale con invito all'azione */
.erp-article .article-side {
	position: relative;
}

.erp-article .article-cta {
	position: sticky;
	top: 28px;
	padding: 26px 24px;
	background: var(--verde);
	border-radius: var(--radius);
	color: rgba(255, 255, 255, 0.9);
}

.erp-article .article-cta__eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--ocra);
}

.erp-article .article-cta h2 {
	margin: 0 0 12px;
	font-size: 22px;
	line-height: 1.25;
	color: var(--bianco);
}

.erp-article .article-cta p {
	margin: 0 0 20px;
	font-size: 14.5px;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.82);
}

.erp-article .article-cta .btn {
	width: 100%;
	height: 48px;
	font-size: 15px;
}

/* Tag e footer articolo */
.erp-article .article-footer {
	margin-top: 40px;
	padding-top: 22px;
	border-top: 1px solid var(--crema);
}

.erp-article .article-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.erp-article .article-tag {
	padding: 6px 12px;
	border-radius: var(--radius-pill, 999px);
	background: var(--avorio);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--verde);
}

/* Articoli correlati */
.erp-article .article-related {
	padding: 60px 0 20px;
	background: var(--avorio);
	margin-top: 40px;
}

.erp-article .article-related h2 {
	margin: 0 0 28px;
	font-size: 26px;
	color: var(--verde);
}

.erp-article .article-related .blog-card {
	background: var(--bianco);
}

/* Navigazione precedente/successivo */
.erp-article .article-nav {
	padding: 36px 0 80px;
}

.erp-article .article-nav .container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.erp-article .article-nav__item {
	display: block;
	padding: 18px 20px;
	border: 1px solid rgba(38, 56, 47, 0.14);
	border-radius: var(--radius);
	background: var(--bianco);
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.erp-article .article-nav__item:hover {
	border-color: var(--ocra);
	transform: translateY(-2px);
}

.erp-article .article-nav__item span {
	display: block;
	margin-bottom: 6px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--grigio);
}

.erp-article .article-nav__item strong {
	font-size: 16px;
	line-height: 1.35;
	color: var(--verde);
}

.erp-article .article-nav__item--next {
	text-align: right;
}

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 1000px) {
	.erp-blog .blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.erp-blog .blog-featured {
		grid-template-columns: 1fr;
	}

	.erp-article .article-wrap {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.erp-article .article-cta {
		position: static;
	}
}

@media (max-width: 640px) {
	.erp-blog .blog-hero {
		padding: 52px 0 44px;
	}

	.erp-blog .blog-list {
		padding: 44px 0 64px;
	}

	.erp-blog .blog-grid {
		grid-template-columns: 1fr;
	}

	.erp-blog .blog-featured__body {
		padding: 26px 22px 28px;
	}

	.erp-article .article-nav .container {
		grid-template-columns: 1fr;
	}

	.erp-article .article-nav__item--next {
		text-align: left;
	}
}

/* ==========================================================================
   Ebike Premium — pagine costruite con i blocchi (template "Pagina a blocchi")
   ========================================================================== */

.erp-page-blocks-wrap {
	width: 100%;
	overflow-x: hidden;
}

.erp-page-blocks {
	width: 100%;
}

/* Blocchi a tutta larghezza: escono dal contenitore e prendono tutta la viewport */
.erp-page-blocks > .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.erp-page-blocks > .alignwide {
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-left: auto;
	margin-right: auto;
}

/* Su schermi stretti le sezioni non a tutta larghezza respirano */
@media (max-width: 900px) {
	.erp-page-blocks > .wp-block-group:not(.alignfull),
	.erp-page-blocks > .wp-block-columns,
	.erp-page-blocks > .wp-block-heading,
	.erp-page-blocks > .wp-block-paragraph {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Le card dei servizi: immagine in alto a filo con il bordo della card */
.erp-page-blocks .is-style-card-elevata {
	overflow: hidden;
}

.erp-page-blocks .is-style-card-elevata > .wp-block-image {
	margin: -24px -24px 18px;
}

.erp-page-blocks .is-style-card-elevata > .wp-block-image img {
	border-radius: 0;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.erp-page-blocks .is-style-card-elevata > .wp-block-heading {
	margin-top: 0;
}

/* Mappa incorporata */
.erp-map-embed {
	margin: 0;
}

.erp-map-embed iframe {
	width: 100%;
	height: 280px;
	border: 0;
	border-radius: var(--radius);
	display: block;
}

.erp-map-embed figcaption {
	margin-top: 8px;
	font-size: 13px;
	color: var(--grigio);
}

/* Form Contact Form 7 dentro le card */
.erp-page-blocks .wpcf7 {
	margin: 0;
}

.erp-page-blocks .wpcf7 input[type="text"],
.erp-page-blocks .wpcf7 input[type="email"],
.erp-page-blocks .wpcf7 input[type="tel"],
.erp-page-blocks .wpcf7 input[type="date"],
.erp-page-blocks .wpcf7 input[type="number"],
.erp-page-blocks .wpcf7 textarea,
.erp-page-blocks .wpcf7 select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #CCCCCC;
	border-radius: 6px;
	background: var(--bianco);
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--testo);
}

.erp-page-blocks .wpcf7 textarea {
	min-height: 120px;
}

.erp-page-blocks .wpcf7 input[type="submit"] {
	background: var(--ocra);
	color: var(--testo);
	border: 0;
	border-radius: 6px;
	padding: 14px 28px;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.erp-page-blocks .wpcf7 input[type="submit"]:hover {
	background: var(--ocra-scuro);
	transform: translateY(-2px);
}

.erp-page-blocks .wpcf7 p {
	margin-bottom: 16px;
}

.erp-page-blocks .wpcf7-not-valid-tip {
	color: #b32d2e;
	font-size: 13px;
}

.erp-page-blocks .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-radius: 6px;
	font-size: 14px;
}

/* Valori / punti di forza della pagina Chi siamo */
.erp-values-grid .wp-block-column .wp-block-group {
	height: 100%;
}

/* --- Rifiniture pagine a blocchi ----------------------------------------- */

/* Il testo dei paragrafi deve usare il colore del brand, non quello del tema
   genitore (che lo rende più chiaro). */
.erp-page-blocks p,
.erp-page-blocks li,
.erp-page-blocks dd,
.erp-page-blocks td {
	color: var(--wp--preset--color--testo, #181B17);
}

.erp-page-blocks .has-grigio-color p,
.erp-page-blocks p.has-grigio-color {
	color: var(--wp--preset--color--grigio, #5A5A5A);
}

/* Dentro le fasce verdi il testo resta chiaro */
.erp-page-blocks .is-style-fascia-verde p,
.erp-page-blocks .is-style-fascia-verde li,
.erp-page-blocks .is-style-fascia-verde h1,
.erp-page-blocks .is-style-fascia-verde h2,
.erp-page-blocks .is-style-fascia-verde h3 {
	color: #FFFFFF;
}

/* Link nelle card dei servizi */
.erp-page-blocks .is-style-card-elevata a {
	color: var(--verde);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.erp-page-blocks .is-style-card-elevata a:hover {
	color: var(--ocra-scuro);
}

/* ==========================================================================
   Bottoni dei blocchi: sfondo esplicito.
   Il tema genitore applica una regola con var(--cta-green), variabile che
   non esiste più: senza questa regola i bottoni restano trasparenti.
   ========================================================================== */

.wp-block-button .wp-block-button__link:not(.has-background) {
	background-color: var(--wp--preset--color--ocra, #E0A63B);
	color: var(--wp--preset--color--testo, #181B17);
	border: 0;
	border-radius: 6px;
	font-family: var(--wp--preset--font-family--testo, inherit);
	font-size: var(--wp--preset--font-size--normale, 16px);
	font-weight: 600;
	padding: 14px 28px;
	text-decoration: none;
}

.wp-block-button .wp-block-button__link:not(.has-background):hover {
	background-color: var(--wp--preset--color--ocra-scuro, #C9902C);
	color: var(--wp--preset--color--testo, #181B17);
}

/* Variante verde */
.wp-block-button.is-style-verde .wp-block-button__link:not(.has-background) {
	background-color: var(--wp--preset--color--verde, #26382F);
	color: var(--wp--preset--color--bianco, #FFFFFF);
}

.wp-block-button.is-style-verde .wp-block-button__link:not(.has-background):hover {
	background-color: var(--wp--preset--color--verde-chiaro, #3F5F46);
	color: var(--wp--preset--color--bianco, #FFFFFF);
}

/* Variante con contorno scuro */
.wp-block-button.is-style-contorno-scuro .wp-block-button__link:not(.has-background) {
	background-color: transparent;
	color: var(--wp--preset--color--verde, #26382F);
	border: 2px solid var(--wp--preset--color--verde, #26382F);
	padding: 12px 26px;
}

.wp-block-button.is-style-contorno-scuro .wp-block-button__link:not(.has-background):hover {
	background-color: var(--wp--preset--color--verde, #26382F);
	color: var(--wp--preset--color--bianco, #FFFFFF);
}

/* Nelle fasce verdi il contorno deve essere bianco, non verde su verde */
.is-style-fascia-verde .wp-block-button.is-style-contorno-scuro .wp-block-button__link:not(.has-background) {
	color: #FFFFFF;
	border-color: #FFFFFF;
}

.is-style-fascia-verde .wp-block-button.is-style-contorno-scuro .wp-block-button__link:not(.has-background):hover {
	background-color: #FFFFFF;
	color: var(--wp--preset--color--verde, #26382F);
}

/* ==========================================================================
   QA — correzioni emerse dal controllo di qualità (novembre 2026)
   1) overflow orizzontale dell'hero nella scheda tour su mobile
   2) contrasto dei testi piccoli in oliva e degli input
   ========================================================================== */

:root {
	--oliva-testo: #4F6B3A; /* verde oliva più scuro: contrasto 5,9:1 sul bianco */
}

/* 1) Hero scheda tour: la larghezza non deve derivare dall'aspect-ratio */

@media (max-width: 1000px) {
}

@media (max-width: 640px) {
	.erp-tour-detail .td-hero__content {
		padding-bottom: 28px;
	}
}

/* 2) Contrasto: testi piccoli in maiuscolo sotto i 14px */
.erp-tour-detail .td-related-card__cat,
.erp-tours .tour-meta__label,
.erp-catalog .cat-card__cat,

/* Testi del corpo scheda: colore esplicito, non ereditato da plugin esterni */
.erp-tour-detail .td-block p,
.erp-tour-detail .td-block li {
	color: var(--testo);
}

.erp-tour-detail input,
.erp-tour-detail select,
.erp-tour-detail textarea {
	color: var(--testo);
}

/* Le etichette in maiuscolo nell'hero restano leggibili sul gradiente scuro */
/* Contrasto: l'ocra di brand (#E0A63B, 2,2:1 sul bianco) resta sugli sfondi e
   sui bordi, mentre i testi su fondo chiaro usano una variante più scura
   (#8F5E12, 5,5:1) così da superare la soglia WCAG AA. */
:root {
	--ocra-testo: #8F5E12;
}

.ebike-home .srv-price,
.ebike-home .trust-rating .stars,
.ebike-home .rev-stars,
.erp-catalog .cat-eyebrow,
.erp-catalog .cat-card--custom .cat-card__media span,
.erp-catalog .cat-step__num,
.erp-tours .tour-eyebrow,
.ebike-product .eb-steps__num,
.ebike-product .eb-acc-card__icon,
.erp-blog .blog-eyebrow,
.erp-blog .blog-cat span,
.erp-article .article-cta__eyebrow,
.erp-article .article-breadcrumb a:hover {
	color: var(--ocra-testo);
}
/* L'occhiello del blog sta su fondo verde: qui l'ocra chiaro è quello giusto. */
.erp-blog .blog-hero .blog-eyebrow {
	color: var(--ocra);
}

/* Prezzo nei listini WooCommerce: il colore di default (#958E09) non arriva a
   4,5:1 sul bianco, quindi usiamo il verde del marchio. */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price bdi,
.woocommerce ul.products li.product .price .woocommerce-Price-amount,
.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol {
	color: var(--verde);
}
/* --- Scheda tour: margini laterali e lista "non incluso" ------------------ */

/* .td-wrap/.td-bottom stanno sullo stesso elemento di .container, ma la loro
   scorciatoia padding (72px 0 40px) azzerava i margini laterali: il testo
   arrivava a filo dello schermo. Qui li ripristiniamo. */
.erp-tour-detail .container {
	max-width: var(--container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 32px;
	padding-right: 32px;
}

@media (max-width: 640px) {
	.erp-tour-detail .container {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Le voci "non incluso" avevano la stessa spunta di quelle incluse. */
.erp-tour-detail .td-check-list--escluso li::before {
	content: "\2717";
	color: #A0342A;
}
/* Sezione tour in evidenza nella home */
.ebike-home .home-tours {
	background: var(--avorio);
}

.ebike-home .home-tours .erp-tours {
	padding: 0;
}

.ebike-home .home-tours__cta {
	margin: 34px 0 0;
	text-align: center;
}
/* Etichette delle card del blog: oliva troppo chiaro sul bianco (3,4:1) */
.erp-blog .blog-card__cat,
.erp-blog .blog-featured__cat {
	color: var(--oliva-testo);
}
/* ==========================================================================
   HOME — struttura "v2" (solo layout: palette e font invariati)
   Griglie diverse per banda, spaziature sulla scala 8, formati immagine
   coerenti, alternanza dei fondi esistenti. Isolata sotto .home-v2.
   ========================================================================== */

.home-v2 {
	/* Stessi valori della palette esistente, ri-dichiarati qui perché in
	   style.css vivono su .ebike-home: nessun colore nuovo, solo lo scope. */
	--verde: #26382F;
	--verde-hover: #3F5F46;
	--oliva: #769358;
	--ocra: #E0A63B;
	--ocra-hover: #c9902c;
	--bianco: #FFFFFF;
	--avorio: #FFFAF0;
	--crema: #F6EBD8;
	--testo: #181B17;
	--grigio: #5A5A5A;
	--font-title: 'Montserrat', sans-serif;
	--font-body: 'Inter', sans-serif;
	--container: 1200px;
	--radius: 12px;

	--v2-pad: 128px;        /* respiro delle bande "piene" */
	--v2-pad-sottile: 64px; /* bande sottili (ricerca, step) */
	--v2-gap: 24px;

	color: var(--testo);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
	background: var(--bianco);
	-webkit-font-smoothing: antialiased;
}

.v2-container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}

.home-v2 h1, .home-v2 h2, .home-v2 h3, .home-v2 h4 {
	font-family: var(--font-title);
	letter-spacing: -0.3px;
	margin: 0;
}

.v2-h2 { font-size: clamp(28px, 3.2vw, 42px); line-height: 1.12; font-weight: 700; }
.v2-h2--chiaro { color: var(--bianco); }
.v2-h3 { font-size: 26px; line-height: 1.2; font-weight: 700; }
.v2-h4 { font-size: 19px; line-height: 1.25; font-weight: 700; }

.v2-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oliva-testo, #4F6B3A);
	margin-bottom: 12px;
}
.v2-eyebrow--chiaro { color: #F6EBD8; }

.v2-lead { font-size: 17px; line-height: 1.7; color: #3A4A41; max-width: 58ch; margin: 16px 0 0; }

/* Bottoni: stessi valori del sito attuale */
.v2-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 14px 26px; border-radius: 6px; border: 1px solid transparent;
	font-family: var(--font-body); font-size: 15px; font-weight: 600;
	text-decoration: none; transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.v2-btn--ocra { background: var(--ocra); color: var(--testo); }
.v2-btn--ocra:hover { background: var(--ocra-hover); color: var(--testo); }
.v2-btn--verde { background: var(--verde); color: var(--bianco); }
.v2-btn--verde:hover { background: var(--verde-hover); color: var(--bianco); }
.v2-btn--fantasma { background: transparent; color: var(--bianco); border-color: rgba(255, 255, 255, .65); }
.v2-btn--fantasma:hover { background: rgba(255, 255, 255, .14); border-color: var(--bianco); }
.v2-btn--sm { padding: 10px 18px; font-size: 14px; }

.v2-link {
	color: var(--verde); text-decoration: none; font-weight: 600; font-size: 14px;
	border-bottom: 1px solid var(--ocra); padding-bottom: 2px;
}
.v2-link:hover { color: var(--verde-hover); }
.v2-link--grande { font-size: 15px; }

.v2-prezzo { font-family: var(--font-title); font-size: 20px; font-weight: 700; color: var(--verde); }
.v2-prezzo small { font-family: var(--font-body); font-size: 13px; font-weight: 500; color: var(--grigio); }
.v2-prezzo--sm { font-size: 16px; }

/* Bandi e spaziature ------------------------------------------------------ */
.v2-band { padding: var(--v2-pad) 0; }
.v2-band--bianco { background: var(--bianco); }
.v2-band--crema { background: var(--crema); }
.v2-band--avorio { background: var(--avorio); }

.v2-head { margin-bottom: 48px; max-width: 62ch; }
.v2-head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; max-width: none; }
.v2-head--centrato { text-align: center; margin-left: auto; margin-right: auto; }
.v2-head--centrato .v2-eyebrow { text-align: center; }

/* 1 · HERO --------------------------------------------------------------- */
.v2-hero {
	position: relative; display: flex; align-items: flex-end;
	height: clamp(520px, 72vh, 720px); overflow: hidden; background: var(--verde);
}
.v2-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v2-hero__veil {
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(26, 43, 34, .9) 0%, rgba(26, 43, 34, .45) 45%, rgba(26, 43, 34, .12) 100%);
}
.v2-hero__in { position: relative; z-index: 2; padding-bottom: 72px; max-width: 820px; }
.v2-hero__in .v2-eyebrow { margin-bottom: 14px; }
.v2-hero__title {
	font-size: clamp(34px, 5.2vw, 62px); line-height: 1.04; font-weight: 700;
	color: var(--bianco); max-width: 20ch;
}
.v2-hero__lead {
	margin: 18px 0 0; font-size: 18px; line-height: 1.6;
	color: rgba(255, 255, 255, .92); max-width: 52ch;
}
.v2-hero__cta { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }

/* 2 · RICERCA ------------------------------------------------------------ */
.v2-search { background: var(--avorio); border-bottom: 1px solid rgba(38, 56, 47, .08); padding: 28px 0; }
.v2-search__in { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.v2-search__form { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.v2-group { display: contents; }
.v2-group[hidden] { display: none !important; }
.v2-field { display: flex; flex-direction: column; gap: 6px; }
.v2-field label {
	font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--grigio);
}
.v2-field select, .v2-field input {
	padding: 11px 12px; border: 1px solid #E0DED5; border-radius: 6px;
	background: var(--bianco); font-family: var(--font-body); font-size: 15px;
	color: var(--testo); min-width: 150px;
}
.v2-field input[type="number"] { min-width: 96px; }
.v2-field select:focus, .v2-field input:focus { border-color: var(--ocra); outline: none; }
.v2-search__submit { margin-left: 4px; }
.v2-search__prove {
	display: flex; gap: 22px; list-style: none; margin: 0; padding: 0;
	font-size: 13px; color: var(--grigio); flex-wrap: wrap;
}
.v2-search__prove strong { color: var(--verde); }

/* 3 · BENTO SERVIZI ------------------------------------------------------ */
.v2-bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--v2-gap); }
.v2-bento__big {
	grid-column: 1 / 8; grid-row: 1 / 3;
	display: flex; flex-direction: column;
	background: var(--avorio); border-radius: 12px; overflow: hidden;
}
.v2-bento__small {
	grid-column: 8 / 13;
	display: grid; grid-template-columns: 44% 1fr;
	background: var(--avorio); border-radius: 12px; overflow: hidden;
}
.v2-bento__small:nth-of-type(2) { grid-row: 1 / 2; }
.v2-bento__small:nth-of-type(3) { grid-row: 2 / 3; }
.v2-bento__ph { display: block; overflow: hidden; }
.v2-bento__big .v2-bento__ph { aspect-ratio: 3 / 2; }
.v2-bento__small .v2-bento__ph { height: 100%; min-height: 168px; }
.v2-bento__ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.v2-bento__big:hover .v2-bento__ph img,
.v2-bento__small:hover .v2-bento__ph img { transform: scale(1.03); }
.v2-bento__body { padding: 26px 28px; display: flex; flex-direction: column; gap: 10px; }
.v2-bento__small .v2-bento__body { padding: 22px 24px; justify-content: center; }
.v2-bento__body p { margin: 0; font-size: 15px; line-height: 1.65; color: #3A4A41; }
.v2-bento__foot {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; margin-top: auto; padding-top: 14px;
	border-top: 1px solid rgba(38, 56, 47, .1);
}

/* 4 · NOLEGGIO ----------------------------------------------------------- */
.v2-rental__grid { display: grid; grid-template-columns: 4fr 8fr; gap: 56px; align-items: start; }
.v2-rental__text .v2-btn { margin-top: 28px; }
.v2-check { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.v2-check li {
	position: relative; padding-left: 26px; font-size: 15px; line-height: 1.6; color: #3A4A41;
}
.v2-check li::before {
	content: "\2713"; position: absolute; left: 0; top: 0;
	color: var(--oliva-testo, #4F6B3A); font-weight: 700;
}
.v2-rental__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--v2-gap); }
.v2-bike {
	display: flex; flex-direction: column; background: var(--bianco);
	border: 1px solid rgba(38, 56, 47, .1); border-radius: 12px; overflow: hidden;
}
/* Le foto delle bici sono scontornate: contain + fondo crema = bici intera, mai tagliata */
.v2-bike__ph {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 4 / 5; background: var(--crema); padding: 18px;
}
.v2-bike__ph img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; transition: transform .5s ease; }
.v2-bike:hover .v2-bike__ph img { transform: scale(1.04); }
.v2-bike__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.v2-bike__body h3 { font-size: 17px; }
.v2-bike__body h3 a { color: var(--verde); text-decoration: none; }
.v2-bike__tipo { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--grigio); }
.v2-bike__foot {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(38, 56, 47, .1);
}

/* 5 · TOUR (mosaico) ----------------------------------------------------- */
.v2-mosaico { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--v2-gap); }
.v2-tour {
	grid-column: 8 / 13;
	display: flex; flex-direction: column;
	background: var(--bianco); border: 1px solid rgba(38, 56, 47, .12); border-radius: 12px; overflow: hidden;
}
.v2-tour--grande { grid-column: 1 / 8; grid-row: 1 / 3; }
.v2-tour:nth-of-type(2) { grid-row: 1 / 2; }
.v2-tour:nth-of-type(3) { grid-row: 2 / 3; }
.v2-tour__ph { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; }
.v2-tour--grande .v2-tour__ph { aspect-ratio: auto; flex: 1 1 auto; min-height: 300px; }
.v2-tour--grande .v2-tour__body { flex: 0 0 auto; }
.v2-tour__ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.v2-tour:hover .v2-tour__ph img { transform: scale(1.03); }
.v2-tour__badge {
	position: absolute; top: 14px; left: 14px;
	background: var(--ocra); color: var(--testo);
	font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
	padding: 6px 12px; border-radius: 999px;
}
.v2-tour__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.v2-tour__meta {
	display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0; padding: 0;
	font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--grigio);
}
.v2-tour__body h3 a { color: var(--verde); text-decoration: none; }
.v2-tour__foot {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(38, 56, 47, .1);
}

/* 6 · TERRITORIO (50/50 invertito) --------------------------------------- */
.v2-territorio__grid { display: grid; grid-template-columns: 6fr 6fr; gap: 56px; align-items: center; }
.v2-territorio__ph { margin: 0; border-radius: 12px; overflow: hidden; }
.v2-territorio__ph img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.v2-territori { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.v2-territori li { font-size: 14px; color: var(--grigio); }
.v2-territori span { display: block; font-family: var(--font-title); font-size: 16px; font-weight: 700; color: var(--verde); }
.v2-territorio__text .v2-btn { margin-top: 28px; }

/* 7 · COME FUNZIONA (banda verde) ---------------------------------------- */
.v2-steps { background: var(--verde); color: var(--bianco); padding: var(--v2-pad-sottile) 0; }
.v2-steps__list {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
	list-style: none; margin: 0; padding: 0;
}
.v2-steps__n {
	display: block; font-family: var(--font-title); font-size: 13px; font-weight: 700;
	letter-spacing: .12em; color: var(--ocra); margin-bottom: 12px;
}
.v2-steps__list h3 { font-size: 20px; color: var(--bianco); margin-bottom: 8px; }
.v2-steps__list p { margin: 0; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .82); }

/* 8 · RECENSIONI --------------------------------------------------------- */
.v2-recensioni__grid { display: grid; grid-template-columns: 6fr 6fr; gap: 56px; align-items: center; }
.v2-quote { margin: 0; }
.v2-quote p {
	margin: 0 0 20px; font-family: var(--font-title); font-size: clamp(20px, 2.2vw, 27px);
	line-height: 1.45; font-weight: 600; color: var(--verde);
}
.v2-quote footer { font-size: 14px; color: var(--grigio); }
.v2-quote footer strong { color: var(--verde); }
.v2-quote footer span { display: block; margin-top: 2px; }
.v2-recensioni__cards { display: grid; gap: 20px; }
.v2-rec-card { background: var(--avorio); border-radius: 12px; padding: 22px 24px; }
.v2-stelle { display: block; color: var(--ocra); font-size: 15px; letter-spacing: 2px; margin-bottom: 10px; }
.v2-rec-card p { margin: 0 0 12px; font-size: 15px; line-height: 1.65; color: #3A4A41; }
.v2-rec-card footer { font-size: 13px; color: var(--grigio); }
.v2-rec-card footer strong { color: var(--verde); }

/* 9 · VACANZE (immagine full-bleed) -------------------------------------- */
.v2-holiday {
	position: relative; display: flex; align-items: center; overflow: hidden;
	height: clamp(380px, 46vh, 480px); background: var(--verde);
}
.v2-holiday img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v2-holiday__veil {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(26, 43, 34, .88) 0%, rgba(26, 43, 34, .55) 55%, rgba(26, 43, 34, .18) 100%);
}
.v2-holiday__in { position: relative; z-index: 2; color: var(--bianco); max-width: 620px; }
.v2-holiday__in p { margin: 16px 0 26px; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .9); }

/* 10 · CTA FINALE -------------------------------------------------------- */
.v2-cta { background: var(--verde); color: var(--bianco); padding: 72px 0; }
.v2-cta__in { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.v2-cta__in p { margin: 14px 0 0; font-size: 16px; color: rgba(255, 255, 255, .85); }
.v2-cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }

/* ADATTAMENTI ------------------------------------------------------------ */
@media (max-width: 1100px) {
	.home-v2 { --v2-pad: 88px; --v2-pad-sottile: 56px; }
	/* bento: su una colonna l'ordine torna quello del DOM (noleggio per primo) */
	.v2-bento__big, .v2-bento__small,
	.v2-bento__small:nth-of-type(2), .v2-bento__small:nth-of-type(3) {
		grid-column: 1 / 13; grid-row: auto;
	}
	.v2-bento__big { order: -1; }
	.v2-rental__grid { grid-template-columns: 1fr; gap: 40px; }
	.v2-territorio__grid, .v2-recensioni__grid { grid-template-columns: 1fr; gap: 36px; }
	.v2-territorio__ph img { aspect-ratio: 16 / 10; }
	.v2-bento__big { grid-column: 1 / 13; grid-row: auto; }
	.v2-bento__small { grid-column: 1 / 13; grid-row: auto; }
	.v2-tour--grande { grid-column: 1 / 13; grid-row: auto; }
	.v2-tour, .v2-tour:nth-of-type(2), .v2-tour:nth-of-type(3) { grid-column: 1 / 13; grid-row: auto; }
	.v2-steps__list { grid-template-columns: 1fr 1fr; gap: 28px; }
}

@media (max-width: 720px) {
	.home-v2 { --v2-pad: 56px; --v2-pad-sottile: 44px; --v2-gap: 16px; }
	.v2-container { padding: 0 20px; }
	.v2-hero { height: 78vh; min-height: 480px; }
	.v2-hero__in { padding-bottom: 40px; }
	.v2-hero__title { font-size: clamp(30px, 9vw, 40px); }
	.v2-hero__lead { font-size: 16px; }
	.v2-search { padding: 22px 0; }
	.v2-search__in { gap: 20px; }
	.v2-search__form { width: 100%; }
	.v2-field, .v2-field select, .v2-field input { width: 100%; min-width: 0; }
	/* le due date affiancate anche su telefono */
	.v2-group[data-service="rental"], .v2-group[data-service="tour"], .v2-group[data-service="holiday"] {
		display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%;
	}
	.v2-group[data-service="rental"] .v2-field:first-child { grid-column: 1 / -1; }
	.v2-search__submit { width: 100%; margin: 0; }
	.v2-search__submit .v2-btn { width: 100%; }
	.v2-search__prove { gap: 12px; font-size: 12px; }
	.v2-bento__small { grid-template-columns: 1fr; }
	.v2-bento__small .v2-bento__ph { min-height: 0; aspect-ratio: 16 / 10; }
	/* bici: card orizzontale compatta, così la banda non diventa lunghissima */
	.v2-rental__cards { grid-template-columns: 1fr; gap: 12px; }
	.v2-bike { flex-direction: row; align-items: stretch; }
	.v2-bike__ph { aspect-ratio: 1 / 1; width: 118px; flex: 0 0 118px; padding: 10px; }
	.v2-bike__body { padding: 14px 16px; }
	.v2-bike__foot { padding-top: 8px; }
	.v2-head { margin-bottom: 32px; }
	.v2-head--split { flex-direction: column; align-items: flex-start; gap: 16px; }
	.v2-steps__list { grid-template-columns: 1fr; gap: 24px; }
	.v2-territori { grid-template-columns: 1fr; gap: 12px; }
	.v2-holiday { height: auto; padding: 56px 0; }
	.v2-cta { padding: 56px 0; }
	.v2-cta__in { gap: 26px; }
	.v2-cta__btns { width: 100%; }
	.v2-cta__btns .v2-btn { flex: 1; }
}
/* ==========================================================================
   Correzioni di fino (feedback cliente) — sempre solo layout/tipografia
   ========================================================================== */

/* 1 · Bento servizi: 6 + 3 + 3 in una riga, card compatte, immagini che riempiono */
.v2-bento { grid-template-columns: repeat(12, 1fr); gap: 20px; }
.v2-bento__big { grid-column: 1 / 7; grid-row: 1; }
.v2-bento__small,
.v2-bento__small:nth-of-type(2),
.v2-bento__small:nth-of-type(3) {
	grid-column: span 3; grid-row: 1;
	display: flex; flex-direction: column;
}
.v2-bento__big .v2-bento__ph { aspect-ratio: 16 / 10; flex: 0 0 auto; }
.v2-bento__small .v2-bento__ph {
	height: auto; flex: 1 1 auto; min-height: 190px; padding: 0;
}
.v2-bento__small .v2-bento__ph img { width: 100%; height: 100%; object-fit: cover; }
.v2-bento__body { padding: 22px 24px 24px; gap: 8px; }
.v2-bento__small .v2-bento__body { padding: 18px 20px 20px; }
.v2-bento__body p { font-size: 15.5px; }
.v2-bento__small .v2-bento__body h3 { font-size: 19px; }
.v2-bento__foot { padding-top: 12px; }

/* 2 · Titoli: più carattere e più stacco dal testo */
.v2-h2 { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.06; letter-spacing: -0.8px; font-weight: 700; }
.v2-h3 { font-size: clamp(23px, 2.3vw, 29px); line-height: 1.12; letter-spacing: -0.4px; }
.v2-h4 { font-size: 20px; line-height: 1.2; letter-spacing: -0.2px; }
.v2-hero__title { font-size: clamp(36px, 5.6vw, 70px); letter-spacing: -1px; }
.v2-eyebrow { font-size: 12.5px; letter-spacing: 0.14em; margin-bottom: 14px; }
.v2-lead { font-size: 18px; line-height: 1.7; }
.v2-head { margin-bottom: 34px; }

/* 3 · Recensioni: testo più leggibile e card più areate */
.v2-quote p { font-size: clamp(22px, 2.4vw, 31px); line-height: 1.4; letter-spacing: -0.3px; }
.v2-rec-card { padding: 28px 30px; }
.v2-rec-card p { font-size: 16.5px; line-height: 1.7; margin-bottom: 14px; }
.v2-rec-card footer { font-size: 13.5px; }
.v2-stelle { font-size: 16px; margin-bottom: 12px; }

/* 4 · Pagine a blocchi (Vacanze e landing): ritmo più stretto, titoli più forti */
.erp-page-blocks .is-style-fascia-verde,
.erp-page-blocks .is-style-fascia-crema {
	padding-top: 56px !important;
	padding-bottom: 56px !important;
}
.erp-page-blocks h2.wp-block-heading {
	font-size: clamp(28px, 3vw, 40px); line-height: 1.08;
	font-weight: 700; letter-spacing: -0.6px; margin-bottom: 14px;
}
.erp-page-blocks h3.wp-block-heading {
	font-size: clamp(21px, 2vw, 26px); font-weight: 700; letter-spacing: -0.3px;
}

/* Mobile: il bento torna a una colonna, card in sequenza */
@media (max-width: 1100px) {
	.v2-bento__big, .v2-bento__small,
	.v2-bento__small:nth-of-type(2), .v2-bento__small:nth-of-type(3) {
		grid-column: 1 / 13; grid-row: auto;
	}
	.v2-bento__big { order: -1; }
	.v2-bento__small .v2-bento__ph { min-height: 0; aspect-ratio: 16 / 10; flex: 0 0 auto; }
}
/* Allineamento: hero e banda vacanze non devono centrare il testo */
.v2-hero__in { margin: 0; max-width: 820px; }
.v2-holiday__in { margin: 0; max-width: 620px; }
.v2-hero > .v2-container,
.v2-holiday > .v2-container { position: relative; z-index: 2; width: 100%; }

/* Citazione: filetto ocra esplicito (prima arrivava da una regola generica) */
.v2-quote { border-left: 3px solid var(--ocra); padding-left: 26px; }

/* La banda vacanze è alta: il testo resta centrato verticalmente */
.v2-holiday { align-items: center; }
/* ==========================================================================
   Autonomia — interventi richiesti dal cliente
   1) hero + ricerca in un blocco solo
   2) CTA leggere sopra il footer (Vacanze)
   3) filo conduttore tra le card (Vacanze)
   4) footer allineato alla griglia principale
   ========================================================================== */

/* 1 · HERO con scheda di prenotazione ------------------------------------ */
.v2-hero {
	display: block;
	height: auto;
	min-height: 0;
	padding: 0 0 64px;
	background: var(--verde);
}
.v2-hero__stack {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(600px, 80vh, 780px);
	padding-top: 96px;
}
.v2-hero__in { max-width: 820px; margin: 0; padding-bottom: 34px; }

.v2-booking {
	background: var(--bianco);
	border-radius: 12px;
	box-shadow: 0 20px 44px rgba(24, 27, 23, .18);
	padding: 20px 22px 0;
}
.v2-booking__form {
	display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap;
}
.v2-booking__form .v2-group { display: contents; }
.v2-booking__form .v2-group[hidden] { display: none !important; }
.v2-booking__form .v2-field { flex: 1 1 150px; min-width: 132px; }
.v2-booking__submit { flex: 0 0 auto; }
.v2-booking__prove {
	display: flex; gap: 22px; flex-wrap: wrap;
	list-style: none; margin: 16px 0 0; padding: 14px 0;
	border-top: 1px solid rgba(38, 56, 47, .1);
	font-size: 13px; color: var(--grigio);
}
.v2-booking__prove strong { color: var(--verde); }

/* 2 · CTA leggere sopra il footer (solo pagina Vacanze) ------------------- */
.page-id-63216 .erp-page-blocks > .wp-block-group:last-of-type,
.page-id-63217 .erp-page-blocks > .wp-block-group:last-of-type {
	padding-top: 40px !important;
	padding-bottom: 40px !important;
}
.page-id-63216 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-buttons,
.page-id-63217 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-buttons {
	gap: 26px; align-items: center;
}
.page-id-63216 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-button__link,
.page-id-63217 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-button__link {
	background: transparent !important;
	color: var(--bianco) !important;
	border: 0 !important;
	border-radius: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, .55) !important;
	padding: 2px 0 !important;
	min-height: 0;
	font-size: 15px;
	font-weight: 500;
	box-shadow: none !important;
}
.page-id-63216 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-button:first-child .wp-block-button__link,
.page-id-63217 .erp-page-blocks > .wp-block-group:last-of-type .wp-block-button:first-child .wp-block-button__link {
	border-bottom-color: var(--ocra) !important;
}

/* 3 · Filo conduttore tra le card (righe unite in un'unica griglia) ------ */
.erp-page-blocks .wp-block-group:has(.wp-block-columns .is-style-card-elevata):not(.is-style-fascia-crema):not(.is-style-fascia-verde) {
	background: var(--avorio);
}
.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) {
	gap: 0;
	align-items: stretch;
}
.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) > .wp-block-column { margin: 0 !important; }
.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) .is-style-card-elevata {
	border-radius: 0;
	box-shadow: none;
	border: 1px solid rgba(38, 56, 47, .12);
	margin: 0;
	height: 100%;
}
.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) > .wp-block-column + .wp-block-column .is-style-card-elevata {
	border-left: 0;
}

/* 4 · Footer allineato alla stessa griglia di header e contenuti --------- */
.erp-footer__inner { padding-left: 24px; padding-right: 24px; }

/* Adattamenti mobile ----------------------------------------------------- */
@media (max-width: 900px) {
	.v2-hero__stack { min-height: 0; padding-top: 72px; }
	.v2-hero__in { padding-bottom: 24px; }
	.v2-booking { padding: 16px 16px 0; }
	.v2-booking__form { gap: 10px; }
	.v2-booking__form .v2-field { width: 100%; }
	.v2-booking__form .v2-field select,
	.v2-booking__form .v2-field input { width: 100%; min-width: 0; }
	.v2-booking__submit { width: 100%; margin: 4px 0 0; }
	.v2-booking__submit .v2-btn { width: 100%; }
	.v2-booking__prove { gap: 12px; font-size: 12px; }
	.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) { gap: 12px; }
	.erp-page-blocks .wp-block-columns:has(.is-style-card-elevata) .is-style-card-elevata {
		border-radius: 12px;
		border-left: 1px solid rgba(38, 56, 47, .12);
	}
	.erp-footer__inner { padding-left: 20px; padding-right: 20px; }
}

@media (max-width: 720px) {
	.v2-hero { padding-bottom: 48px; }
	.v2-hero__stack { padding-top: 56px; }
	/* le due date restano affiancate anche dentro la scheda */
	.v2-booking__form .v2-group[data-service="rental"],
	.v2-booking__form .v2-group[data-service="tour"],
	.v2-booking__form .v2-group[data-service="holiday"] {
		display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%;
	}
	.v2-booking__form .v2-group[data-service="rental"] .v2-field:first-child { grid-column: 1 / -1; }
}
/* Pagine a blocchi: allineate alla griglia del sito.
   WordPress vincola i figli dei gruppi alla misura "content" (760px) e li
   centra: per questo titoli e card risultavano spostati di ~200px rispetto
   a header e footer. Qui li portiamo alla larghezza del contenitore (1152px
   utili = 1200 - 48 di padding) e lasciamo i paragrafi a misura di lettura. */
.erp-page-blocks > .wp-block-group > *:not(.alignwide):not(.alignfull) {
	max-width: 1152px;
}
.erp-page-blocks > .wp-block-group > p:not(.alignwide):not(.alignfull),
.erp-page-blocks > .wp-block-group > ul:not(.alignwide):not(.alignfull),
.erp-page-blocks > .wp-block-group > ol:not(.alignwide):not(.alignfull) {
	max-width: 760px;
	/* Allinea i paragrafi al bordo sinistro della griglia (1152px utili),
	   sia dentro le fasce a tutta larghezza sia nei gruppi normali. */
	margin-left: max(0px, calc((100% - 1152px) / 2)) !important;
	margin-right: auto !important;
}
/* ==========================================================================
   PAGINA NOLEGGIO (.rental-v1) — archivio prodotti ridisegnato
   Palette e font invariati: le variabili sono ri-dichiarate qui perché in
   style.css vivono su .ebike-home / .home-v2.
   ========================================================================== */

.rental-v1 {
	--verde: #26382F;
	--verde-hover: #3F5F46;
	--oliva: #769358;
	--ocra: #E0A63B;
	--ocra-hover: #c9902c;
	--bianco: #FFFFFF;
	--avorio: #FFFAF0;
	--crema: #F6EBD8;
	--testo: #181B17;
	--grigio: #5A5A5A;
	--font-title: 'Montserrat', sans-serif;
	--font-body: 'Inter', sans-serif;
	--container: 1200px;
	--radius: 12px;

	color: var(--testo);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
	background: var(--bianco);
	-webkit-font-smoothing: antialiased;
}

.rental-v1 h1, .rental-v1 h2, .rental-v1 h3, .rental-v1 h4 {
	font-family: var(--font-title);
	letter-spacing: -0.3px;
	margin: 0;
}

.rv-eyebrow {
	display: block;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--oliva-testo, #4F6B3A);
	margin-bottom: 14px;
}
.rv-eyebrow--chiaro { color: #F6EBD8; }

/* 1 · HERO SPLIT --------------------------------------------------------- */
.rv-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--verde);
	color: var(--bianco);
}
.rv-hero__testo {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 84px 56px 84px clamp(24px, calc((100vw - 1200px) / 2 + 24px), 260px);
}
.rv-hero__titolo {
	font-size: clamp(32px, 4vw, 54px);
	line-height: 1.05;
	letter-spacing: -0.8px;
	color: var(--bianco);
	max-width: 18ch;
	margin-top: 4px;
}
.rv-hero__lead {
	margin: 20px 0 0;
	font-size: 17px;
	line-height: 1.65;
	color: rgba(255, 255, 255, .9);
	max-width: 46ch;
}
.rv-hero__cta { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.rv-hero__claim {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin: 32px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid rgba(255, 255, 255, .2);
	font-size: 13.5px;
	color: rgba(255, 255, 255, .85);
}
.rv-hero__media { margin: 0; position: relative; overflow: hidden; min-height: 520px; }
.rv-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Bande ------------------------------------------------------------------ */
.rv-band { padding: 96px 0; }
.rv-band--bianco { background: var(--bianco); }
.rv-band--avorio { background: var(--avorio); }
.rv-band--crema { background: var(--crema); }

/* 3 · COME FUNZIONA ------------------------------------------------------ */
.rv-steps__list {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px;
	list-style: none; margin: 0; padding: 0;
}
.rv-steps__list li { border-top: 2px solid var(--ocra); padding-top: 18px; }
.rv-steps__n {
	display: block; font-family: var(--font-title); font-size: 12px; font-weight: 700;
	letter-spacing: .12em; color: var(--oliva-testo, #4F6B3A); margin-bottom: 10px;
}
.rv-steps__list h3 { font-size: 19px; color: var(--verde); margin-bottom: 8px; }
.rv-steps__list p { margin: 0; font-size: 15px; line-height: 1.65; color: #3A4A41; }

/* 4 · CATALOGO ----------------------------------------------------------- */
.rv-catalogo__conteggio { font-size: 13.5px; color: var(--grigio); }
.rv-filtri { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 30px; }
.rv-pill {
	display: inline-flex; align-items: center;
	padding: 9px 18px; border: 1px solid rgba(38, 56, 47, .25); border-radius: 999px;
	font-size: 13.5px; font-weight: 600; color: var(--verde); text-decoration: none;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.rv-pill:hover { border-color: var(--verde); background: rgba(38, 56, 47, .05); }
.rv-pill.is-attivo { background: var(--verde); border-color: var(--verde); color: var(--bianco); }

.rv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rv-card {
	display: flex; flex-direction: column;
	background: var(--bianco);
	border: 1px solid rgba(38, 56, 47, .12);
	border-radius: 12px; overflow: hidden;
}
/* Media 4:5 con la bici "in contesto": foto paesaggio dietro + scontorno davanti */
.rv-card__media {
	position: relative; display: block; overflow: hidden;
	aspect-ratio: 4 / 5; background: var(--crema);
}
.rv-card__bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	filter: saturate(.9) brightness(.9);
}
.rv-card__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(38, 56, 47, .38) 0%, rgba(255, 250, 240, 0) 55%);
}
.rv-card__media img {
	position: relative; z-index: 2;
	width: 100%; height: 100%;
	object-fit: contain;
	padding: 26px 18px;
	filter: drop-shadow(0 14px 20px rgba(24, 27, 23, .35));
	transition: transform .6s cubic-bezier(.22, 1, .36, 1);
}
.rv-card:hover .rv-card__media img { transform: scale(1.04); }
.rv-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rv-card__cat {
	font-size: 11.5px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--oliva-testo, #4F6B3A);
}
.rv-card__body h3 { font-size: 19px; }
.rv-card__body h3 a { color: var(--verde); text-decoration: none; }
.rv-card__desc { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--grigio); }
.rv-card__meta {
	display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none;
	margin: 2px 0 0; padding: 0; font-size: 12.5px; color: var(--grigio);
}
.rv-card__foot {
	display: flex; align-items: center; justify-content: space-between;
	gap: 14px; margin-top: auto; padding-top: 14px;
	border-top: 1px solid rgba(38, 56, 47, .1);
}
.rv-card__totale {
	display: block; font-style: normal; font-family: var(--font-body);
	font-size: 12.5px; font-weight: 600; color: var(--verde);
	background: var(--crema); border-radius: 999px;
	padding: 3px 10px; margin-top: 6px; width: fit-content;
}

/* 5 · TARIFFE E INCLUSO -------------------------------------------------- */
.rv-tariffe__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; }
.rv-tariffe__lista { list-style: none; margin: 26px 0 0; padding: 0; border-top: 1px solid rgba(38, 56, 47, .16); }
.rv-tariffe__lista li {
	display: flex; align-items: baseline; justify-content: space-between; gap: 20px;
	padding: 15px 0; border-bottom: 1px solid rgba(38, 56, 47, .16); font-size: 16px;
}
.rv-tariffe__lista strong { font-family: var(--font-title); font-size: 17px; color: var(--verde); white-space: nowrap; }
.rv-tariffe__nota { margin: 18px 0 0; font-size: 13.5px; line-height: 1.65; color: var(--grigio); }
.rv-incluso { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-content: start; }
.rv-incluso h3 { font-size: 18px; color: var(--verde); margin-bottom: 14px; }
.rv-check { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rv-check li { position: relative; padding-left: 24px; font-size: 15px; line-height: 1.55; color: #3A4A41; }
.rv-check li::before {
	content: "\2713"; position: absolute; left: 0; top: 0;
	color: var(--oliva-testo, #4F6B3A); font-weight: 700;
}
.rv-check--no li::before { content: "\2717"; color: #A0342A; }

/* 6 · CONSEGNA IN HOTEL -------------------------------------------------- */
.rv-consegna__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: center; }
.rv-consegna__ph { margin: 0; border-radius: 12px; overflow: hidden; background: var(--crema); }
.rv-consegna__ph img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.rv-zone {
	list-style: none; margin: 24px 0 0; padding: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px 26px;
}
.rv-zone li { font-size: 13.5px; color: var(--grigio); }
.rv-zone span { display: block; font-family: var(--font-title); font-size: 15.5px; font-weight: 700; color: var(--verde); }
.rv-consegna__nota { margin: 20px 0 24px; font-size: 13.5px; line-height: 1.65; color: var(--grigio); }

/* 7 · FAQ ---------------------------------------------------------------- */
.rv-faq__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.rv-faq__item { border-bottom: 1px solid rgba(38, 56, 47, .14); padding: 16px 0; }
.rv-faq__item summary {
	display: flex; align-items: baseline; justify-content: space-between; gap: 18px;
	cursor: pointer; list-style: none;
	font-family: var(--font-title); font-size: 16px; font-weight: 700; color: var(--verde);
}
.rv-faq__item summary::-webkit-details-marker { display: none; }
.rv-faq__item summary::after { content: "+"; color: var(--ocra); font-size: 20px; line-height: 1; }
.rv-faq__item[open] summary::after { content: "\2013"; }
.rv-faq__item p { margin: 12px 0 4px; font-size: 15px; line-height: 1.7; color: #3A4A41; max-width: 56ch; }

/* 8 · CTA FINALE --------------------------------------------------------- */
.rv-cta { background: var(--verde); color: var(--bianco); padding: 72px 0; }
.rv-cta__in { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.rv-cta__in p { margin: 14px 0 0; font-size: 16px; color: rgba(255, 255, 255, .85); }
.rv-cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }

/* Adattamenti ------------------------------------------------------------ */
@media (max-width: 1100px) {
	.rv-band { padding: 72px 0; }
	.rv-hero { grid-template-columns: 1fr; }
	.rv-hero__testo { padding: 64px 24px 48px; }
	.rv-hero__media { min-height: 320px; }
	.rv-grid { grid-template-columns: repeat(2, 1fr); }
	.rv-steps__list { grid-template-columns: 1fr 1fr; }
	.rv-tariffe__grid, .rv-consegna__grid { grid-template-columns: 1fr; gap: 40px; }
	.rv-consegna__ph img { aspect-ratio: 16 / 10; }
	.rv-faq__grid { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 700px) {
	.rv-band { padding: 56px 0; }
	.rv-hero__testo { padding: 48px 20px 40px; }
	.rv-hero__media { min-height: 260px; }
	.rv-grid { grid-template-columns: 1fr; }
	.rv-steps__list { grid-template-columns: 1fr; gap: 20px; }
	.rv-incluso { grid-template-columns: 1fr; gap: 24px; }
	.rv-zone { grid-template-columns: 1fr; gap: 12px; }
	.rv-cta { padding: 56px 0; }
	.rv-cta__btns { width: 100%; }
	.rv-cta__btns .v2-btn { flex: 1; }
}
/* ==========================================================================
   Catalogo bici — "catalogo di biciclette di lusso"
   Prodotto scontornato su fondo pulito, nessuno sfondo finto, nessuna ombra
   sulla bici; respiro e ombra leggerissima sulla card; CTA a bordo sottile.
   ========================================================================== */

/* Media: solo la bici, su crema, con molto respiro */
.rv-card__media {
	background: var(--crema);
}
.rv-card__bg { display: none !important; }
.rv-card__media::after { display: none !important; }
.rv-card__media img {
	padding: 22px 16px;
	filter: none;
	transition: transform .8s cubic-bezier(.22, 1, .36, 1);
}
.rv-card:hover .rv-card__media img { transform: scale(1.025); }

/* Card: stacco dallo sfondo con un'ombra appena percettibile */
.rv-card {
	border: 1px solid rgba(38, 56, 47, .07);
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(24, 27, 23, .04), 0 18px 36px -26px rgba(24, 27, 23, .22);
	transition: box-shadow .35s ease, transform .35s ease;
}
.rv-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 2px 4px rgba(24, 27, 23, .05), 0 28px 52px -30px rgba(24, 27, 23, .28);
}
.rv-card__body { padding: 24px 24px 26px; gap: 10px; }
.rv-card__desc { font-size: 15px; line-height: 1.65; }
.rv-card__foot { padding-top: 18px; margin-top: 6px; }

/* Griglia: un filo più d'aria tra le card */
.rv-grid { gap: 28px; }

/* CTA della card: bordo sottile, maiuscoletto, freccia */
.rv-btn-line {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 16px;
	border: 1px solid rgba(38, 56, 47, .32);
	border-radius: 4px;
	background: transparent;
	color: var(--verde);
	font-family: var(--font-body);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.rv-btn-line::after {
	content: "\2192";
	font-size: 14px;
	line-height: 1;
	transition: transform .25s ease;
}
.rv-btn-line:hover {
	background: var(--verde);
	border-color: var(--verde);
	color: var(--bianco);
}
.rv-btn-line:hover::after { transform: translateX(3px); }

/* Prezzo: più presenza, unità piccola */
.rv-card__foot .v2-prezzo { font-size: 22px; letter-spacing: -0.3px; }
.rv-card__foot .v2-prezzo small { font-size: 12.5px; }

@media (max-width: 700px) {
	.rv-card__media img { padding: 20px 14px; }
	.rv-btn-line { width: 100%; justify-content: center; }
}
/* Bici un filo più presenti nel riquadro, e piè di card impilato su telefono */
.rv-card__media img { padding: 22px 16px; }
@media (max-width: 700px) {
	.rv-card__foot { flex-direction: column; align-items: stretch; gap: 12px; }
	.rv-card__foot .v2-prezzo { order: 1; }
	.rv-card__foot .rv-btn-line { order: 2; }
}
/* L'hero ora è generato con wp_get_attachment_image: stesso trattamento */
.rv-hero__media .rv-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* ==========================================================================
   Bottoni WooCommerce: niente viola di default (#a46497).
   Verde scuro per il percorso d'acquisto (carrello → pagamento),
   ocra per l'aggiunta al carrello. Palette invariata.
   ========================================================================== */

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button,
.woocommerce form .form-row input.button,
.woocommerce-cart table.cart td.actions .button,
.woocommerce .return-to-shop a.button {
	background-color: #26382F;
	color: #FFFFFF;
	border: 1px solid #26382F;
	border-radius: 6px;
	font-family: 'Inter', system-ui, sans-serif;
	font-weight: 600;
	text-transform: none;
	padding: 13px 24px;
	line-height: 1.3;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #payment #place_order:hover,
.woocommerce-page #payment #place_order:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart table.cart td.actions .button:hover,
.woocommerce .return-to-shop a.button:hover {
	background-color: #3F5F46;
	border-color: #3F5F46;
	color: #FFFFFF;
}

/* Aggiunta al carrello e "Prenota ora": ocra con testo scuro */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce a.add_to_cart_button,
.woocommerce button.add_to_cart_button,
.woocommerce ul.products li.product .button {
	background-color: #E0A63B;
	border-color: #E0A63B;
	color: #181B17;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce a.add_to_cart_button:hover,
.woocommerce button.add_to_cart_button:hover,
.woocommerce ul.products li.product .button:hover {
	background-color: #c9902c;
	border-color: #c9902c;
	color: #181B17;
}

/* Azioni secondarie del carrello: solo contorno */
.woocommerce-cart table.cart td.actions .button[name="update_cart"],
.woocommerce-cart table.cart td.actions .button[name="apply_coupon"] {
	background-color: transparent;
	border-color: rgba(38, 56, 47, .35);
	color: #26382F;
}

.woocommerce-cart table.cart td.actions .button[name="update_cart"]:hover,
.woocommerce-cart table.cart td.actions .button[name="apply_coupon"]:hover {
	background-color: #26382F;
	color: #FFFFFF;
}

/* Bottoni disabilitati */
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce a.button.disabled {
	background-color: #E7E4DC !important;
	border-color: #E7E4DC !important;
	color: #6B6B6B !important;
}

/* ==========================================================================
   Modulo di prenotazione ERP Bike Rental — veste grafica del tema
   Le regole qui sotto intervengono SOLO su colori, bordi, raggi e spaziature.
   Non toccano nomi dei campi, attributi, testi, logica di calcolo o script:
   date, orari, punti di ritiro, consegna e accessori restano quelli del plugin.
   ========================================================================== */

/* Contenitore del modulo: avorio con bordo crema */
.ebike-product .erp-rental-form {
	background: var(--avorio);
	border: 1px solid #E6DCCB;
	border-radius: 8px;
	padding: 20px 20px 18px;
	margin: 22px 0 18px;
}

/* Campi: bordo crema, raggio 6px, fondo bianco, focus ocra */
.ebike-product .erp-rental-form input[type="date"],
.ebike-product .erp-rental-form input[type="text"],
.ebike-product .erp-rental-form input[type="number"],
.ebike-product .erp-rental-form select,
.ebike-product .quantity input.qty {
	max-width: 100%;
	border: 1px solid #E0DED5;
	border-radius: 6px;
	background: var(--bianco);
	color: var(--testo);
}
.ebike-product .erp-rental-form input[type="date"]:focus,
.ebike-product .erp-rental-form input[type="text"]:focus,
.ebike-product .erp-rental-form select:focus,
.ebike-product .quantity input.qty:focus {
	border-color: var(--ocra);
	box-shadow: 0 0 0 3px rgba(224, 166, 59, .18);
	outline: none;
}

/* Etichette: piccole, maiuscole, verde. Escluse le schede ritiro/consegna,
   che restano testo normale perché contengono il radio e la descrizione. */
.ebike-product .erp-rental-form label:not(.erp-pickup-choice):not(.erp-delivery-choice) {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--verde);
}

/* Cancellazione gratuita + tooltip "?" */
.ebike-product .erp-rental-form .erp-policy-inline {
	color: var(--grigio);
	font-size: 12.5px;
}
.ebike-product .erp-rental-form .erp-policy-tip-button {
	border-color: var(--ocra) !important;
	background: var(--bianco) !important;
	color: var(--verde) !important;
	font-weight: 700 !important;
}
.ebike-product .erp-rental-form .erp-policy-tip-button:focus-visible {
	outline: 3px solid var(--ocra);
	outline-offset: 2px;
}
.ebike-product .erp-rental-form .erp-policy-popover {
	background: var(--bianco);
	border: 1px solid #E6DCCB;
	border-radius: 8px;
	color: var(--testo);
	box-shadow: 0 14px 34px rgba(38, 56, 47, .16);
}
.ebike-product .erp-rental-form .erp-policy-popover strong {
	color: var(--verde);
	font-family: var(--font-title);
	font-size: 13px;
	letter-spacing: .02em;
}

/* Ritiro / consegna: schede con radio verdi */
.ebike-product .erp-rental-form .erp-pickup-choice,
.ebike-product .erp-rental-form .erp-delivery-choice {
	border: 1px solid #E6DCCB;
	border-radius: 8px;
	background: var(--bianco);
	color: var(--testo);
	text-transform: none;
	letter-spacing: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
}
.ebike-product .erp-rental-form .erp-pickup-choice:hover,
.ebike-product .erp-rental-form .erp-delivery-choice:hover {
	border-color: var(--oliva);
}
.ebike-product .erp-rental-form .erp-pickup-choice:has(input:checked),
.ebike-product .erp-rental-form .erp-delivery-choice:has(input:checked) {
	border-color: var(--verde);
	background: rgba(38, 56, 47, .045);
}
.ebike-product .erp-rental-form .erp-delivery-fieldset > label input[type="radio"] {
	accent-color: var(--verde);
	cursor: pointer;
}

/* Orari di ritiro e riconsegna */
.ebike-product .erp-rental-form .erp-full-hours {
	background: var(--bianco);
	border: 1px solid #E6DCCB;
	border-radius: 8px;
	padding: 14px 14px 12px;
}
.ebike-product .erp-rental-form .erp-hours-heading {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--verde);
	margin-bottom: 12px;
}

/* Note e messaggi del plugin */
.ebike-product .erp-rental-form .erp-rental-note,
.ebike-product .erp-rental-form .erp-hours-help,
.ebike-product .erp-rental-form .erp-half-info,
.ebike-product .erp-rental-form .erp-delivery-location small {
	color: var(--grigio);
}
.ebike-product .erp-rental-form .erp-rental-note {
	border-top: 1px solid #EFE9DC;
}
/* La nota "Quantità: usa il campo quantità di WooCommerce" è un promemoria
   per lo sviluppatore, non un'informazione per il cliente: la nascondiamo.
   Il campo quantità resta visibile e funzionante. */
.ebike-product .erp-rental-form .erp-rental-note {
	display: none;
}
.ebike-product .erp-rental-form .erp-delivery-price {
	color: var(--verde);
	font-weight: 700;
}
.ebike-product .erp-rental-form .erp-pickup-map-link {
	color: var(--verde);
	text-decoration-color: var(--ocra);
	text-underline-offset: 3px;
}
.ebike-product .erp-rental-form .erp-pickup-map-link:hover {
	color: var(--verde-hover);
}
.ebike-product .erp-rental-form .erp-slot-blocked-help {
	background: var(--crema);
	border-left: 3px solid var(--ocra);
	border-radius: 0 6px 6px 0;
	color: var(--testo);
}
.ebike-product .erp-rental-form .erp-time-availability.erp-slot-error {
	color: #A22B1C;
	font-weight: 600;
}

/* Accessori opzionali del plugin */
.ebike-product .erp-accessory-options {
	background: var(--bianco);
	border: 1px solid #E6DCCB;
	border-radius: 8px;
	color: var(--testo);
}
.ebike-product .erp-accessory-options legend {
	color: var(--verde);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ebike-product .erp-accessory-intro,
.ebike-product .erp-accessory-hint,
.ebike-product .erp-accessory-row small {
	color: var(--grigio);
}
.ebike-product .erp-accessory-row {
	border-top: 1px solid #EFE9DC;
}
.ebike-product .erp-accessory-row label {
	text-transform: none;
	letter-spacing: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--testo);
}
.ebike-product .erp-accessory-row input[type="number"] {
	border: 1px solid #E0DED5;
	border-radius: 6px;
}
.ebike-product .erp-accessory-summary {
	color: var(--verde);
}

/* Riga finale: quantità compatta + pulsante che occupa lo spazio restante */
.ebike-product form.cart:has(> .erp-rental-form) {
	gap: 12px;
}
.ebike-product form.cart:has(> .erp-rental-form) > .quantity {
	flex: 0 0 88px !important;
}
.ebike-product form.cart:has(> .erp-rental-form) > button.single_add_to_cart_button {
	flex: 1 1 auto !important;
	border-radius: 6px !important;
	font-size: 16px !important;
	min-height: 48px !important;
}

@media (max-width: 640px) {
	.ebike-product .erp-rental-form {
		padding: 16px 14px 14px;
	}
	.ebike-product .erp-rental-form .erp-full-hours {
		padding: 12px;
	}
	.ebike-product form.cart:has(> .erp-rental-form) > .quantity {
		flex: 0 0 76px !important;
	}
	/* Pulsante "?" delle condizioni: area di tocco più comoda sul telefono */
	.ebike-product .erp-rental-form .erp-policy-tip-button {
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		min-height: 28px !important;
	}
}

/* ==========================================================================
   RIFINITURE DI LAYOUT (solo tema)
   1) ricerca in home su telefono  2) carrello
   4) destinazioni cliccabili      5) breadcrumb       6) accessori
   7) esperienze della pagina Vacanze
   ========================================================================== */

/* --- 1 · Ricerca in home: date leggibili su telefono -------------------- */
@media (max-width: 720px) {
	.v2-booking__form .v2-group[data-service] {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 12px;
	}
	.v2-booking__form .v2-field { min-width: 0; }
	.v2-booking__form .v2-field label { font-size: 11px; }
	.v2-booking__form .v2-field select,
	.v2-booking__form .v2-field input {
		width: 100%;
		min-width: 0;
		min-height: 50px;
		padding: 0 12px;
		font-size: 16px; /* evita lo zoom automatico su iOS */
	}
	.v2-booking__form .v2-field input[type="date"] { min-height: 50px; }
}

@media (max-width: 430px) {
	/* Sotto i 430px le due date affiancate si schiacciano: una per riga. */
	.v2-booking__form .v2-group[data-service] {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.v2-booking__form .v2-group[data-service="rental"] .v2-field:first-child { grid-column: auto; }
}

/* --- Tour senza orari: niente form, messaggio e contatto ---------------- */
.td-form--senza-orari {
	display: block;
	background: #FFFAF0;
	border: 1px solid #E6DCCB;
	border-radius: 10px;
	padding: 20px 18px;
}
.td-form--senza-orari .erp-orari-mancanti {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.6;
	color: #181B17;
}
.td-form--senza-orari .erp-orari-mancanti strong {
	display: block;
	margin-bottom: 6px;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	color: #26382F;
}
.td-form--senza-orari .td-form__cta {
	display: inline-block;
}

/* --- Esperienze con i partner locali (pagina Tour) --------------------- */
.erp-esperienze-tour {
	padding: 72px 0;
	background: #FFFFFF;
	border-top: 1px solid rgba(38, 56, 47, .08);
}
.erp-esperienze-tour__head {
	max-width: 720px;
	margin: 0 auto 30px;
	text-align: center;
}
.erp-esperienze-tour__head h2 {
	margin: 8px 0 12px;
	font-family: Montserrat, sans-serif;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	color: #26382F;
}
.erp-esperienze-tour__head p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: #5A5A5A;
}
.erp-esperienze-tour .eb-esperienze__cta { margin-top: 30px; }

@media (max-width: 900px) {
	.erp-esperienze-tour { padding: 48px 0; }
	.erp-esperienze-tour__head h2 { font-size: 26px; }
	.erp-esperienze-tour__head p { font-size: 15px; }
}

/* --- 3 · Carrello ------------------------------------------------------ */
/* Codice promozionale: campo largo abbastanza, niente testo tagliato. */
.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 10px;
	float: none;
}
.woocommerce-cart table.cart td.actions .coupon #coupon_code {
	width: 240px;
	min-width: 200px;
	height: 50px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid #E0DED5;
	border-radius: 6px;
	background: #FFFFFF;
	font-family: inherit;
	font-size: 15px;
	color: #181B17;
}
.woocommerce-cart table.cart td.actions .coupon #coupon_code:focus {
	border-color: #E0A63B;
	box-shadow: 0 0 0 3px rgba(224, 166, 59, .18);
	outline: none;
}
.woocommerce-cart table.cart td.actions .coupon button[name="apply_coupon"] {
	width: auto;
	flex: 0 0 auto;
	padding: 0 22px;
	height: 50px;
	white-space: nowrap;
}

/* "Aggiorna carrello": sempre cliccabile e visibile, mai grigio. */
.woocommerce button.button[name="update_cart"],
.woocommerce button.button[name="update_cart"]:disabled,
.woocommerce button.button[name="update_cart"][disabled] {
	width: auto;
	height: 50px;
	padding: 0 22px;
	background-color: #26382F !important;
	border: 1px solid #26382F !important;
	color: #FFFFFF !important;
	opacity: 1 !important;
	cursor: pointer;
	white-space: nowrap;
}
.woocommerce button.button[name="update_cart"]:hover {
	background-color: #3F5F46 !important;
	border-color: #3F5F46 !important;
}

/* Tabelle: bordi più morbidi, stile contemporaneo. */
.woocommerce table.shop_table,
.woocommerce-cart table.cart {
	border: 1px solid rgba(38, 56, 47, .10) !important;
	border-radius: 10px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td {
	border-top: 1px solid rgba(38, 56, 47, .07) !important;
	border-bottom: 0 !important;
}
.woocommerce table.shop_table thead th,
.woocommerce-cart table.cart thead th {
	border-top: 0 !important;
}

/* "è stato aggiunto al tuo carrello": pulsante proporzionato. */
.woocommerce-message,
.woocommerce-info {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.woocommerce-message a.button,
.woocommerce-info a.button {
	width: auto;
	flex: 0 0 auto;
	min-height: 0;
	margin: 0;
	padding: 8px 16px !important;
	font-size: 14px !important;
	line-height: 1.3;
}

/* "Procedi con l'ordine" non deve finire sotto al pulsante flottante. */
.woocommerce-cart .cart_totals {
	margin-bottom: 96px;
}
/* Lo spazio a destra tiene libero l'angolo dove sta il carrello laterale. */
.woocommerce-cart .wc-proceed-to-checkout {
	padding-right: 64px;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	margin-bottom: 0;
}
@media (min-width: 720px) {
	.woocommerce-cart .wc-proceed-to-checkout { padding-right: 78px; }
}
/* Pulsante flottante del carrello laterale: un po' più discreto. */
.xoo-wsc-basket {
	transform: scale(.78);
	transform-origin: bottom right;
}
/* In home, su telefono, il pulsante flottante finirebbe sopra al "Cerca"
   della scheda di ricerca: lì lo nascondiamo (resta in tutte le altre pagine). */
@media (max-width: 720px) {
	body.home .xoo-wsc-basket {
		display: none !important;
	}
}

/* Quantità dei tour: solo il numero, senza campo modificabile. */
.eb-qta-tour {
	display: inline-block;
	font-weight: 600;
	color: #181B17;
}

/* --- 4 · Destinazioni cliccabili in home -------------------------------- */
.v2-territori li a {
	display: block;
	text-decoration: none;
	color: var(--grigio);
	transition: color .2s ease;
}
.v2-territori li a:hover,
.v2-territori li a:focus-visible {
	color: var(--verde);
}
.v2-territori li a:hover span {
	text-decoration: underline;
	text-decoration-color: var(--ocra);
	text-underline-offset: 4px;
}

/* --- 5 · Briciole di pane ---------------------------------------------- */
.eb-briciole {
	background: #FFFFFF;
	border-bottom: 1px solid rgba(38, 56, 47, .08);
}
.eb-briciole__in {
	max-width: 1200px;
	margin: 0 auto;
	padding: 11px 24px;
}
.eb-briciole__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 13px;
	line-height: 1.4;
	color: #5A5A5A;
}
.eb-briciole__lista a {
	color: #5A5A5A;
	text-decoration: none;
}
.eb-briciole__lista a:hover,
.eb-briciole__lista a:focus-visible {
	color: #26382F;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.eb-briciole__sep { color: rgba(38, 56, 47, .35); }
.eb-briciole__lista [aria-current="page"] { color: #26382F; font-weight: 600; }

@media (max-width: 640px) {
	.eb-briciole__in { padding: 10px 18px; }
	.eb-briciole__lista { font-size: 12px; gap: 6px; }
}

/* --- 6 · Accessori nella scheda prodotto -------------------------------- */
.ebike-product .eb-accessori-rapidi {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid #ECEDE8;
}
.ebike-product .eb-accessori-rapidi__titolo {
	margin: 0 0 10px;
	font-family: var(--font-title);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--verde);
}
.ebike-product .eb-accessori-rapidi__lista {
	display: grid;
	gap: 8px;
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
}
.ebike-product .eb-accessori-rapidi__lista li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	font-size: 14px;
	color: var(--testo);
}
.ebike-product .eb-accessori-rapidi__prezzo {
	color: var(--verde);
	font-weight: 700;
	white-space: nowrap;
}
.ebike-product .eb-accessori-rapidi__prezzo small {
	color: var(--grigio);
	font-weight: 500;
}
.ebike-product .eb-accessori-rapidi__nota {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--grigio);
}

/* --- 7 · Esperienze della pagina Vacanze -------------------------------- */
.eb-esperienze {
	max-width: 1152px;
	margin: 0 auto;
}
.eb-esperienze__intro {
	max-width: 720px;
	margin: 0 auto 26px;
	text-align: center;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #5A5A5A;
}
.eb-esperienze__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.eb-esperienze__card {
	padding: 24px 22px;
	background: #FFFFFF;
	border: 1px solid #E6DCCB;
	border-radius: 12px;
}
.eb-esperienze__durata {
	display: inline-block;
	margin-bottom: 10px;
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #4F6B3A;
}
.eb-esperienze__titolo {
	margin: 0 0 10px;
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	color: #26382F;
}
.eb-esperienze__testo {
	margin: 0;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: #5A5A5A;
}
.eb-esperienze__cta {
	margin: 28px 0 0;
	text-align: center;
}

@media (max-width: 900px) {
	.eb-esperienze__grid { grid-template-columns: 1fr; gap: 14px; }
	.eb-esperienze__intro { font-size: 15px; }
}

/* --- Note delle ricerche (date conservate) ------------------------------ */
.rv-nota-date,
.tour-nota-ricerca {
	max-width: 1160px;
	margin: 0 auto 22px;
	padding: 12px 16px;
	background: #FFFAF0;
	border-left: 3px solid #E0A63B;
	border-radius: 0 8px 8px 0;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #181B17;
}

/* Doppia modalità Acquisto / Preventivo: form richiesta preventivo (tour). */
.erp-tour-detail .erp-quote-form { display: grid; gap: 14px; }
.erp-tour-detail .erp-quote-form__title { margin: 0; font-size: 18px; font-weight: 700; color: var(--verde); }
.erp-tour-detail .erp-quote-form__intro { margin: 0; font-size: 14px; line-height: 1.55; color: var(--grigio); }
.erp-tour-detail .erp-quote-form__form { display: grid; gap: 14px; }
.erp-tour-detail .erp-quote-form__form p { margin: 0; display: grid; gap: 6px; }
.erp-tour-detail .erp-quote-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--verde); }
.erp-tour-detail .erp-quote-form input,
.erp-tour-detail .erp-quote-form textarea {
	width: 100%;
	padding: 12px;
	border: 1px solid #CCCCCC;
	border-radius: 6px;
	background: var(--bianco);
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--testo);
	box-sizing: border-box;
}
.erp-tour-detail .erp-quote-form input:focus,
.erp-tour-detail .erp-quote-form textarea:focus { border-color: var(--ocra); outline: none; }
.erp-tour-detail .erp-quote-form textarea { min-height: 96px; resize: vertical; }
.erp-tour-detail .erp-quote-form button[type="submit"] { width: 100%; height: 52px; }
.erp-tour-detail .erp-quote-form .erp-quote-notice { padding: 12px 14px; border-radius: 6px; margin: 0; font-size: 14px; font-weight: 600; background: #e8f5e9; color: #1b5e20; }
.erp-tour-detail .erp-quote-form .erp-quote-hp { position: absolute !important; left: -9999px !important; }
.erp-tour-detail .erp-quote-form__privacy { font-size: 12px; line-height: 1.5; color: var(--grigio); }


