/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/next@15.4.11_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[5].use[2]!./node_modules/.pnpm/next@15.4.11_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[5].use[3]!./src/components/forms/DevisForm.module.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.DevisForm_form__UwoNJ {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* ── Success / Error boxes ── */

.DevisForm_successBox__TOr3C {
  border-radius: 0.5rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  padding: 1.5rem;
  text-align: center;
}

.DevisForm_successTitle__TvCn0 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #166534;
  margin-bottom: 0.5rem;
}

.DevisForm_successMessage__S6vUF {
  color: #15803d;
}

.DevisForm_errorBox__kT2Ul {
  border-radius: 0.375rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: #b91c1c;
}

/* ── Section (single-page layout) ── */

.DevisForm_section__Y6a_t {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem 1.25rem 1.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
}

.DevisForm_sectionTitle__6PS9z {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-dark, #212529);
  margin: 0 0 0.25rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--color-primary, #007fab);
  display: inline-block;
  align-self: flex-start;
}

/* ── Form fields ── */

.DevisForm_label__tIyXY {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-dark, #212529);
  margin-bottom: 0.25rem;
}

.DevisForm_input__0N6RE,
.DevisForm_select___j2e0,
.DevisForm_textarea__uRMqn {
  width: 100%;
  border-radius: 0.375rem;
  border: 1px solid #d1d5db;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  outline: none;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.DevisForm_input__0N6RE:focus,
.DevisForm_select___j2e0:focus,
.DevisForm_textarea__uRMqn:focus {
  border-color: transparent;
  box-shadow: 0 0 0 2px var(--color-primary, #007fab);
}

/* ── Interests grid ── */

.DevisForm_interestGrid__lfC0V {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.DevisForm_interestLabel__nxbYs {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.375rem;
  border: 1px solid #d1d5db;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background-color 0.15s,
    color 0.15s;
  color: var(--color-dark, #212529);
}

.DevisForm_interestLabel__nxbYs:hover {
  border-color: #9ca3af;
}

.DevisForm_interestLabelActive__AXa2s {
  border-color: var(--color-primary, #007fab);
  background: rgba(0, 127, 171, 0.05);
  color: var(--color-primary, #007fab);
}

.DevisForm_srOnly__ld5BO {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.DevisForm_checkboxVisual__Z2LPw {
  width: 1rem;
  height: 1rem;
  border-radius: 0.25rem;
  border: 1px solid #d1d5db;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.DevisForm_checkboxVisualActive__zlz1v {
  background: var(--color-primary, #007fab);
  border-color: var(--color-primary, #007fab);
  color: #fff;
}

.DevisForm_checkIcon__D8tww {
  width: 0.75rem;
  height: 0.75rem;
}

/* ── Submit button bar ── */

.DevisForm_buttonBar__20rEI {
  display: flex;
  justify-content: center;
  padding-top: 0.5rem;
}

.DevisForm_buttonNext__JG_gF {
  padding: 0.875rem 2.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  background: var(--color-primary, #007fab);
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background-color 0.15s, transform 0.15s, box-shadow 0.15s;
  box-shadow: 0 4px 14px -4px rgba(0, 127, 171, 0.5);
}

.DevisForm_buttonNext__JG_gF:hover {
  background: var(--color-primary-dark, #006a91);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px -4px rgba(0, 127, 171, 0.55);
}

.DevisForm_buttonNext__JG_gF:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* ── Row (2-column grid) ── */

.DevisForm_row__fQK1c {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

/* ── Field group ── */

.DevisForm_fieldGroup__aaU77 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* ── Field-level error ── */

.DevisForm_fieldError__80Pia {
  font-size: 0.75rem;
  color: #b91c1c;
  margin: 0;
}

/* ── Input / select error states ── */

.DevisForm_inputError__8XEKI {
  width: 100%;
  border-radius: 0.375rem;
  border: 1px solid #f87171;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.DevisForm_inputError__8XEKI:focus {
  border-color: transparent;
  box-shadow: 0 0 0 2px #f87171;
}

.DevisForm_selectError__Dp_Bb {
  width: 100%;
  border-radius: 0.375rem;
  border: 1px solid #f87171;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.DevisForm_selectError__Dp_Bb:focus {
  border-color: transparent;
  box-shadow: 0 0 0 2px #f87171;
}

/* ── Hint text ── */

.DevisForm_hint__oJlkO {
  font-size: 0.75rem;
  color: #6b7280;
}

/* ── Radio group ── */

.DevisForm_radioGroup__YZhrb {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.DevisForm_radioLabel__Wr87L {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  cursor: pointer;
  color: var(--color-dark, #212529);
}

/* ── Check item (styled checkbox pill) ── */

.DevisForm_checkItem__apW9B {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.375rem;
  border: 1px solid #d1d5db;
  padding: 0.4375rem 0.75rem;
  font-size: 0.8125rem;
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s, color 0.15s;
  color: var(--color-dark, #212529);
  user-select: none;
}

.DevisForm_checkItem__apW9B:hover {
  border-color: #9ca3af;
}

.DevisForm_checkItemActive__K8JFJ {
  border-color: var(--color-primary, #007fab);
  background: rgba(0, 127, 171, 0.05);
  color: var(--color-primary, #007fab);
}

/* ── Check grid / stack ── */

.DevisForm_checkGrid__wAqVn {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.DevisForm_checkStack__CO6Mn {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* ── Tab switcher ── */

.DevisForm_tabSwitcher__DBEyS {
  display: flex;
  border-radius: 0.375rem;
  overflow: hidden;
  border: 1px solid #d1d5db;
}

.DevisForm_tab__qkpMN {
  flex: 1;
  padding: 0.5625rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  background: #f9fafb;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s;
  color: #6b7280;
}

.DevisForm_tab__qkpMN + .DevisForm_tab__qkpMN {
  border-left: 1px solid #d1d5db;
}

.DevisForm_tabActive__oKsJ4 {
  background: var(--color-primary, #007fab);
  color: #fff;
}

/* ── Fieldset (vol arrivée / départ) ── */

.DevisForm_fieldSet__wn2fl {
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.DevisForm_fieldSetTitle__mBLdj {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-dark, #212529);
}

/* ── Rating section container ── */

.DevisForm_ratingSection__OhH7M {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
}

.DevisForm_ratingSectionTitle__CoQI6 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-dark, #212529);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
}

.DevisForm_ratingLegend___qmJg {
  font-size: 0.6875rem;
  font-weight: 400;
  color: #9ca3af;
}

/* ── Rating row ── */

.DevisForm_ratingRow__NLcsv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px dashed #f1f5f9;
}

.DevisForm_ratingRow__NLcsv:last-child {
  border-bottom: none;
}

.DevisForm_ratingLabel__OFIgG {
  font-size: 0.875rem;
  color: var(--color-dark, #212529);
  flex: 1;
  min-width: 0;
  font-weight: 500;
}

/* ── Rating buttons (smiley tiles) ── */

.DevisForm_ratingGroup__aBApu {
  display: flex;
  gap: 0.375rem;
  flex-shrink: 0;
}

.DevisForm_ratingBtn__7PFjo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.125rem;
  min-width: 3.75rem;
  padding: 0.4rem 0.5rem 0.45rem;
  border-radius: 0.625rem;
  border: 2px solid #e5e7eb;
  background: #fafafa;
  cursor: pointer;
  transition: transform 0.15s ease, border-color 0.15s, background-color 0.15s,
    box-shadow 0.15s;
  color: #6b7280;
  filter: grayscale(0.35);
}

.DevisForm_ratingBtn__7PFjo:hover {
  transform: translateY(-2px);
  border-color: #cbd5e1;
  background: #fff;
  filter: grayscale(0);
}

.DevisForm_ratingEmoji__rBhwh {
  font-size: 1.5rem;
  line-height: 1;
  transition: transform 0.2s ease;
}

.DevisForm_ratingBtn__7PFjo:hover .DevisForm_ratingEmoji__rBhwh {
  transform: scale(1.15);
}

.DevisForm_ratingCaption__UUQys {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  color: inherit;
}

.DevisForm_ratingBtnActive__o1auZ {
  filter: grayscale(0);
  background: #fff;
  box-shadow: 0 4px 12px -3px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.DevisForm_ratingBtnActive__o1auZ .DevisForm_ratingEmoji__rBhwh {
  transform: scale(1.2);
}

/* Per-value active colouring (most positive → most negative) */

.DevisForm_ratingBtnActive__o1auZ[aria-label*="Très souhaité"],
.DevisForm_ratingBtnActive__o1auZ[title="Très souhaité"] {
  border-color: #22c55e;
  color: #15803d;
  background: rgba(34, 197, 94, 0.08);
}

.DevisForm_ratingBtnActive__o1auZ[aria-label*="Appréciable"],
.DevisForm_ratingBtnActive__o1auZ[title="Appréciable"] {
  border-color: #84cc16;
  color: #4d7c0f;
  background: rgba(132, 204, 22, 0.08);
}

.DevisForm_ratingBtnActive__o1auZ[aria-label*="Peu souhaité"],
.DevisForm_ratingBtnActive__o1auZ[title="Peu souhaité"] {
  border-color: #f59e0b;
  color: #b45309;
  background: rgba(245, 158, 11, 0.08);
}

.DevisForm_ratingBtnActive__o1auZ[aria-label*="Pas du tout"],
.DevisForm_ratingBtnActive__o1auZ[title="Pas du tout"] {
  border-color: #ef4444;
  color: #b91c1c;
  background: rgba(239, 68, 68, 0.08);
}

/* ── Responsive ── */

@media (max-width: 640px) {
  .DevisForm_section__Y6a_t {
    padding: 1rem;
  }

  .DevisForm_ratingRow__NLcsv {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .DevisForm_ratingGroup__aBApu {
    width: 100%;
    justify-content: space-between;
  }

  .DevisForm_ratingBtn__7PFjo {
    flex: 1;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .DevisForm_checkGrid__wAqVn {
    grid-template-columns: 1fr;
  }

  .DevisForm_row__fQK1c {
    grid-template-columns: 1fr;
  }

  .DevisForm_ratingEmoji__rBhwh {
    font-size: 1.3rem;
  }

  .DevisForm_ratingCaption__UUQys {
    font-size: 0.625rem;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/next@15.4.11_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[5].use[2]!./node_modules/.pnpm/next@15.4.11_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[5].use[3]!./src/styles/pages.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ── Shared page layout classes ── */

.pages_pageWide__FSDRD {
  max-width: 80rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.pages_pageNarrow__u4PJx {
  max-width: 56rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.pages_pageXnarrow__g4xCx {
  max-width: 42rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.pages_pageTitle__4LVB7 {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--color-primary, #007fab);
  margin-bottom: 2rem;
}

.pages_pageTitleCompact__y8Cmq {
  margin-bottom: 1rem;
}

.pages_subtitle__cbcx6 {
  color: #4b5563;
  margin-bottom: 2rem;
}

.pages_emptyMessage__OVyFT {
  color: #6b7280;
}

.pages_cardGrid__8A98o {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .pages_cardGrid__8A98o {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .pages_cardGrid__8A98o {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* prose replacement for raw HTML content */

.pages_prose__npjiM {
  max-width: none;
  font-size: 1.125rem;
  line-height: 1.75;
  color: #374151;
}

.pages_prose__npjiM h2 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.pages_prose__npjiM h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.pages_prose__npjiM p {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.pages_prose__npjiM a {
  color: var(--color-primary, #007fab);
  text-decoration: underline;
}

.pages_prose__npjiM img {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.pages_prose__npjiM ul,
.pages_prose__npjiM ol {
  padding-left: 1.5rem;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.pages_prose__npjiM li {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.pages_prose__npjiM blockquote {
  border-left: 4px solid #e5e7eb;
  padding-left: 1rem;
  font-style: italic;
  color: #6b7280;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.pages_proseContainer__RW8f9 {
  max-width: 64rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}

/* utility */

.pages_textCenter__7_h_q {
  text-align: center;
}

.pages_destGrid__yc0cT {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 2rem;
}

.pages_travelCtaRow__ANe57 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  gap: 1.5rem;
  padding: 2.5rem 1rem;
}
