/* ═══════════════════════════════════════════════════════════════════
   CALC CARDS — un seul design pour toutes les fiches produit
   ═══════════════════════════════════════════════════════════════════
   Référence : la carte « Calculez votre prix » de la fiche golf.

   POURQUOI
   Chaque type de produit avait sa propre carte, et ses styles avaient
   dérivé : séjour (bloc prix beige, prix noir en Outfit 32 px, acompte en
   texte simple), circuit et parc (cartes 22 px, titre bleu marine pour le
   parc, total en ligne). Même structure, rendus différents.

   COMMENT
   Une seule source, chargée après les styles des fiches, pour les trois
   familles de classes : sv- (golf, séjour), vc- (circuit), vp- (parc).
   Préfixe « body » : l'emporte sur les styles locaux (même sélecteur,
   spécificité supérieure) sans !important. Toute évolution se fait ICI.

   Charte : encre #0f2424 · turquoise #59b7b7 / #3d9a9a · corail #e8724a
            Playfair Display (titres, prix) · Outfit (texte)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Carte ── */
body .sv-calc-card,
body .vc-calc-card,
body .vp-calc-card {
    background: #fff;
    border-radius: 18px;
    padding: 24px;
    box-shadow: 0 4px 28px rgba(0, 0, 0, .1);
}

/* ── Titre et sous-titre ── */
body .sv-calc-title,
body .vc-calc-title,
body .vp-calc-title {
    font-family: 'Playfair Display', serif;
    font-size: 19px;
    font-weight: 700;
    color: #0f2424;
    margin: 0 0 3px;
    line-height: 1.25;
}
body .sv-calc-sub,
body .vc-calc-sub,
body .vp-calc-sub {
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    color: #9ca3af;
    margin: 0 0 16px;
    line-height: 1.45;
}
body .vc-calc-hint {
    background: #edf8f8;
    border: 1px solid rgba(89, 183, 183, .25);
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 12px;
    color: #1a3a3a;
    font-family: 'Outfit', sans-serif;
}

/* ── Champs ── */
body .sv-field,
body .vc-field,
body .vp-field { margin-bottom: 12px; }

body .sv-field label,
body .vc-field label,
body .vp-field label {
    display: block;
    font-family: 'Outfit', sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 4px;
}
body .sv-field select,
body .vc-field select,
body .vp-field select,
body .vc-field input[type=date],
body .vp-field input[type=date],
body .vc-field input[type=number],
body .vp-field input[type=number] {
    width: 100%;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    padding: 9px 12px;
    font-family: 'Outfit', sans-serif;
    font-size: 13px;
    color: #0f2424;
    background: #fafafa;
    outline: none;
    transition: border-color .2s;
}
body .sv-field select:focus,
body .vc-field select:focus,
body .vp-field select:focus,
body .vc-field input:focus,
body .vp-field input:focus { border-color: #59b7b7; }

/* ── Options ── */
body .vc-option-card,
body .vp-option-card {
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    padding: 9px 12px;
    transition: border-color .2s, background .2s;
}
body .vc-option-card.selected,
body .vp-option-card.selected {
    border-color: #59b7b7;
    background: #f0fafa;
}
body .vc-option-name,
body .vp-option-name {
    font-family: 'Outfit', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #0f2424;
}
body .sv-option-price,
body .vc-option-price,
body .vp-option-price,
body .vp-calc-opt-price {
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #3d9a9a;
}
body .vp-calc-options-title {
    font-family: 'Outfit', sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 1px;
}
body .vp-qty-btn {
    background: #e8f4f4;
    color: #0f2424;
    border: none;
    border-radius: 6px;
    font-weight: 700;
}

/* ── Bloc prix ── */
/* Golf et séjour : bloc centré « À partir de / prix / par personne / acompte » */
body .sv-price-box {
    background: #f4f9f9;
    border-radius: 12px;
    padding: 16px;
    margin: 12px 0;
    text-align: center;
}
body .sv-price-from {
    font-family: 'Outfit', sans-serif;
    font-size: 10px;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin: 0 0 4px;
}
body .sv-price-main {
    font-family: 'Playfair Display', serif;
    font-size: 40px;
    font-weight: 700;
    color: #3d9a9a;
    line-height: 1;
}
body .sv-price-per {
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    color: #9ca3af;
    margin: 4px 0 0;
}
body .sv-price-acompte,
body .vc-acompte-line {
    display: inline-block;
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #2d8a5a;
    background: #e8f8f0;
    padding: 4px 12px;
    border-radius: 100px;
    margin-top: 8px;
}

/* Circuit et parc : même rendu — détail discret, puis total mis en avant */
body .vc-price-result,
body .vp-price-result {
    background: #f4f9f9;
    border-radius: 12px;
    padding: 16px;
    margin: 12px 0;
    text-align: center;
}
body .vc-price-result:empty,
body .vp-price-result:empty { display: none; }

body .vc-price-lines,
body .vp-price-lines {
    text-align: left;
    margin: 0 0 12px;
    padding: 0 0 10px;
    border-bottom: 1px dashed #d6e6e6;
}
body .vc-price-line,
body .vp-price-line {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-family: 'Outfit', sans-serif;
    font-size: 12px;
    color: #4a5568;
    padding: 2px 0;
}
body .vc-price-total,
body .vp-price-total {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    padding: 0;
}
body .vc-price-total-label,
body .vp-price-total-label {
    font-family: 'Outfit', sans-serif;
    font-size: 10px;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .5px;
    font-weight: 600;
}
body .vc-price-total-val,
body .vp-price-total-val {
    font-family: 'Playfair Display', serif;
    font-size: 40px;
    font-weight: 700;
    color: #3d9a9a;
    line-height: 1;
}
body .vc-price-pp,
body .vp-price-note {
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    color: #9ca3af;
    margin: 4px 0 0;
}

/* ── Chargement ── */
body .sv-price-loading,
body .vc-price-loading {
    text-align: center;
    padding: 4px;
    font-family: 'Outfit', sans-serif;
    font-size: 12px;
    color: #9ca3af;
}

/* ── Bouton de réservation ── */
body .sv-btn-reserver,
body .vc-cta-btn,
body .vp-cta-btn {
    display: block;
    width: 100%;
    background: #e8724a;
    color: #fff;
    border: none;
    padding: 15px;
    border-radius: 12px;
    font-family: 'Outfit', sans-serif;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background .25s, transform .25s;
    margin-top: 2px;
    box-shadow: none;
}
body .sv-btn-reserver:hover,
body .vc-cta-btn:hover,
body .vp-cta-btn:hover {
    background: #d4603c;
    transform: translateY(-2px);
}
body .sv-btn-reserver:disabled,
body .vc-cta-btn:disabled,
body .vp-cta-btn:disabled {
    background: #d1d5db;
    color: #fff;
    cursor: not-allowed;
    transform: none;
}

/* ── Mobile ── */
@media (max-width: 600px) {
    body .sv-calc-card,
    body .vc-calc-card,
    body .vp-calc-card { padding: 20px 18px; border-radius: 16px; }
    body .sv-price-main,
    body .vc-price-total-val,
    body .vp-price-total-val { font-size: 34px; }
}
