/* SIMULATEUR DE SÉJOUR — Coachs / Retraites */
.simulator { background: var(--ink); color: var(--cream); padding: 120px 48px; }
.simulator-inner { max-width: 1200px; margin: 0 auto; }
.simulator-head { text-align: center; margin-bottom: 56px; max-width: 760px; margin-left: auto; margin-right: auto; }
.simulator-head .label { color: var(--saffron); justify-content: center; display: flex; }
.simulator-head .label::before { background: var(--saffron); }
.simulator-head h2 { font-family: "DM Serif Display", serif; font-weight: 400; font-size: clamp(36px, 4vw, 52px); line-height: 1.1; margin-bottom: 24px; }
.simulator-head h2 em { font-style: italic; color: var(--saffron); }
.simulator-head p { font-family: "Fraunces", serif; font-size: 17px; font-weight: 300; line-height: 1.7; color: rgba(244,241,234,0.85); }

.sim-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; background: rgba(244,241,234,0.04); border: 1px solid rgba(244,241,234,0.1); padding: 48px; }
.sim-controls > h3, .sim-results > h3 { font-family: "DM Serif Display", serif; font-weight: 400; font-size: 22px; line-height: 1.2; color: var(--saffron); margin-bottom: 32px; font-style: italic; }

.sim-field { margin-bottom: 28px; }
.sim-field label { display: block; font-family: "Inter", sans-serif; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244,241,234,0.6); margin-bottom: 12px; font-weight: 500; }
.sim-field-value { font-family: "DM Serif Display", serif; font-size: 22px; color: var(--cream); margin-left: 12px; }
.sim-field-value em { font-style: italic; color: var(--saffron); font-size: 0.7em; }

.sim-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; background: rgba(244,241,234,0.15); border-radius: 2px; outline: none; }
.sim-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 22px; height: 22px; background: var(--saffron); border-radius: 50%; cursor: pointer; border: 2px solid var(--cream); box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.sim-slider::-moz-range-thumb { width: 22px; height: 22px; background: var(--saffron); border-radius: 50%; cursor: pointer; border: 2px solid var(--cream); }

.sim-periods { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.sim-period { background: transparent; border: 1px solid rgba(244,241,234,0.2); color: rgba(244,241,234,0.7); padding: 12px 16px; font-family: "Inter", sans-serif; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.sim-period.active { background: var(--saffron); color: var(--ink); border-color: var(--saffron); }
.sim-period:hover:not(.active) { border-color: var(--saffron); color: var(--cream); }

.sim-options { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.sim-option { background: transparent; border: 1px solid rgba(244,241,234,0.2); color: rgba(244,241,234,0.7); padding: 12px 14px; font-family: "Fraunces", serif; font-size: 13px; font-weight: 300; text-align: center; cursor: pointer; transition: all 0.2s; line-height: 1.3; }
.sim-option strong { display: block; font-family: "Inter", sans-serif; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(244,241,234,0.5); font-weight: 600; margin-bottom: 6px; }
.sim-option.active strong { color: var(--ink); opacity: 0.7; }
.sim-option.active { background: var(--saffron); color: var(--ink); border-color: var(--saffron); font-weight: 400; }
.sim-option:hover:not(.active) { border-color: var(--saffron); color: var(--cream); }

.sim-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sim-toggle button { background: transparent; border: 1px solid rgba(244,241,234,0.2); color: rgba(244,241,234,0.7); padding: 12px 16px; font-family: "Fraunces", serif; font-size: 13px; font-weight: 300; cursor: pointer; transition: all 0.2s; }
.sim-toggle button.active { background: var(--saffron); color: var(--ink); border-color: var(--saffron); }
.sim-toggle button:hover:not(.active) { border-color: var(--saffron); color: var(--cream); }

.sim-margin-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
.sim-margin-input, .sim-number { background: transparent; border: 1px solid rgba(244,241,234,0.2); color: var(--cream); padding: 12px 16px; font-family: "DM Serif Display", serif; font-size: 18px; outline: none; width: 100%; }
.sim-margin-input:focus, .sim-number:focus { border-color: var(--saffron); }
.sim-number { margin-top: 12px; }

.sim-results-card { background: rgba(196,165,123,0.05); border: 1px solid rgba(196,165,123,0.2); padding: 32px; margin-bottom: 16px; }
.sim-results-section { margin-bottom: 32px; }
.sim-results-section:last-child { margin-bottom: 0; }
.sim-results-section h4 { font-family: "Inter", sans-serif; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--saffron); font-weight: 600; margin-bottom: 14px; }
.sim-line { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; border-bottom: 1px solid rgba(244,241,234,0.06); }
.sim-line:last-child { border-bottom: none; }
.sim-line-label { font-family: "Fraunces", serif; font-size: 14px; font-weight: 300; color: rgba(244,241,234,0.85); }
.sim-line-value { font-family: "DM Serif Display", serif; font-size: 17px; color: var(--cream); }
.sim-line.total { padding-top: 16px; margin-top: 4px; border-top: 1px solid rgba(244,241,234,0.15); border-bottom: none !important; }
.sim-line.total .sim-line-label { color: var(--cream); font-family: "DM Serif Display", serif; font-size: 16px; font-style: italic; }
.sim-line.total .sim-line-value { color: var(--saffron); font-size: 24px; }
.sim-line.huge .sim-line-value { font-size: 32px; color: var(--saffron); }

.sim-results-message { background: rgba(196,165,123,0.08); padding: 20px 24px; border-left: 3px solid var(--saffron); font-family: "Fraunces", serif; font-size: 14.5px; font-style: italic; line-height: 1.6; color: rgba(244,241,234,0.85); margin-top: 24px; }
.sim-results-message strong { color: var(--saffron); font-style: normal; }

/* Bloc exemple chiffré dans l'astuce */
.sim-pricing-example {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(196,165,123,0.2);
  font-style: normal;
}
.sim-pricing-example-title {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(244,241,234,0.5);
  margin-bottom: 12px;
  font-style: normal;
}
.sim-pricing-example-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sim-pricing-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 16px;
  align-items: baseline;
  font-family: "Fraunces", serif;
  font-size: 13.5px;
  font-style: normal;
  font-weight: 300;
  color: rgba(244,241,234,0.85);
  padding: 4px 0;
}
.sim-pricing-row em {
  font-style: italic;
  color: rgba(244,241,234,0.55);
  font-size: 12px;
  margin-left: 4px;
}
.sim-pricing-arrow {
  color: var(--saffron);
  font-family: "DM Serif Display", serif;
  font-style: italic;
  font-size: 16px;
  line-height: 1;
}
.sim-pricing-amount {
  font-family: "Fraunces", serif;
  font-weight: 400;
  color: var(--cream);
  white-space: nowrap;
}
.sim-pricing-row.total {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px dashed rgba(196,165,123,0.3);
}
.sim-pricing-row.total .sim-pricing-amount strong {
  color: var(--saffron);
  font-weight: 500;
  font-style: normal;
}
.sim-pricing-row.total .sim-pricing-label strong {
  color: var(--cream);
  font-weight: 400;
  font-style: normal;
}
.sim-pricing-row.total .sim-pricing-arrow {
  font-family: "Inter", sans-serif;
  font-style: normal;
  font-weight: 600;
}
.sim-pricing-example-footer {
  font-family: "Fraunces", serif;
  font-size: 12.5px;
  font-style: italic;
  color: rgba(244,241,234,0.55);
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(244,241,234,0.08);
  line-height: 1.5;
}

@media (max-width: 600px) {
  .sim-pricing-row { grid-template-columns: 1fr auto; }
  .sim-pricing-row .sim-pricing-arrow { display: none; }
}

.sim-cta { margin-top: 32px; display: flex; justify-content: center; }
.sim-cta a { background: var(--saffron); color: var(--ink); padding: 16px 32px; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 700; text-decoration: none; transition: all 0.2s; }
.sim-cta a:hover { background: var(--cream); }

.sim-disclaimer { text-align: center; font-family: "Fraunces", serif; font-size: 13px; font-style: italic; color: rgba(244,241,234,0.5); margin-top: 32px; }

.sim-winter-message { background: rgba(196,165,123,0.1); border: 1px solid rgba(196,165,123,0.3); padding: 32px; text-align: center; }
.sim-winter-message h4 { font-family: "DM Serif Display", serif; font-size: 24px; color: var(--saffron); font-style: italic; margin-bottom: 12px; }
.sim-winter-message p { font-family: "Fraunces", serif; font-size: 15px; font-weight: 300; line-height: 1.7; color: rgba(244,241,234,0.85); margin-bottom: 20px; }
.sim-winter-message a { color: var(--saffron); text-decoration: none; border-bottom: 1px solid var(--saffron); font-family: "Inter", sans-serif; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; padding-bottom: 3px; }
.sim-winter-message a:hover { color: var(--cream); border-color: var(--cream); }

@media (max-width: 1100px) {
  .simulator { padding: 80px 24px; }
  .sim-grid { grid-template-columns: 1fr; gap: 32px; padding: 32px 24px; }
  .sim-options, .sim-periods { grid-template-columns: 1fr; }
  .sim-margin-row { grid-template-columns: 1fr; }
}
