/* ==========================================================================
   Componenti viaggio condivisi (tour-card, recensioni, preventivo, step, trust)
   Valori copiati dai componenti di home (index.php) e /viaggi-di-nozze
   (vagovia-nozze-home-v4-3.css). Caricare dopo pagine-base.css.
   ========================================================================== */

/* Variabili usate dai componenti (non definite in pagine-base.css) */
:root{
  --primary:#ed278c;
  --primary-soft:#ffb0cb;
  --secondary:#164383;
  --ink-soft:#594048;
  --pink-text:#C71873;
  --surface-soft:#f1f3ff;
  --surface-alt:#e9edff;
  --shadow-soft:0 20px 48px rgba(17,24,39,.06),0 4px 16px rgba(17,24,39,.04);
  --shadow-strong:0 28px 56px rgba(17,24,39,.12),0 8px 24px rgba(17,24,39,.08);
  --dark-grad:linear-gradient(135deg,#0f1822 0%,#1a1f2e 100%);
}

/* ---- Card tour (home "I viaggi che consigliamo") ---- */
.vv-cards-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
@media(min-width:768px){.vv-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:768px) and (max-width:1099px){.vv-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.tour-card{position:relative;background:#fff;border-radius:1rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(20,27,43,.06),0 10px 30px rgba(20,27,43,.06);border:1px solid rgba(20,27,43,.06);transition:transform .3s ease,box-shadow .3s ease}
.tour-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,27,43,.13)}
.tc-media{position:relative;height:210px;overflow:hidden;background:#e9edf5}
.tc-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.tour-card:hover .tc-media img{transform:scale(1.05)}
.tc-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.30),transparent 42%)}
.tc-price{position:absolute;right:.75rem;bottom:.75rem;z-index:2;text-align:right;background:#163483;color:#fff;border-radius:.6rem;padding:.45rem .7rem;box-shadow:0 8px 20px rgba(22,52,131,.4)}
.tc-from{display:block;font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;opacity:.72;font-weight:700;line-height:1}
.tc-amount{font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:800;font-size:1.25rem;line-height:1.15;white-space:nowrap}
.tc-per{font-size:.62rem;opacity:.78;font-weight:600}
.tc-badge{position:absolute;top:.75rem;left:.75rem;z-index:2;display:inline-flex;align-items:center;gap:.3rem;background:rgba(20,27,43,.85);backdrop-filter:blur(8px);color:#fff;border-radius:.6rem;padding:.4rem .7rem;font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-size:.72rem;font-weight:800}
.tc-badge .material-symbols-outlined{font-size:.95rem}
.tc-badge-group{position:absolute;top:.75rem;left:.75rem;right:.75rem;z-index:2;display:flex;gap:.4rem;flex-wrap:wrap}
.tc-badge-group .tc-badge{position:static}
.tc-body{padding:1.05rem 1.15rem 1.15rem;display:flex;flex-direction:column;flex:1}
.tc-label{font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:700;font-size:.625rem;letter-spacing:.11em;text-transform:uppercase;color:var(--pink-text);margin:0 0 .25rem}
.tc-title{font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:800;font-size:1.15rem;line-height:1.2;color:#163483;margin:0 0 .4rem}
.tc-title-link{color:inherit;text-decoration:none}
.tc-title-link::after{content:"";position:absolute;inset:0;z-index:1}
.tc-title-link:hover{color:var(--pink-text)}
.tc-title-link:focus-visible{outline:2px solid #ED278C;outline-offset:3px;border-radius:.25rem}
.tc-desc{font-family:'Inter',sans-serif;font-size:.8125rem;line-height:1.5;color:#6b7280;margin:0 0 .85rem}
.tc-meta{display:flex;flex-wrap:wrap;gap:.3rem .95rem;margin-bottom:.5rem}
.tc-meta span{display:inline-flex;align-items:center;gap:.3rem;font-family:'Inter',sans-serif;font-size:.75rem;color:#4b5563;font-weight:500}
.tc-meta .tc-meta-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:var(--pink-text);flex:0 0 1rem}
.tc-meta .tc-meta-icon svg{width:1rem;height:1rem;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tour-card .material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';-webkit-font-smoothing:antialiased}
.tc-actions{position:relative;z-index:2;display:flex;gap:.5rem;margin-top:auto}
.tc-cta{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:800;font-size:.8125rem;letter-spacing:.02em;text-transform:uppercase;color:#fff;background:#ED278C;border-radius:.6rem;padding:.7rem .85rem;text-decoration:none;transition:background .2s}
.tc-cta:hover{background:#C01070}
.tc-cta-sm{flex:0 0 auto;padding:.55rem .9rem;font-size:.72rem}
.tc-wa{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;flex-shrink:0;background:#1FA855;border-radius:.6rem;color:#fff;text-decoration:none;transition:background .2s}
.tc-wa:hover{background:#178043}
.tc-wa svg{width:20px;height:20px;fill:currentColor}
.tc-cta:focus-visible,.tc-wa:focus-visible{outline:2px solid #163483;outline-offset:2px}

@media(hover:none){
  .tour-card:hover{transform:none}
  .tour-card:hover .tc-media img{transform:none}
  .tc-cta:hover{background:var(--pink-text)}
  .tc-wa:hover{background:#1FA855}
}

/* ---- Recensioni (home "Perché i clienti ci scelgono") ---- */
.vv-google-summary{display:flex;align-items:center;gap:1.25rem;max-width:48rem;margin:0 auto 2rem;padding:1.35rem;background:#fff;border-radius:1.25rem;box-shadow:var(--shadow-soft)}
.vv-google-score{display:flex;flex-direction:column;gap:.3rem;min-width:8.5rem}
.vv-google-score strong{display:inline-flex;align-items:center;gap:.55rem;font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-size:2rem;line-height:1;font-weight:800;color:var(--pink-text)}
.vv-google-divider{width:1px;align-self:stretch;background:rgba(225,189,199,.4)}
.vv-reviews-grid{display:grid;gap:1.15rem;grid-template-columns:1fr}
@media(min-width:768px){.vv-reviews-grid{grid-template-columns:repeat(3,1fr)}}
.vv-review-card{background:#fff;border-radius:1.2rem;box-shadow:var(--shadow-soft);padding:1.5rem;display:flex;flex-direction:column}
.vv-review-card h3{margin:0 0 .55rem;font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:800;color:var(--ink,#141b2b);letter-spacing:-.01em}
.vv-review-stars{color:var(--pink-text);font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-weight:800;letter-spacing:.08em;font-size:.92rem;margin-bottom:.9rem}
.vv-review-card blockquote{margin:0 0 1.25rem;font-size:.93rem;line-height:1.75;font-style:italic;color:var(--ink-soft)}
.vv-review-author{display:flex;align-items:center;gap:.75rem;margin-top:auto}
.vv-review-avatar{width:2.5rem;height:2.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--secondary);color:#fff;font-family:'Plus Jakarta Sans','PJS Fallback',Arial,sans-serif;font-size:.76rem;font-weight:800;flex:0 0 auto}
@media(max-width:767px){.vv-google-divider{display:none}}

/* ---- Step card (nozze "Come creiamo il vostro viaggio di nozze") ---- */
.step-cards{display:flex;flex-direction:column;align-items:stretch;gap:1rem}
@media(min-width:768px){.step-cards{flex-direction:row;gap:.75rem}}
.step-card{flex:1 1 0;border-radius:1rem;border:1px solid rgba(20,27,43,.05);background:#fff;padding:1.5rem;box-shadow:0 1px 2px rgba(17,24,39,.04);transition:transform .2s ease,box-shadow .2s ease}
.step-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(17,24,39,.08)}
.step-num,.step-icon{display:flex;width:3rem;height:3rem;align-items:center;justify-content:center;border-radius:9999px;background:#ED278C;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:.875rem;font-weight:800;box-shadow:0 10px 15px -3px rgba(237,39,140,.4)}
.step-icon .material-symbols-outlined{font-size:1.375rem}
.step-card h3{margin:1.25rem 0 .5rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:1.125rem;font-weight:800;color:#141b2b}
.step-card p{margin:0;font-size:1rem;line-height:1.6;color:#535d6b}
.step-arrow{display:flex;flex-shrink:0;align-items:center;justify-content:center;color:#ED278C}
.step-arrow .material-symbols-outlined{font-size:1.875rem;transform:rotate(90deg)}
@media(min-width:768px){.step-arrow .material-symbols-outlined{transform:none}}

/* ---- Sezione scura + trust points (nozze "Perché scegliere Vagovia") ---- */
.nozze-eyebrow{font-family:'Plus Jakarta Sans',sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c01070;margin-bottom:.625rem;display:block}
.trust-section{background:linear-gradient(135deg,#0f1822 0%,#1a1f2e 100%);color:#fff;padding:4rem 1.25rem;position:relative;overflow:hidden}
@media(min-width:768px){.trust-section{padding:6rem 2rem}}
.trust-section::before{content:"";position:absolute;top:-30%;left:-10%;width:50%;height:80%;background:radial-gradient(ellipse,rgba(237,39,140,.18) 0%,transparent 65%);pointer-events:none}
.trust-section::after{content:"";position:absolute;bottom:-30%;right:-10%;width:50%;height:80%;background:radial-gradient(ellipse,rgba(22,67,131,.32) 0%,transparent 65%);pointer-events:none}
.trust-inner{position:relative;z-index:2;max-width:80rem;margin:0 auto}
.trust-inner .nozze-eyebrow,.preventivo-head .nozze-eyebrow{color:#ffb0cb}
.trust-h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(1.75rem,4.5vw,2.75rem);line-height:1.12;color:#fff;margin:0 0 1rem;letter-spacing:-.015em}
.trust-lead{font-family:'Inter',sans-serif;font-size:1.0625rem;line-height:1.7;color:rgba(255,255,255,.85);margin:0}
.trust-points{display:flex;flex-direction:column;gap:1.25rem;margin:2rem 0 0}
.trust-pt{display:flex;gap:1rem;align-items:flex-start}
.trust-icon{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:.625rem;background:linear-gradient(135deg,rgba(237,39,140,.25) 0%,rgba(237,39,140,.1) 100%);border:1px solid rgba(237,39,140,.32);color:#ffb0cb;display:flex;align-items:center;justify-content:center}
.trust-icon .material-symbols-outlined{font-size:1.25rem}
.trust-pt h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:.9375rem;color:#fff;margin:0 0 .25rem;letter-spacing:-.005em}
.trust-pt p{font-family:'Inter',sans-serif;font-size:.875rem;line-height:1.55;color:rgba(255,255,255,.78);margin:0}

/* Card bianca "sempre incluso / variabile" dentro la sezione scura */
.incl-card{margin-top:2.5rem;background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-soft)}
@media(min-width:768px){.incl-card{padding:2rem}}
.incl-cols{display:grid;gap:1.5rem}
@media(min-width:768px){.incl-cols{grid-template-columns:1fr 1fr;gap:2.5rem}}
.incl-col h3{display:flex;align-items:center;gap:.45rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#c01070;margin:0 0 .75rem}
.incl-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.incl-col li{display:flex;align-items:flex-start;gap:.5rem;font-family:'Inter',sans-serif;font-size:.9rem;line-height:1.55;color:#3d4654}
.incl-col li .material-symbols-outlined{color:#c01070;font-size:1.15rem;flex-shrink:0;margin-top:.05rem}

/* ---- Calendario (tabella in card bianca, righe impilate da mobile) ---- */
.cal-card{background:#fff;border:1px solid rgba(20,27,43,.06);border-radius:1.25rem;box-shadow:var(--shadow-soft);overflow:hidden}
.cal-scroll{overflow-x:auto}
.cal-table{width:100%;min-width:700px;border-collapse:collapse}
.cal-table th{font-family:'Plus Jakarta Sans',sans-serif;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c01070;text-align:left;padding:1rem 1.1rem;border-bottom:1px solid rgba(237,39,140,.18);background:rgba(237,39,140,.04)}
.cal-table td{padding:.95rem 1.1rem;border-top:1px solid #f0ecee;font-family:'Inter',sans-serif;font-size:.875rem;color:#3d4654;vertical-align:middle}
.cal-table tbody tr:first-child td{border-top:0}
.cal-table .cal-tour{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:#141b2b}
.cal-table .cal-tour small{display:block;font-weight:600;color:#6b5f63;font-size:.72rem;margin-top:.1rem}
.cal-table .cal-nowrap{white-space:nowrap}
.cal-table .cal-price{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:#c01070;white-space:nowrap}
.cal-state{display:inline-flex;align-items:center;gap:.28rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:.7rem;font-weight:700;padding:.3rem .65rem;border-radius:999px}
.cal-state.s-ok{background:rgba(21,128,61,.1);color:#0f5f2d}
.cal-state.s-warn{background:rgba(180,83,9,.1);color:#8a3f06}
.cal-state.s-last{background:rgba(185,28,28,.12);color:#931b1b}
.cal-state.s-soldout{background:rgba(107,95,99,.12);color:#6b5f63}

@media(max-width:767px){
  .cal-scroll{overflow-x:visible}
  .cal-table,.cal-table tbody,.cal-table tr,.cal-table td{display:block;min-width:0;width:100%}
  .cal-table thead{display:none}
  .cal-table tr{border-top:1px solid #f0ecee;padding:.9rem 1.1rem}
  .cal-table tbody tr:first-child{border-top:0}
  .cal-table td{border-top:0;padding:.2rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem}
  .cal-table td::before{content:attr(data-label);font-family:'Plus Jakarta Sans',sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9aa1b2}
  .cal-table td.cal-tour{display:block;padding-bottom:.5rem}
  .cal-table td.cal-tour::before{content:none}
  .cal-table td.cal-actions{padding-top:.6rem}
  .cal-table td.cal-actions::before{content:none}
}

/* ---- Preventivo (nozze #preventivo) ---- */
.preventivo-section{background:linear-gradient(135deg,#0f1822 0%,#1a1f2e 100%);color:#fff;padding:4rem 1.25rem;position:relative;overflow:hidden}
@media(min-width:768px){.preventivo-section{padding:6rem 2rem}}
.preventivo-section::before{content:"";position:absolute;top:0;right:0;width:40%;height:60%;background:radial-gradient(ellipse,rgba(237,39,140,.16) 0%,transparent 65%);pointer-events:none}
.preventivo-inner{position:relative;z-index:2;max-width:48rem;margin:0 auto}
.preventivo-head{text-align:center;margin-bottom:2.5rem}
.preventivo-h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(1.75rem,4.5vw,2.5rem);line-height:1.12;color:#fff;margin:0 0 1rem;letter-spacing:-.012em}
.preventivo-h2 em{font-style:normal;color:#ffb0cb;font-weight:800}
.preventivo-lead{font-family:'Inter',sans-serif;font-size:1rem;line-height:1.65;color:rgba(255,255,255,.82);margin:.75rem 0 0}
.prev-promise{display:inline-flex;align-items:center;gap:.5rem;background:rgba(237,39,140,.16);color:#ffb0cb;font-family:'Plus Jakarta Sans',sans-serif;font-size:.8125rem;font-weight:700;padding:.5rem 1rem;border-radius:9999px;border:1px solid rgba(237,39,140,.28);margin-top:1.25rem}
.prev-promise .material-symbols-outlined{font-size:1rem}
.preventivo-form{background:rgba(255,255,255,.05);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);border-radius:1.25rem;padding:1.5rem}
@media(min-width:640px){.preventivo-form{padding:2rem}}
.f-row{margin-bottom:1rem}
.f-row:last-of-type{margin-bottom:1.5rem}
.f-grid{display:grid;gap:0 1rem}
@media(min-width:640px){.f-grid{grid-template-columns:1fr 1fr}}
.f-lbl{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:.4rem}
.f-in,.f-sel,.f-tx{width:100%;padding:.75rem 1rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:.625rem;color:#fff;font-family:'Inter',sans-serif;font-size:.9375rem;outline:none;min-height:44px;transition:border-color .2s ease,background .2s ease;box-sizing:border-box}
.f-in::placeholder,.f-tx::placeholder{color:rgba(255,255,255,.42)}
.f-in:focus,.f-sel:focus,.f-tx:focus{border-color:#ED278C;background:rgba(255,255,255,.1)}
.f-sel option{color:#141b2b;background:#fff}
.f-check{display:flex;align-items:flex-start;gap:.6rem;font-family:'Inter',sans-serif;font-size:.82rem;line-height:1.55;color:rgba(255,255,255,.78);cursor:pointer}
.f-check input{margin-top:.2rem;width:1.15rem;height:1.15rem;accent-color:#ED278C;flex-shrink:0}
.f-check a{color:#ffb0cb;font-weight:600}
.f-submit{width:100%;background:#ED278C;color:#fff;border:none;padding:.95rem 1.5rem;border-radius:.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:background .25s ease,transform .15s ease;min-height:48px}
.f-submit:hover{background:#c01070}
.f-submit:active{transform:translateY(1px)}
.f-submit:disabled{opacity:.7;cursor:wait}
.prev-alt{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);text-align:center}
.prev-alt p{font-family:'Inter',sans-serif;font-size:.8125rem;color:rgba(255,255,255,.55);margin:0 0 .875rem}
.prev-alt-btns{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
.prev-wa{display:inline-flex;align-items:center;gap:.5rem;background:#25D366;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.9375rem;padding:.85rem 1.5rem;border-radius:.625rem;text-decoration:none;min-height:48px;transition:background .2s ease,transform .15s ease}
.prev-wa:hover{background:#1da851;transform:translateY(-1px)}
.prev-wa svg{width:18px;height:18px}
.prev-tel{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.9375rem;padding:.85rem 1.5rem;border-radius:.625rem;text-decoration:none;min-height:48px;transition:background .2s ease}
.prev-tel:hover{background:rgba(255,255,255,.14)}
.prev-contacts{display:block;margin-top:1.1rem;font-family:'Inter',sans-serif;font-size:.8125rem;color:rgba(255,255,255,.55)}
.prev-contacts a{color:#ffb0cb;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.form-status{display:none;margin-top:1rem;padding:.9rem 1rem;border-radius:.75rem;font-size:.88rem;line-height:1.55}
.form-status.is-success{display:block;background:rgba(21,128,61,.14);border:1px solid rgba(21,128,61,.3);color:#c6ffd4}
.form-status.is-error{display:block;background:rgba(185,28,28,.14);border:1px solid rgba(185,28,28,.28);color:#ffd4d4}
