
/* === Catamaran Booking: CSS variables (styling) === */
.catamaran-table-wrapper{
  --cb-font: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --cb-table-bg: #ffffff;
  --cb-border: #e5e7eb;
  --cb-th-bg: #f8fafc;
  --cb-th-color: #0f172a;
  --cb-td-color: #0f172a;
  --cb-old-color: rgba(0,0,0,.7);
  --cb-new-color: #111827;
  --cb-btn-bg: #10a37f;
  --cb-btn-color: #ffffff;

  /* Tipografia responsiva (scala fluida) */
  --cb-type-base:  clamp(14px, 1.8vw, 16px);
  --cb-type-small: clamp(12px, 1.5vw, 14px);
  --cb-type-large: clamp(15px, 2.2vw, 18px);
}

/* Tabella tariffe catamarano (base) */
.catamaran-table-wrapper{ width:100%; margin:1rem auto; }
.catamaran-schedule{
  width:100%;
  border-collapse:collapse;
  background:var(--cb-table-bg);
  font-family:var(--cb-font);
  font-size: var(--cb-type-base);
  line-height: 1.35;
}
.catamaran-schedule th{
  background:var(--cb-th-bg);
  color:var(--cb-th-color);
  font-size: var(--cb-type-small);
  line-height: 1.25;
  font-weight:600;
}
.catamaran-schedule th,
.catamaran-schedule td{
  padding:.75rem;
  border:1px solid var(--cb-border);
  color:var(--cb-td-color);
  text-align:left;
  vertical-align:top;
}
.catamaran-schedule td{
  font-size: var(--cb-type-base);
}

/* Prezzi */
.catamaran-schedule .old-price{
  color: var(--cb-old-color);
  opacity:.7;
  text-decoration:line-through;
  font-size: calc(var(--cb-type-base) * 0.9);
}
.catamaran-schedule .new-price{
  color: var(--cb-new-color);
  font-weight:700;
  font-size: var(--cb-type-large);
}

/* Pulsante / link azione */
.catamaran-schedule .quote-button{
  background: var(--cb-btn-bg);
  color: var(--cb-btn-color);
  font-size: var(--cb-type-base);
  padding: .5rem .75rem;
  display: inline-block;
  text-decoration: none;
}
.catamaran-schedule .quote-button:hover{ opacity:.9; }

/* Toggle */
.catamaran-toggle{
  display:block; margin:.75rem 0 0 auto; padding:.5rem 1rem;
  border:none; border-radius:.5rem;
  background: var(--cb-btn-bg); color: var(--cb-btn-color);
  cursor:pointer
}
.catamaran-toggle:hover{opacity:.9}

/* Sold out */
.sold-out{opacity:.8}

/* =========================
   Responsive
   ========================= */
@media (max-width: 767px){

  /* Wrapper full-bleed e centratura degli inline */
  .catamaran-table-wrapper{
    /* allarga oltre il padding del contenitore tema/Elementor */
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
    text-align: center; /* NECESSARIO per centrare l'inline-table */
  }

  /* Tabella centrata realmente */
  .catamaran-table-wrapper .catamaran-schedule{
    /* trasformo la tabella in inline-table così si centra col text-align del wrapper */
    display: inline-table;
    width: auto;          /* evita width:100% imposta dal desktop */
    max-width: 92vw;      /* piccolo respiro ai lati */
    margin: 0 auto;       /* ridondante ma innocuo */
    float: none;
    text-align: left;     /* il contenuto interno resta allineato a sinistra */
  }

  /* Riduzione padding celle su mobile */
  .catamaran-schedule th,
  .catamaran-schedule td{ padding:.5rem .6rem; }

  /* Colonna prezzo: allineo a destra e impedisco il capo tra importo e € */
  .catamaran-schedule th:nth-child(4),
  .catamaran-schedule td:nth-child(4){
    text-align: right;
    white-space: nowrap;
    width: 1%;
  }
  .catamaran-schedule .new-price,
  .catamaran-schedule .old-price{
    white-space: nowrap;
    display: inline-block;
  }
}

/* Raffinamento schermi molto piccoli */
@media (max-width: 480px){
  .catamaran-table-wrapper{
    --cb-type-base:  14px;
    --cb-type-small: 12px;
    --cb-type-large: 16px;
  }
}

/* (Opzionale) se il tema forza padding sulle colonne Elementor, sblocca il wrapper su mobile */
/*
@media (max-width: 767px){
  .elementor .catamaran-table-wrapper{ padding-left:0 !important; padding-right:0 !important; }
}
*/

/* --- Forza centratura su smartphone, ignorando padding del contenitore --- */
@media (max-width: 767px){
  /* Allinea il wrapper al centro del viewport */
  .catamaran-table-wrapper{
    position: relative !important;
    width: 100vw !important;             /* larghezza esattamente come lo schermo */
    left: 50% !important;
    transform: translateX(-50%) !important;  /* centra rispetto al viewport */
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center;                   /* per gestire elementi inline/inline-table */
  }

  /* La tabella diventa “intrinseca” e si centra davvero */
  .catamaran-table-wrapper .catamaran-schedule{
    display: inline-table !important;     /* centrabile con text-align del wrapper */
    width: max-content !important;        /* si adatta al contenuto */
    max-width: 92vw !important;           /* respiro ai lati */
    margin: 0 auto !important;
    float: none !important;
    text-align: left !important;          /* contenuti allineati a sinistra */
  }
}

/* === Centrare la tabella Catamaran dentro Elementor su smartphone === */
@media (max-width: 767px){

  /* 1) Neutralizza i padding/margini tipici dei contenitori Elementor (struttura "classica") */
  .elementor .elementor-widget-shortcode .elementor-widget-container{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .elementor .elementor-widget-shortcode .elementor-shortcode{
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 2) Supporto per il NUOVO sistema Container di Elementor (.e-con) */
  .elementor .e-con .elementor-widget-container{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Se lo shortcode è dentro un Container puro, annulla anche gap/padding inline */
  .elementor .e-con{
    --container-default-padding-left: 0 !important;
    --container-default-padding-right: 0 !important;
    --e-container-widget-spacing: 0px !important;
  }

  /* 3) Centra il wrapper rispetto al VIEWPORT (ignora i padding del genitore Elementor) */
  .elementor .elementor-widget-shortcode .elementor-shortcode .catamaran-table-wrapper,
  .elementor .e-con .catamaran-table-wrapper{
    position: relative !important;
    width: 100vw !important;                 /* larghezza esatta dello schermo */
    left: 50% !important;
    transform: translateX(-50%) !important;  /* centro rispetto al viewport */
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;           /* per centrare l'inline-table */
  }

  /* 4) La tabella si centra realmente e non si allarga a 100% */
  .elementor .elementor-widget-shortcode .elementor-shortcode .catamaran-table-wrapper .catamaran-schedule,
  .elementor .e-con .catamaran-table-wrapper .catamaran-schedule{
    display: inline-table !important;        /* centrabile con text-align del wrapper */
    width: auto !important;                  /* evita width:100% che la inchioda a sinistra */
    max-width: 92vw !important;              /* leggero respiro ai lati */
    margin: 0 auto !important;
    float: none !important;
    text-align: left !important;             /* contenuto allineato a sinistra */
  }
}

/* === Catamaran Booking – centratura mobile dentro Elementor === */
@media (max-width: 767px){

  /* 2.1 Neutralizza padding/margini tipici nel widget Shortcode */
  .elementor .elementor-widget-shortcode .elementor-widget-container{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .elementor .elementor-widget-shortcode .elementor-shortcode{
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 2.2 Neutralizza padding dei nuovi Container (.e-con) se presenti */
  .elementor .e-con{
    --container-default-padding-left: 0 !important;
    --container-default-padding-right: 0 !important;
    --e-container-widget-spacing: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .elementor .e-con .elementor-widget-container{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 2.3 Wrapper della tabella: centrato rispetto al viewport */
  .elementor .elementor-widget-shortcode .elementor-shortcode .catb-center,
  .elementor .e-con .catb-center{
    position: relative !important;
    width: 100vw !important;                 /* allarga al viewport, eludendo padding del genitore */
    left: 50% !important;
    transform: translateX(-50%) !important;  /* centratura rispetto al viewport */
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;           /* per centrare l'inline-table */
  }

  /* 2.4 Tabella: centrata e dimensionata al contenuto */
  .elementor .elementor-widget-shortcode .elementor-shortcode .catb-center .catamaran-schedule,
  .elementor .e-con .catb-center .catamaran-schedule{
    display: inline-table !important;
    width: auto !important;                  /* evita width:100% che la incolla a sinistra */
    max-width: 92vw !important;              /* respiro laterale */
    margin: 0 auto !important;
    float: none !important;
    text-align: left !important;
  }
}



/* Booking period formatting */
.catb-date-nb{white-space:nowrap;display:inline-block}
.catb-period{line-height:1.2}

.catb-price--strike{ text-decoration: line-through; opacity:.7 }

