/**
 * Quick Dealer — WooCommerce / My Account styles
 * Loaded only on WooCommerce pages via wp_enqueue_scripts conditional.
 *
 * @package QuickDealer
 */

/* ── Login / Register page ───────────────────────────────────────────────── */

.qd-auth-wrap {
  display: grid;
  grid-template-columns: 5fr 8fr;
  gap: 2rem;
  /* padding: 2rem; */
}
@media (max-width: 900px) {
  .qd-auth-wrap {
    grid-template-columns: 1fr;
    grid-template-areas: 'forms' 'brand';
  }
  .qd-auth-brand { grid-area: brand; }
  .qd-auth-forms { grid-area: forms; }
}

/* ── Brand panel (left) ─────────────────────────── */
.qd-auth-brand {
  position: relative;
  background: linear-gradient(145deg, rgb(36 28 90) 0%, rgb(54 45 122) 50%, rgb(70 55 150) 100%);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 3rem 2.5rem;
  overflow: hidden;
  border-radius: 1.25rem;
}

.qd-auth-brand__inner {
  position: relative;
  z-index: 1;
  max-width: 400px;
  width: 100%;
}

.qd-auth-brand__logo {
  display: inline-block;
  margin-bottom: 3rem;
}

.qd-auth-brand__headline h1 {
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 1rem;
  text-transform: none;
  letter-spacing: -0.02em;
}
.qd-auth-brand__headline p {
  font-size: 0.95rem;
  color: rgb(255 255 255 / 0.6);
  line-height: 1.65;
  margin: 0 0 2.5rem;
}

.qd-auth-brand__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.qd-auth-brand__features li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.8);
  list-style: none;
  margin: 0;
  padding: 0;
}
.qd-auth-brand__features li svg {
  width: 1rem;
  height: 1rem;
  color: #74BE00;
  flex-shrink: 0;
}

.qd-auth-brand__glow {
  position: absolute;
  bottom: -6rem;
  right: -6rem;
  width: 28rem;
  height: 28rem;
  background: rgb(116 190 0 / 0.1);
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}

/* ── Forms panel (right) ────────────────────────── */
.qd-auth-forms {
  display: flex;
  flex-direction: column;
  padding: 3rem 3rem;
  background: #fdfdfd;
}
@media (max-width: 600px) {
  .qd-auth-forms { 
    padding: 4rem 0;
    justify-content: normal;
   }
}

/* Tab switcher */
.qd-auth-tabs {
  display: flex;
  background: rgb(54 45 122 / 0.06);
  border-radius: 0.75rem;
  padding: 0.3rem;
  gap: 0.25rem;
  margin-bottom: 2rem;
}
.qd-auth-tab {
  flex: 1;
  padding: 0.6rem 1rem;
  border: none;
  background: transparent;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.5);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.qd-auth-tab.is-active {
  background: #fff;
  color: rgb(54 45 122);
  box-shadow: 0 1px 4px rgb(54 45 122 / 0.12);
}

/* Panels */
.qd-auth-panel { display: none; }
.qd-auth-panel.is-active { display: block; }

.qd-auth-panel__header { margin-bottom: 1.75rem; }
.qd-auth-panel__header h2 {
  font-size: 1.5rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0 0 0.4rem;
  text-transform: none;
}
.qd-auth-panel__header p {
  font-size: 0.875rem;
  color: rgb(54 45 122 / 0.55);
  margin: 0;
}

/* Form */
.qd-auth-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: rgb(241 244 248);
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1rem;
  padding: 1.5rem;
}

.qd-auth-field { display: flex; flex-direction: column; gap: 0.4rem; }
.qd-auth-field label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.7);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.qd-auth-field label svg { width: 0.85rem; height: 0.85rem; flex-shrink: 0; }
.qd-auth-required { color: #74BE00; }

/* Specificity 31 (3 classes + 1 element + 1 attr) beats WC's .woocommerce form .form-row .input-text (31)
   and wins on tie because our stylesheet is enqueued after WC's. */
.qd-auth-forms .qd-auth-form input[type="text"],
.qd-auth-forms .qd-auth-form input[type="email"],
.qd-auth-forms .qd-auth-form input[type="password"],
.qd-auth-forms .qd-auth-form input[type="tel"],
.qd-auth-forms .qd-auth-form select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  font-size: 0.9rem;
  font-family: inherit;
  color: rgb(54 45 122);
  background-color: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
  box-sizing: border-box;
  appearance: none;
}
/* Arrow only on selects */
.qd-auth-forms .qd-auth-form select {
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23362D7A' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 1rem;
  cursor: pointer;
}
.qd-auth-forms .qd-auth-form input[type="text"]::placeholder,
.qd-auth-forms .qd-auth-form input[type="email"]::placeholder,
.qd-auth-forms .qd-auth-form input[type="password"]::placeholder,
.qd-auth-forms .qd-auth-form input[type="tel"]::placeholder { color: rgb(54 45 122 / 0.3); }
.qd-auth-forms .qd-auth-form input[type="text"]:focus,
.qd-auth-forms .qd-auth-form input[type="email"]:focus,
.qd-auth-forms .qd-auth-form input[type="password"]:focus,
.qd-auth-forms .qd-auth-form input[type="tel"]:focus,
.qd-auth-forms .qd-auth-form select:focus {
  border-color: #74BE00;
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.12);
}
/* Business-fields inputs: bump to 41 to guarantee override */
.qd-auth-forms .qd-auth-form .qd-business-fields input[type="text"],
.qd-auth-forms .qd-auth-form .qd-business-fields select {
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
  color: rgb(54 45 122);
  background-color: #fff; /* use background-color, not background, to preserve the arrow image on select */
  box-shadow: none;
}
.qd-auth-forms .qd-auth-form .qd-business-fields select {
  padding-right: 2.5rem;
}

/* Remember + lost password row */
.qd-auth-form__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: -0.25rem;
}
.qd-auth-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.6);
  cursor: pointer;
}
.qd-auth-checkbox input[type="checkbox"] { accent-color: #74BE00; }
.qd-auth-lost {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.45);
  text-decoration: none;
  transition: color 0.15s;
}
.qd-auth-lost:hover { color: #74BE00; }

/* Submit — mirrors .ctei-btn-primary */
.qd-auth-submit {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 2.5rem;
  margin-top: 0.5rem;
  background-color: rgb(141 190 63);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: inherit;
  border: none;
  border-radius: 0.75rem;
  cursor: pointer;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qd-auth-submit::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: translateX(-200%);
  transition: transform 0.45s ease;
}
.qd-auth-submit svg { position: relative; width: 1rem; height: 1rem; flex-shrink: 0; }
.qd-auth-submit:hover {
  transform: translateY(-0.125rem);
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}
.qd-auth-submit:hover::before { transform: translateX(200%); }
.qd-auth-submit:focus {
  outline: 2px solid transparent;
  box-shadow: 0 0 0 4px rgb(141 190 63 / 0.4);
}

/* Info notice */
.qd-auth-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: rgb(54 45 122 / 0.05);
  border-radius: 0.6rem;
  font-size: 0.82rem;
  color: rgb(54 45 122 / 0.65);
  margin: 0;
}
.qd-auth-notice svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: 0.05rem; color: rgb(54 45 122 / 0.4); }

/* Switch line */
.qd-auth-switch {
  margin-top: 1.5rem;
  font-size: 0.82rem;
  color: rgb(54 45 122 / 0.5);
  text-align: center;
}
.qd-auth-switch__btn {
  background: none;
  border: none;
  font-size: inherit;
  font-family: inherit;
  font-weight: 700;
  color: #74BE00;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.qd-auth-switch__btn:hover { color: #5fa000; }

/* WooCommerce notices inside auth panels — inherit global notice styles */
.qd-auth-forms .woocommerce-error,
.qd-auth-forms .woocommerce-message,
.qd-auth-forms .woocommerce-info {
  margin-bottom: 1.25rem;
}

/* Business fields from wc-business-fields.php inside register form */
.qd-auth-form .qd-business-fields {
  background: rgb(241 244 248);
  border-radius: 0.75rem;
  padding: 1rem 1.25rem 1.25rem;
  border: 1px solid rgb(54 45 122 / 0.08);
}
.qd-auth-form .qd-business-fields legend {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgb(54 45 122 / 0.4);
  margin: 0.75rem 0 0.5rem;
  padding: 0;
  border: none;
}
.qd-auth-form .qd-business-fields .woocommerce-form-row {
  margin: 0;
}
.qd-auth-form .qd-business-fields .woocommerce-form-row label {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.7);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-bottom: 0.35rem;
}
/* ── My Account Dashboard ────────────────────────────────────────────────── */

/* Wrap: sidebar + content */
.qd-account-wrap {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 2rem;
  margin: 0 auto;
  /* padding: 4rem 1.5rem 4rem; */
  align-items: start;
}
@media (max-width: 1023px) {
  .qd-account-wrap {
    grid-template-columns: 1fr;
    /* padding-top: 5rem; */
  }
}

/* ── Sidebar ─────────────────────────────────────────────── */
.qd-sidenav {
  background: rgb(241 244 248);
  border: 1px solid rgb(54 45 122 / 0.12);
  border-radius: 1.25rem;
  overflow: hidden;
  position: sticky;
  top: 6rem;
}

.qd-sidenav__user {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem 1.25rem 1rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
  background: rgb(54 45 122 / 0.02);
}

.qd-sidenav__avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: #74BE00;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.qd-sidenav__avatar svg { width: 1.1rem; height: 1.1rem; }

.qd-sidenav__identity { min-width: 0; }
.qd-sidenav__identity strong {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgb(54 45 122);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qd-sidenav__identity span {
  display: block;
  font-size: 0.72rem;
  color: rgb(54 45 122 / 0.65);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qd-sidenav__list {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
}
.qd-sidenav__list li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.qd-sidenav__list { margin: 0; padding: 0; }

.qd-sidenav__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.75);
  text-decoration: none;
  transition: color 0.15s, background 0.15s;
  border-left: 3px solid transparent;
}
.qd-sidenav__link:hover {
  color: rgb(54 45 122);
  background: rgb(54 45 122 / 0.06);
}
.qd-sidenav__link.is-active {
  color: #4a7a00;
  font-weight: 700;
  border-left-color: #4a7a00;
  background: rgb(116 190 0 / 0.1);
}
.qd-sidenav__link.is-logout {
  color: rgb(220 38 38 / 0.75);
  margin-top: 0.25rem;
  border-top: 1px solid rgb(54 45 122 / 0.08);
}
.qd-sidenav__link.is-logout:hover { color: rgb(220 38 38); background: rgb(220 38 38 / 0.04); }

.qd-sidenav__icon { width: 1.1rem; height: 1.1rem; flex-shrink: 0; }

/* ── Dashboard content wrapper ───────────────────────────── */
.qd-account-content { min-width: 0; }

/* ── Account sub-forms (edit-account, billing, shipping) ────────────────── */

.qd-account-content .woocommerce h2,
.qd-account-content .woocommerce h3 {
  font-size: 1.2rem;
  font-weight: 800;
  color: rgb(54 45 122);
  /* margin: 0 0 1.25rem; */
}

/* Form card */
.qd-account-content .woocommerce form:not(.qd-cancel-form) {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  background: rgb(241 244 248);
  border: 1px solid rgb(54 45 122 / 0.09);
  border-radius: 1rem;
  padding: 2rem;
  float: none;
  width: auto;
}
@media (max-width: 680px) {
  .qd-account-content .woocommerce form:not(.qd-cancel-form) { padding: 1.25rem; }
}

/* Top spacing for address pages */
.qd-account-content .woocommerce .woocommerce-address-fields {
  margin-top: 1.5rem;
}

/* ── Address forms: 2-col grid on the field-wrapper div ── */
.qd-account-content .woocommerce .woocommerce-address-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
}
@media (max-width: 680px) {
  .qd-account-content .woocommerce .woocommerce-address-fields__field-wrapper {
    grid-template-columns: 1fr;
  }
}

/* Wide rows span both columns */
.qd-account-content .woocommerce .woocommerce-address-fields__field-wrapper .form-row-wide,
.qd-account-content .woocommerce .woocommerce-address-fields__field-wrapper .woocommerce-form-row--wide {
  grid-column: 1 / -1;
}

/* ── Edit-account form: 2-col grid directly on the form ── */
.qd-account-content .woocommerce form.woocommerce-EditAccountForm {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
}
@media (max-width: 680px) {
  .qd-account-content .woocommerce form.woocommerce-EditAccountForm {
    grid-template-columns: 1fr;
  }
}
.qd-account-content .woocommerce form.woocommerce-EditAccountForm h3,
.qd-account-content .woocommerce form.woocommerce-EditAccountForm fieldset,
.qd-account-content .woocommerce form.woocommerce-EditAccountForm .form-row-wide,
.qd-account-content .woocommerce form.woocommerce-EditAccountForm .woocommerce-form-row--wide,
.qd-account-content .woocommerce form.woocommerce-EditAccountForm > p:last-of-type,
.qd-account-content .woocommerce form.woocommerce-EditAccountForm .clear {
  grid-column: 1 / -1;
}

/* Individual form row — reset WC floats */
.qd-account-content .woocommerce form .form-row {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  float: none;
  width: auto;
}

/* Labels */
.qd-account-content .woocommerce form .form-row label {
  font-size: 0.78rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.7);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin: 0;
}
.qd-account-content .woocommerce form .form-row label .required {
  color: #74BE00;
  font-style: normal;
}

/* Inputs & selects — specificity beats WC's .woocommerce form .form-row .input-text */
.qd-account-content .woocommerce form .form-row input.input-text,
.qd-account-content .woocommerce form .form-row input[type="text"],
.qd-account-content .woocommerce form .form-row input[type="email"],
.qd-account-content .woocommerce form .form-row input[type="password"],
.qd-account-content .woocommerce form .form-row input[type="tel"],
.qd-account-content .woocommerce form .form-row select {
  width: 100%;
  padding: 0.7rem 1rem;
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  font-size: 0.9rem;
  font-family: inherit;
  color: rgb(54 45 122);
  background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
  box-sizing: border-box;
  appearance: none;
  box-shadow: none;
  float: none;
}
.qd-account-content .woocommerce form .form-row input.input-text::placeholder,
.qd-account-content .woocommerce form .form-row input[type="text"]::placeholder,
.qd-account-content .woocommerce form .form-row input[type="email"]::placeholder,
.qd-account-content .woocommerce form .form-row input[type="password"]::placeholder,
.qd-account-content .woocommerce form .form-row input[type="tel"]::placeholder {
  color: rgb(54 45 122 / 0.3);
}
.qd-account-content .woocommerce form .form-row input:focus,
.qd-account-content .woocommerce form .form-row select:focus {
  border-color: #74BE00;
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.12);
}

/* Password strength meter */
.qd-account-content .woocommerce form .woocommerce-password-strength {
  font-size: 0.78rem;
  border-radius: 0.4rem;
  margin-top: 0.25rem;
}

/* Fieldset (password change section in edit-account) */
.qd-account-content .woocommerce form fieldset {
  background: rgb(228 233 241);
  border: 1px solid rgb(54 45 122 / 0.09);
  border-radius: 0.75rem;
  padding: 1.25rem 1.25rem 0.75rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
  margin: 0;
}
@media (max-width: 680px) {
  .qd-account-content .woocommerce form fieldset { grid-template-columns: 1fr; }
}
.qd-account-content .woocommerce form fieldset legend {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgb(54 45 122 / 0.45);
  padding: 0 0.4rem;
  border: none;
  grid-column: 1 / -1;
}

/* Submit button — mirrors .ctei-btn-primary */
.qd-account-content .woocommerce form:not(.qd-cancel-form) button[type="submit"],
.qd-account-content .woocommerce form:not(.qd-cancel-form) input[type="submit"] {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 1.1rem;
  margin-top: 0.5rem;
  background-color: rgb(141 190 63);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  font-family: inherit;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  box-shadow: none;
  transition: background 0.15s;
}
.qd-account-content .woocommerce form:not(.qd-cancel-form) button[type="submit"]:hover,
.qd-account-content .woocommerce form:not(.qd-cancel-form) input[type="submit"]:hover {
  background-color: rgb(120 165 50);
  transform: none;
  box-shadow: none;
}
.qd-account-content .woocommerce form:not(.qd-cancel-form) button[type="submit"]:focus,
.qd-account-content .woocommerce form:not(.qd-cancel-form) input[type="submit"]:focus {
  outline: 2px solid transparent;
  box-shadow: 0 0 0 3px rgb(141 190 63 / 0.35);
}

/* ── Select2 overrides (WC replaces <select> with Select2 UI) ───────────── */
/* Scoped to our wrappers — specificity beats :where(.woocommerce) (0 spec) */

.qd-account-content .woocommerce .select2-container,
.qd-auth-forms .select2-container {
  width: 100% !important; /* Select2 sets inline width, must override */
}

/* The visible "input" box */
.qd-account-content .woocommerce .select2-container .select2-selection--single,
.qd-auth-forms .select2-container .select2-selection--single {
  height: auto;
  padding: 0.7rem 2.5rem 0.7rem 1rem;
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  background: #fff;
  box-shadow: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.qd-account-content .woocommerce .select2-container--open .select2-selection--single,
.qd-auth-forms .select2-container--open .select2-selection--single,
.qd-account-content .woocommerce .select2-container .select2-selection--single:focus,
.qd-auth-forms .select2-container .select2-selection--single:focus {
  border-color: #74BE00;
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.12);
}

/* Rendered text */
.qd-account-content .woocommerce .select2-container .select2-selection--single .select2-selection__rendered,
.qd-auth-forms .select2-container .select2-selection--single .select2-selection__rendered {
  font-size: 0.9rem;
  font-family: inherit;
  color: rgb(54 45 122);
  line-height: 1.5;
  padding: 0;
}

/* Placeholder color */
.qd-account-content .woocommerce .select2-container .select2-selection--single .select2-selection__placeholder,
.qd-auth-forms .select2-container .select2-selection--single .select2-selection__placeholder {
  color: rgb(54 45 122 / 0.3);
}

/* Arrow container */
.qd-account-content .woocommerce .select2-container .select2-selection--single .select2-selection__arrow,
.qd-auth-forms .select2-container .select2-selection--single .select2-selection__arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0.75rem;
  width: 16px;
  height: auto;
}
/* Arrow triangle — full override of WC's :where(.woocommerce) rule */
.qd-account-content .woocommerce .select2-container .select2-selection--single .select2-selection__arrow b,
.qd-auth-forms .select2-container .select2-selection--single .select2-selection__arrow b {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  margin-top: 0;
  margin-left: -5px;
  border-style: solid;
  border-width: 5px 5px 0;
  border-color: rgba(0,0,0,.25) transparent transparent;
}
.qd-account-content .woocommerce .select2-container--open .select2-selection--single .select2-selection__arrow b,
.qd-auth-forms .select2-container--open .select2-selection--single .select2-selection__arrow b {
  margin-top: -2px;
  border-width: 0 5px 5px;
  border-color: transparent transparent #74BE00;
}

/* Dropdown panel */
.select2-dropdown {
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  box-shadow: 0 8px 24px rgb(54 45 122 / 0.1);
  overflow: hidden;
}
.select2-search--dropdown .select2-search__field {
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.4rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-family: inherit;
  color: rgb(54 45 122);
  outline: none;
}
.select2-search--dropdown .select2-search__field:focus {
  border-color: #74BE00;
}
.select2-results__option {
  font-size: 0.875rem;
  font-family: inherit;
  color: rgb(54 45 122);
  padding: 0.55rem 1rem;
}
.select2-results__option--highlighted {
  background: #74BE00 !important;
  color: #fff !important;
}
.select2-results__option[aria-selected="true"] {
  background: rgb(116 190 0 / 0.1);
  color: rgb(54 45 122);
}

/* ── Addresses overview page ─────────────────────────────────────────────── */

/* Intro text */
.qd-account-content .woocommerce > p {
  font-size: 0.875rem;
  color: rgb(54 45 122 / 0.55);
  margin: 0 0 1.5rem;
}

/* 2-col grid */
.qd-account-content .woocommerce .woocommerce-Addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  float: none;
  width: auto;
}
@media (max-width: 680px) {
  .qd-account-content .woocommerce .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
}

/* Reset WC float columns */
.qd-account-content .woocommerce .woocommerce-Addresses .u-column1,
.qd-account-content .woocommerce .woocommerce-Addresses .u-column2 {
  float: none;
  width: auto;
  padding: 0;
}

/* Address card */
.qd-account-content .woocommerce .woocommerce-Address {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.09);
  border-radius: 1rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 12px rgb(54 45 122 / 0.05);
}

/* Card header — matches .qd-dash-card__header */
.qd-account-content .woocommerce .woocommerce-Address-title {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
  background: rgb(54 45 122 / 0.02);
  margin: 0;
}
.qd-account-content .woocommerce .woocommerce-Address-title h2 {
  flex: 1;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgb(54 45 122);
  text-transform: none;
  letter-spacing: 0;
}

/* Edit / Add link — ctei-btn-primary style */
.qd-account-content .woocommerce .woocommerce-Address-title a.edit {
  position: relative;
  overflow: hidden;
  display: inline-block;
  padding: 0.4rem 1rem;
  background-color: rgb(141 190 63);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 4px 10px -2px rgb(0 0 0 / 0.2);
  transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qd-account-content .woocommerce .woocommerce-Address-title a.edit::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: translateX(-200%);
  transition: transform 0.45s ease;
}
.qd-account-content .woocommerce .woocommerce-Address-title a.edit:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px -4px rgb(0 0 0 / 0.25);
}
.qd-account-content .woocommerce .woocommerce-Address-title a.edit:hover::before {
  transform: translateX(200%);
}

/* Address body */
.qd-account-content .woocommerce .woocommerce-Address address {
  padding: 1.25rem 1.5rem;
  font-size: 0.875rem;
  font-style: normal;
  line-height: 1.8;
  color: rgb(54 45 122 / 0.75);
  flex: 1;
}

/* Empty state */
.qd-account-content .woocommerce .woocommerce-Address address p,
.qd-account-content .woocommerce .woocommerce-Address address:not(:has(p)) {
  /* color: rgb(54 45 122 / 0.3); */
  font-style: italic;
  font-size: 0.82rem;
}

/* ── Hero banner ─────────────────────────────────────────── */
.qd-dash-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  background-color: #362d7a;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
  border-radius: 1.25rem;
  padding: 2rem 2rem 1.75rem;
  margin-bottom: 1.5rem;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.qd-dash-hero::after { display: none; }
.qd-dash-hero__eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgb(255 255 255 / 0.45);
  margin: 0 0 0.35rem;
}
h1.qd-dash-hero__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 800;
  margin: 0 0 0.5rem;
  color: #fff;
  text-transform: none;
  letter-spacing: -0.01em;
}
.qd-dash-hero__title span { color: #74BE00; }
.qd-dash-hero__company {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: rgb(255 255 255 / 0.6);
  margin: 0;
}
.qd-dash-hero__company svg { width: 0.9rem; height: 0.9rem; flex-shrink: 0; }

.qd-dash-hero__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.qd-dash-hero__meta span {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  color: rgb(255 255 255 / 0.5);
  white-space: nowrap;
}
.qd-dash-hero__meta span svg { width: 0.9rem; height: 0.9rem; }

.qd-dash-logout {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgb(255 255 255 / 0.45);
  text-decoration: none;
  transition: color 0.15s;
}
.qd-dash-logout svg { width: 0.85rem; height: 0.85rem; }
.qd-dash-logout:hover { color: rgb(220 38 38 / 0.8); }

@media (max-width: 640px) {
  .qd-dash-hero { flex-direction: column; }
  .qd-dash-hero__meta { align-items: flex-start; }
}

/* ── Stats row ───────────────────────────────────────────── */
.qd-dash-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 640px) {
  .qd-dash-stats { grid-template-columns: 1fr; }
}

.qd-dash-stat {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  background: rgb(54 45 122 / 0.05);
  border-radius: 1rem;
  padding: 1.1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  position: relative;
  overflow: hidden;
}

.qd-dash-stat__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qd-dash-stat__icon svg { width: 1.15rem; height: 1.15rem; }
.qd-dash-stat__icon--green { background: rgb(116 190 0 / 0.12); color: #74BE00; }
.qd-dash-stat__icon--blue  { background: rgb(54 45 122 / 0.1);  color: rgb(54 45 122); }
.qd-dash-stat__icon--purple{ background: rgb(90 67 206 / 0.1);  color: rgb(90 67 206); }

.qd-dash-stat__body { min-width: 0; flex: 1; }
.qd-dash-stat__num {
  display: block;
  font-size: 1.5rem;
  font-weight: 800;
  color: rgb(54 45 122);
  line-height: 1;
  margin-bottom: 0.15rem;
}
.qd-dash-stat__num--sm {
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qd-dash-stat__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.qd-dash-stat__bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgb(54 45 122 / 0.06);
}
.qd-dash-stat__bar-fill {
  height: 100%;
  background: #74BE00;
  transition: width 0.6s ease;
}

/* ── Two-col grid ────────────────────────────────────────── */
.qd-dash-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 768px) {
  .qd-dash-grid { grid-template-columns: 1fr; }
}

/* ── Cards ───────────────────────────────────────────────── */
.qd-dash-card {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1.25rem;
  overflow: hidden;
}
.qd-dash-card--full { margin-top: 0; }

.qd-dash-card__header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
  background: rgb(54 45 122 / 0.05);
}
.qd-dash-card__header svg { width: 1.4rem; height: 1.4rem; color: #74BE00; flex-shrink: 0; }
.qd-dash-card__header h2 {
  flex: 1;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgb(54 45 122);
  text-transform: none;
  letter-spacing: 0;
}
.qd-dash-card__edit, .qd-dash-card__see-all {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.4);
  text-decoration: none;
  transition: color 0.15s;
  flex-shrink: 0;
}
.qd-dash-card__edit svg { width: 1.2rem; height: 1.2rem; }
.qd-dash-card__see-all svg { width: 0.75rem; height: 0.75rem; }
.qd-dash-card__edit:hover, .qd-dash-card__see-all:hover { color: #74BE00; }

/* Definition list */
.qd-dash-card__dl { padding: 0.5rem 0; margin: 0; }
.qd-dash-card__row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.5rem 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.04);
}
.qd-dash-card__row:last-child { border-bottom: none; }
.qd-dash-card__row dt {
  width: 6.5rem;
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgb(54 45 122 / 0.35);
}
.qd-dash-card__row dd {
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.85);
  margin: 0;
  min-width: 0;
  word-break: break-word;
}
.qd-dash-card__empty {
  padding: 1.5rem 1.25rem;
  text-align: center;
}
.qd-dash-card__empty p {
  font-size: 0.85rem;
  color: rgb(54 45 122 / 0.4);
  margin: 0 0 0.75rem;
}
.qd-dash-cta-link {
  font-size: 0.85rem;
  font-weight: 700;
  color: #74BE00;
  text-decoration: none;
}
.qd-dash-cta-link:hover { text-decoration: underline; }

/* Quick actions */
.qd-dash-actions { padding: 0.5rem 0; }
.qd-dash-action {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1.25rem;
  text-decoration: none;
  border-bottom: 1px solid rgb(54 45 122 / 0.05);
  transition: background 0.15s;
}
.qd-dash-action:last-child { border-bottom: none; }
.qd-dash-action:hover { background: rgb(54 45 122 / 0.03); }
.qd-dash-action--green:hover { background: rgb(116 190 0 / 0.05); }

.qd-dash-action__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 0.6rem;
  background: rgb(54 45 122 / 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: rgb(54 45 122 / 0.6);
  transition: background 0.15s, color 0.15s;
}
.qd-dash-action__icon svg { width: 1.4rem; height: 1.4rem; }
.qd-dash-action:hover .qd-dash-action__icon { background: rgb(54 45 122 / 0.12); color: rgb(54 45 122); }
.qd-dash-action--green .qd-dash-action__icon { background: rgb(116 190 0 / 0.1); color: #74BE00; }
.qd-dash-action--green:hover .qd-dash-action__icon { background: rgb(116 190 0 / 0.18); }

.qd-dash-action__text { flex: 1; min-width: 0; }
.qd-dash-action__text strong {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgb(54 45 122 / 0.85);
}
.qd-dash-action__text span {
  display: block;
  font-size: 0.72rem;
  color: rgb(54 45 122 / 0.4);
}

.qd-dash-action__arrow { width: 0.9rem; height: 0.9rem; color: rgb(54 45 122 / 0.25); flex-shrink: 0; }
.qd-dash-action:hover .qd-dash-action__arrow { color: rgb(54 45 122 / 0.5); }

/* Recent orders table */
.qd-dash-orders { padding: 0; }
.qd-dash-order {
  display: grid;
  grid-template-columns: 4rem 1fr auto auto 1.5rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.05);
  text-decoration: none;
  transition: background 0.15s;
}
.qd-dash-order:last-child { border-bottom: none; }
.qd-dash-order:hover { background: rgb(54 45 122 / 0.02); }
@media (max-width: 640px) {
  .qd-dash-order { grid-template-columns: 4rem 1fr auto; }
  .qd-dash-order__name, .qd-dash-order__arrow { display: none; }
}
.qd-dash-order__num {
  font-size: 0.8rem;
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  color: rgb(54 45 122 / 0.5);
}
.qd-dash-order__name {
  font-size: 0.85rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.75);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qd-dash-order__date {
  font-size: 0.75rem;
  color: rgb(54 45 122 / 0.35);
  white-space: nowrap;
}
.qd-dash-order__status {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.6rem;
  border-radius: 2rem;
  white-space: nowrap;
}
.qd-dash-order__status--completed  { background: rgb(116 190 0 / 0.12);  color: #5a9600; }
.qd-dash-order__status--processing { background: rgb(54 45 122 / 0.1);   color: rgb(54 45 122); }
.qd-dash-order__status--pending, .qd-dash-order__status--checkout-draft    { background: rgb(234 179 8 / 0.15);  color: rgb(161 98 7); }
.qd-dash-order__status--cancelled  { background: rgb(239 68 68 / 0.1);   color: rgb(185 28 28); }
.qd-dash-order__status--on-hold    { background: rgb(249 115 22 / 0.1);  color: rgb(194 65 12); }
.qd-dash-order__status--refunded   { background: rgb(107 114 128 / 0.1); color: rgb(75 85 99); }
.qd-dash-order__status--failed     { background: rgb(239 68 68 / 0.1);   color: rgb(185 28 28); }
.qd-dash-order__arrow { width: 0.85rem; height: 0.85rem; color: rgb(54 45 122 / 0.2); }
.qd-dash-order:hover .qd-dash-order__arrow { color: rgb(54 45 122 / 0.5); }

/* ══════════════════════════════════════════════════════════════════════════
   WooCommerce Notices — global beautiful styles
   Covers: .woocommerce-error  .woocommerce-message  .woocommerce-info
   ══════════════════════════════════════════════════════════════════════════ */

/* Wrapper that WC injects */
.woocommerce-notices-wrapper {
  width: 100%;
}

/* ── Base notice ─────────────────────────────────────────────────────────── */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  list-style: none !important;
  margin: 0 0 1.25rem !important;
  padding: 1rem 1.25rem !important;
  border: none !important;
  border-radius: 0.875rem !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  font-family: inherit !important;
  position: relative;
  box-shadow: 0 2px 12px rgb(0 0 0 / 0.06);
}

/* Remove WC's default left-border style */
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
  display: none !important;
}

/* ── Error — red ─────────────────────────────────────────────────────────── */
.woocommerce-error {
  background: rgb(254 242 242) !important;
  border: 1px solid rgb(252 165 165 / 0.6) !important;
  color: rgb(153 27 27) !important;
}

/* Icon prepended via pseudo on each <li> */
.woocommerce-error > li,
.woocommerce-error {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0;
}
.woocommerce-error > li::before {
  content: '';
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.05rem;
  background-color: rgb(220 38 38);
  border-radius: 50%;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}
.woocommerce-error > li strong {
  color: rgb(185 28 28) !important;
  font-weight: 700;
}

/* When error is a bare <ul> with no children — rare but possible */
.woocommerce-error:not(:has(li)) {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

/* ── Success / message — green ───────────────────────────────────────────── */
.woocommerce-message {
  background: rgb(240 253 244) !important;
  border: 1px solid rgb(134 239 172 / 0.6) !important;
  color: rgb(20 83 45) !important;
}
.woocommerce-message::after {
  content: '';
  flex-shrink: 0;
  order: -1;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  background-color: rgb(22 163 74);
  border-radius: 50%;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}
.woocommerce-message strong {
  color: rgb(21 128 61) !important;
}
/* CTA button inside success messages */
.woocommerce-message a.button,
.woocommerce-message .button {
  margin-left: auto;
  flex-shrink: 0;
  align-self: center;
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 1rem;
  background: rgb(22 163 74);
  color: #fff !important;
  font-size: 0.8rem;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s;
}
.woocommerce-message a.button:hover,
.woocommerce-message .button:hover {
  background: rgb(21 128 61);
}

/* ── Info — navy/blue ────────────────────────────────────────────────────── */
.woocommerce-info {
  background: rgb(238 242 255) !important;
  border: 1px solid rgb(165 180 252 / 0.5) !important;
  color: rgb(54 45 122) !important;
}
.woocommerce-info::after {
  content: '';
  flex-shrink: 0;
  order: -1;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  background-color: rgb(54 45 122);
  border-radius: 50%;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}
.woocommerce-info a.button,
.woocommerce-info .button {
  margin-left: auto;
  flex-shrink: 0;
  align-self: center;
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 1rem;
  background: rgb(54 45 122);
  color: #fff !important;
  font-size: 0.8rem;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.2s;
}
.woocommerce-info a.button:hover,
.woocommerce-info .button:hover {
  background: rgb(74 60 160);
}

/* ══════════════════════════════════════════════════════════════════════════
   PRICING PAGE  (template-prix.php)
   ══════════════════════════════════════════════════════════════════════════ */

.qd-pricing-page {
  background: #f4f5f9;
}

/* container centering */
.qd-pricing-page .container,
.qd-wizard-page .container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
}

/* prevent grid blowout — children must not exceed their track */
.qd-modules-grid > * {
  min-width: 0;
}

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.qd-pricing-hero {
  position: relative;
  overflow: hidden;
  background-color: #362d7a;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
  padding: 10rem 0 6rem;
  text-align: center;
}
.qd-pricing-hero__bg-grid { display: none; }
.qd-pricing-hero__orb     { display: none; }
.qd-pricing-hero__orb--1  { display: none; }
.qd-pricing-hero__orb--2  { display: none; }
.qd-pricing-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.qd-pricing-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: rgb(116 190 0 / 0.15);
  border: 1px solid rgb(116 190 0 / 0.3);
  color: rgb(190 230 120);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 0.4rem 1rem;
  border-radius: 2rem;
}
.qd-pricing-hero__eyebrow svg {
  width: 0.9rem;
  height: 0.9rem;
  flex-shrink: 0;
}
.qd-pricing-hero__title {
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0;
  max-width: 700px;
}
.qd-pricing-hero__sub {
  font-size: 1.05rem;
  color: rgb(255 255 255 / 0.65);
  line-height: 1.7;
  max-width: 540px;
  margin: 0;
}
/* Badge strip */
.qd-pricing-hero__badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 0.5rem;
}
.qd-pricing-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: rgb(255 255 255 / 0.07);
  border: 1px solid rgb(255 255 255 / 0.12);
  color: rgb(255 255 255 / 0.75);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.4rem 0.875rem;
  border-radius: 2rem;
  backdrop-filter: blur(4px);
}
.qd-pricing-badge svg {
  width: 0.95rem;
  height: 0.95rem;
  color: #8dbe3f;
  flex-shrink: 0;
}

/* ── Modules complémentaires section ─────────────────────────────────────── */
.qd-modules-section {
  padding: 5rem 0 5rem;
  background: #fff;
  border-top: 1px solid rgb(54 45 122 / 0.07);
}
.qd-modules-section__head {
  text-align: center;
  margin-bottom: 3rem;
}
.qd-modules-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #8dbe3f;
  margin-bottom: 1rem;
}
.qd-modules-section__eyebrow svg {
  width: 1rem;
  height: 1rem;
}
.qd-modules-section__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #362d7a;
  margin-bottom: 0.625rem;
}
.qd-modules-section__sub {
  font-size: 1rem;
  color: rgb(54 45 122 / 0.6);
  max-width: 36rem;
  margin: 0 auto;
}
.qd-modules-grid {
  display: grid;
  gap: 1.25rem;
  /* default: 4 cols — overridden by data-count below */
  grid-template-columns: repeat(4, 1fr);
}

/* Desktop column counts — all use the same specificity (attribute selector) */
.qd-modules-grid[data-count="1"] { grid-template-columns: repeat(1, minmax(0, 480px)); }
.qd-modules-grid[data-count="2"] { grid-template-columns: repeat(2, 1fr); }
.qd-modules-grid[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
.qd-modules-grid[data-count="4"] { grid-template-columns: repeat(4, 1fr); }

/* ≤1200px: 4-col → 2-col */
@media (max-width: 1200px) {
  .qd-modules-grid[data-count="4"],
  .qd-modules-grid:not([data-count]) {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ≤860px: 3-col → 2-col */
@media (max-width: 860px) {
  .qd-modules-grid[data-count="3"] {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ≤580px: everything → 1-col */
@media (max-width: 580px) {
  .qd-modules-grid[data-count],
  .qd-modules-grid {
    grid-template-columns: 1fr;
  }
}
.qd-module-card {
  background: linear-gradient(145deg, rgb(244 245 252) 0%, rgb(250 251 255) 100%);
  border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1.25rem;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  box-shadow: 0 2px 20px rgb(54 45 122 / 0.05);
  transition: background 0.3s, border-color 0.25s, box-shadow 0.25s, transform 0.25s;
}
.qd-module-card {
  cursor: pointer;
}
.qd-module-card:hover {
  background: linear-gradient(145deg, rgb(238 241 255) 0%, rgb(246 248 255) 100%);
  border-color: rgb(141 190 63 / 0.4);
  box-shadow: 0 8px 32px rgb(141 190 63 / 0.12);
  transform: translateY(-2px);
}
.qd-module-card.is-active {
  border-color: rgb(116 190 0 / 0.65);
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.12), 0 8px 32px rgb(141 190 63 / 0.15);
  background: linear-gradient(145deg, rgb(242 250 230) 0%, rgb(250 255 244) 100%);
}
.qd-module-card__top {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}

/* Module toggle switch */
.qd-module-card__toggle {
  margin-left: auto;
  display: flex;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
}
.qd-module-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
}
.qd-module-toggle__track {
  width: 2.5rem;
  height: 1.375rem;
  background: rgb(54 45 122 / 0.15);
  border-radius: 999px;
  position: relative;
  transition: background 0.2s;
  display: block;
}
.qd-module-toggle__thumb {
  position: absolute;
  top: 3px; left: 3px;
  width: 1rem; height: 1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.2);
  transition: transform 0.2s;
}
.qd-module-toggle__input:checked + .qd-module-toggle__track {
  background: rgb(116 190 0);
}
.qd-module-toggle__input:checked + .qd-module-toggle__track .qd-module-toggle__thumb {
  transform: translateX(1.125rem);
}
.qd-module-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.875rem;
  background: rgb(141 190 63 / 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8dbe3f;
  flex-shrink: 0;
}
.qd-module-card__icon svg {
  width: 1.375rem;
  height: 1.375rem;
}
.qd-module-card__name {
  font-size: 1.1875rem;
  font-weight: 800;
  color: #362d7a;
  line-height: 1.25;
  margin: 0;
}
.qd-module-card__desc {
  font-size: 0.9375rem;
  color: rgb(54 45 122 / 0.7);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}
.qd-module-card__desc p {
  margin: 0 0 0.5em;
}
.qd-module-card__desc p:last-child {
  margin-bottom: 0;
}
/* Pricing block — 2-col row on desktop/tablet */
.qd-module-card__pricing {
  margin-top: auto;
  padding-top: 1.125rem;
  border-top: 1px solid rgb(54 45 122 / 0.08);
  display: flex;
  flex-wrap: wrap;
  /* flex-direction: row; */
  align-items: stretch;
  gap: 0.625rem;
}
/* Divider hidden in row layout */
.qd-module-card__divider {
  display: none;
}
/* Activation row — mirrors qd-plan__activation-row */
.qd-module-card__activation-row {
  flex: 1 1 120px;
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  background: rgb(116 190 0 / 0.07);
  border: 1px solid rgb(116 190 0 / 0.2);
  border-radius: 0.75rem;
  padding: 0.75rem 0.875rem;
}
.qd-module-card__activation-icon {
  width: 1.75rem;
  height: 1.75rem;
  background: rgb(116 190 0 / 0.15);
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qd-module-card__activation-icon svg {
  width: 0.9rem;
  height: 0.9rem;
  color: rgb(70 130 0);
}
.qd-module-card__activation-row > div {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.qd-module-card__act-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgb(70 120 0);
}
.qd-module-card__act-amount {
  font-size: 1rem;
  font-weight: 700;
  color: #362d7a;
  line-height: 1.3;
}
/* Monthly price block */
.qd-module-card__price-main {
  flex: 1 1 120px;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.625rem;
  background: rgb(54 45 122 / 0.04);
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 0.75rem;
  padding: 0.75rem 0.875rem;
}
/* Hide divider in 4-col grid — flex-wrap handles the layout */
.qd-modules-grid[data-count="4"] .qd-module-card__divider,
.qd-modules-grid:not([data-count]) .qd-module-card__divider {
  display: none;
}

@media (max-width: 580px) {
  .qd-module-card__pricing {
    flex-direction: column;
    gap: 0;
  }
  .qd-module-card__divider {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0;
  }
  .qd-module-card__divider::before,
  .qd-module-card__divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgb(54 45 122 / 0.08);
  }
  .qd-module-card__divider span {
    font-size: 1rem;
    font-weight: 800;
    color: rgb(54 45 122 / 0.2);
    padding: 0 0.25rem;
  }
  .qd-module-card__price-main {
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
  }
}
.qd-module-card__price-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
}
.qd-module-card__amount {
  font-size: 1.5rem;
  font-weight: 800;
  color: #362d7a;
  line-height: 1;
}
.qd-module-card__original {
  display: none;
  font-size: 0.9375rem;
  color: rgb(54 45 122 / 0.4);
  font-weight: 500;
  line-height: 1;
  text-decoration: line-through;
}
.qd-module-card__original.is-active {
  display: inline-block;
}
.qd-module-card__period {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  padding-top: 0.25rem;
}
.qd-module-card__period span:first-child {
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.55);
}
.qd-module-card__period span:last-child {
  font-size: 0.6875rem;
  color: rgb(54 45 122 / 0.35);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

/* ── Features intro section ───────────────────────────────────────────────── */
.qd-feat-section {
  background: rgb(244 245 249);
  padding: 5rem 0;
}
.qd-feat-section__head {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.qd-feat-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgb(116 190 0);
  background: rgb(116 190 0 / 0.1);
  border: 1px solid rgb(116 190 0 / 0.25);
  padding: 0.3rem 0.85rem;
  border-radius: 2rem;
}
.qd-feat-section__title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.qd-feat-section__sub {
  font-size: 1rem;
  color: rgb(54 45 122 / 0.55);
  margin: 0;
  line-height: 1.65;
  max-width: 480px;
}
.qd-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 900px) {
  .qd-feat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .qd-feat-grid { grid-template-columns: 1fr; }
}

/* Card */
.qd-feat-group {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 2px 12px rgb(54 45 122 / 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
}
.qd-feat-group:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 32px rgb(54 45 122 / 0.1);
}

/* Card header row: icon + title */
.qd-feat-group__header {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 1.25rem 1.25rem 1rem;
}
.qd-feat-group__icon {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgb(54 45 122) 0%, rgb(74 60 160) 100%);
  box-shadow: 0 4px 10px rgb(54 45 122 / 0.25);
}
.qd-feat-group__icon svg {
  width: 1.2rem;
  height: 1.2rem;
  color: #fff;
}
.qd-feat-group__title {
  font-size: 0.95rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0;
  line-height: 1.35;
  padding-top: 0.3rem;
}

/* Items list */
.qd-feat-group__items {
  list-style: none;
  margin: 0;
  padding: 0 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  border-top: 1px solid rgb(54 45 122 / 0.06);
  padding-top: 0.875rem;
}
.qd-feat-group__items li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.875rem;
  color: rgb(54 45 122 / 0.7);
  line-height: 1.5;
}
.qd-feat-group__items li::before {
  content: '';
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.125rem;
  border-radius: 50%;
  background-color: rgb(116 190 0);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

/* ── Plans section ────────────────────────────────────────────────────────── */
.qd-pricing-section {
  padding: 4rem 0 6rem;
}

/* ── Grid ─────────────────────────────────────────────────────────────────── */
.qd-pricing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  align-items: stretch;
}
/* 4 plans → 4 cols on large screens */
.qd-pricing__grid[data-count="4"] {
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 1200px) {
  .qd-pricing__grid[data-count="4"] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .qd-pricing__grid:not([data-count="4"]) { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .qd-pricing__grid,
  .qd-pricing__grid[data-count="4"] { grid-template-columns: 1fr; gap: 1rem; }
}
.qd-pricing-empty {
  text-align: center;
  color: rgb(54 45 122 / 0.4);
  font-size: 0.9rem;
  padding: 4rem 0;
}

/* ── Plan card base ───────────────────────────────────────────────────────── */
.qd-plan {
  background: #fff;
  border: 1.5px solid rgb(54 45 122 / 0.09);
  border-radius: 1.5rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 16px rgb(54 45 122 / 0.06), 0 1px 3px rgb(54 45 122 / 0.04);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.qd-plan:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgb(54 45 122 / 0.15), 0 4px 12px rgb(54 45 122 / 0.08);
}

/* ── Selected card state (configurator) ──────────────────────────────────── */
.qd-plan {
  cursor: pointer;
  position: relative;
}
.qd-plan.is-selected {
  border-color: rgb(116 190 0 / 0.7);
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.18), 0 20px 48px rgb(54 45 122 / 0.15), 0 4px 12px rgb(54 45 122 / 0.08);
  background: linear-gradient(160deg, rgb(248 252 240) 0%, rgb(255 255 255) 100%);
}
.qd-plan--recommended.is-selected {
  border-color: rgb(116 190 0 / 0.85);
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.25), 0 8px 40px rgb(54 45 122 / 0.4), 0 2px 8px rgb(0 0 0 / 0.15);
  background: linear-gradient(160deg, rgb(38 30 95) 0%, rgb(54 45 122) 60%, rgb(66 55 145) 100%);
}

/* Radio indicator dot */
.qd-plan__radio {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  border: 2px solid rgb(54 45 122 / 0.22);
  background: #fff;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.08);
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  flex-shrink: 0;
}
.qd-plan__radio::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: transparent;
  transition: background 0.2s;
}
.qd-plan.is-selected .qd-plan__radio {
  border-color: rgb(116 190 0);
  background: #fff;
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.15);
}
.qd-plan.is-selected .qd-plan__radio::after {
  background: rgb(116 190 0);
}
/* On recommended card: push radio below the badge (badge ~2.4rem tall) */
.qd-plan--recommended .qd-plan__radio {
  top: 3.75rem;
  border-color: rgb(255 255 255 / 0.35);
  background: rgb(255 255 255 / 0.12);
  box-shadow: none;
}
.qd-plan--recommended.is-selected .qd-plan__radio {
  border-color: rgb(116 190 0);
  background: rgb(255 255 255 / 0.15);
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.2);
}
.qd-plan--recommended.is-selected .qd-plan__radio::after {
  background: rgb(116 190 0);
}

/* ── Recommended card — dark navy ─────────────────────────────────────────── */
.qd-plan--recommended {
  background: linear-gradient(160deg, rgb(38 30 95) 0%, rgb(54 45 122) 60%, rgb(66 55 145) 100%);
  border-color: rgb(116 190 0 / 0.4);
  box-shadow: 0 8px 40px rgb(54 45 122 / 0.35), 0 2px 8px rgb(0 0 0 / 0.15);
}
.qd-plan--recommended:hover {
  box-shadow: 0 24px 56px rgb(54 45 122 / 0.45), 0 4px 12px rgb(0 0 0 / 0.2);
}

/* Recommended badge */
.qd-plan__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: linear-gradient(90deg, rgb(116 190 0), rgb(90 155 0));
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.55rem 1rem;
}
.qd-plan__badge svg {
  width: 0.85rem;
  height: 0.85rem;
  flex-shrink: 0;
  color: #fff9c4;
}

/* ── Card body ────────────────────────────────────────────────────────────── */
.qd-plan__body {
  padding: 1.75rem 1.75rem 4.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  flex: 1;
}

/* Plan name + desc */
.qd-plan__top { display: flex; flex-direction: column; gap: 0.3rem; }
.qd-plan__name {
  font-size: 1.4rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0;
  letter-spacing: -0.02em;
}
.qd-plan--recommended .qd-plan__name { color: #fff; }
.qd-plan__desc {
  font-size: 0.95rem;
  color: rgb(54 45 122 / 0.65);
  margin: 0;
  line-height: 1.6;
}
.qd-plan--recommended .qd-plan__desc { color: rgb(255 255 255 / 0.65); }

/* Activation row */
.qd-plan__activation-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: rgb(116 190 0 / 0.08);
  border: 1.5px solid rgb(116 190 0 / 0.22);
  border-radius: 0.875rem;
  padding: 0.875rem 1rem;
}
.qd-plan--recommended .qd-plan__activation-row {
  background: rgb(116 190 0 / 0.12);
  border-color: rgb(116 190 0 / 0.35);
}
.qd-plan__activation-icon {
  width: 2rem;
  height: 2rem;
  background: rgb(116 190 0 / 0.15);
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qd-plan__activation-icon svg {
  width: 1rem;
  height: 1rem;
  color: rgb(90 150 0);
}
.qd-plan--recommended .qd-plan__activation-icon svg { color: rgb(160 220 60); }
.qd-plan__activation-row > div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.qd-plan__activation-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgb(70 120 0);
}
.qd-plan--recommended .qd-plan__activation-label { color: rgb(160 220 60); }
.qd-plan__activation-text {
  font-size: 1rem;
  font-weight: 700;
  color: rgb(54 45 122);
  line-height: 1.4;
}
.qd-plan--recommended .qd-plan__activation-text { color: #fff; }

/* Plus divider */
.qd-plan__divider {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: -0.5rem 0;
}
.qd-plan__divider::before,
.qd-plan__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgb(54 45 122 / 0.08);
  margin-top: 7px;
}
.qd-plan--recommended .qd-plan__divider::before,
.qd-plan--recommended .qd-plan__divider::after {
  background: rgb(255 255 255 / 0.1);
}
.qd-plan__divider span {
  font-size: 1.5rem;
  font-weight: 800;
  color: rgb(54 45 122 / 0.25);
  line-height: 1;
  padding: 0 0.25rem;
}
.qd-plan--recommended .qd-plan__divider span { color: rgb(255 255 255 / 0.3); }

/* Monthly price block */
.qd-plan__price-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.qd-plan__price {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
/* Amount + strikethrough stack vertically; period-wrap stays beside */
.qd-plan__price-inner {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.qd-plan__amount {
  font-size: 3rem;
  font-weight: 800;
  color: rgb(54 45 122);
  line-height: 1;
  letter-spacing: -0.03em;
}
.qd-plan--recommended .qd-plan__amount { color: #fff; }
.qd-plan__regular-price {
  font-size: 1rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.4);
  text-decoration: line-through;
  line-height: 1;
}
.qd-plan--recommended .qd-plan__regular-price { color: rgba(255 255 255 / 0.4); }

/* ── Duration toggle ──────────────────────────────────────────────────────── */
.qd-duration-toggle {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 2.5rem;
  background: rgb(54 45 122 / 0.06);
  border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem;
  padding: 0.375rem;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.qd-duration-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  border-radius: 0.75rem;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.6);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .qd-duration-toggle {
    width: 100%;
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 0.75rem;
  }
  .qd-duration-btn {
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.5rem 0.25rem;
    font-size: 0.75rem;
    border-radius: 0.5rem;
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }
  .qd-duration-btn__badge {
    font-size: 0.65rem;
    padding: 0.1rem 0.35rem;
  }
}
.qd-duration-btn:hover {
  color: rgb(54 45 122 / 0.9);
  background: rgb(54 45 122 / 0.05);
}
.qd-duration-btn.is-active {
  background: #fff;
  color: rgb(54 45 122);
  font-weight: 700;
  box-shadow: 0 2px 8px rgb(54 45 122 / 0.12);
}
.qd-duration-btn__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.45rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 700;
  background: rgb(141 190 63 / 0.15);
  color: #5a9800;
  letter-spacing: 0.02em;
}
.qd-duration-btn.is-active .qd-duration-btn__badge {
  background: rgb(141 190 63 / 0.2);
  color: #4a8000;
}

/* ── Checkout discount row ────────────────────────────────────────────────── */
.qd-checkout__tax-row--discount dt,
.qd-checkout__tax-row--discount dd {
  color: #5a9800;
  font-weight: 700;
}

.qd-plan__activation-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

/* ── Step 2 — discounted activation price ────────────────────────────────── */
.qd-wizard-plan-card__amount--discounted {
  color: #5a9800;
}
.qd-wizard-plan-card__amount-original {
  font-size: 0.9rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.4);
  text-decoration: line-through;
  margin-left: 0.25rem;
}
.qd-wizard-plan-card__engagement-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.5rem;
  padding: 0.3rem 0.75rem;
  border-radius: 9999px;
  background: rgb(141 190 63 / 0.12);
  border: 1px solid rgb(141 190 63 / 0.3);
  font-size: 1rem;
  font-weight: 700;
  color: #4a8000;
}
.qd-wizard-plan-card__engagement-badge svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* ── Savings breakdown block ─────────────────────────────────────────────── */
.qd-wizard-savings {
  margin-top: 0.75rem;
  background: rgb(255 255 255 / 0.05);
  border: 1px solid rgb(255 255 255 / 0.1);
  border-radius: 0.75rem;
  overflow: hidden;
}
.qd-wizard-savings__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0.875rem;
  font-size: 0.875rem;
  color: rgb(255 255 255 / 0.55);
  border-bottom: 1px solid rgb(255 255 255 / 0.07);
}
.qd-wizard-savings__crossed {
  font-weight: 600;
  text-decoration: line-through;
  color: rgb(255 255 255 / 0.35);
}
.qd-wizard-savings__row--discounted {
  color: rgb(255 255 255 / 0.85);
  background: rgb(116 190 0 / 0.08);
}
.qd-wizard-savings__price {
  font-size: 1rem;
  font-weight: 800;
  color: rgb(160 220 60);
}
.qd-wizard-savings__badge {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.625rem 0.875rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgb(160 220 60);
  background: rgb(116 190 0 / 0.12);
}
.qd-wizard-savings__badge svg {
  width: 1rem; height: 1rem; flex-shrink: 0;
}
.qd-wizard-savings__badge strong {
  font-weight: 800;
  color: #fff;
}

.qd-wizard-plan-card__taxes-discount dt,
.qd-wizard-plan-card__taxes-discount dd {
  color: #5a9800;
  font-weight: 700;
}

/* ── Order subscription info block (My Account + Admin) ──────────────────── */
.qd-order-subscription {
  margin-top: 2rem;
  border: 1px solid rgba(54 45 122 / 0.1);
  border-radius: 0.75rem;
  padding: 1.25rem 1.5rem;
  background: rgb(54 45 122 / 0.03);
}
.qd-order-subscription h3 {
  font-size: 1rem;
  font-weight: 700;
  color: rgb(54 45 122);
  margin: 0 0 0.875rem;
}
.qd-order-subscription__table {
  width: 100%;
  border-collapse: collapse;
}
.qd-order-subscription__table th,
.qd-order-subscription__table td {
  padding: 0.4rem 0;
  font-size: 0.9rem;
  border: none;
  vertical-align: top;
}
.qd-order-subscription__table th {
  color: rgb(54 45 122 / 0.55);
  font-weight: 600;
  width: 40%;
  padding-right: 1rem;
}
.qd-order-subscription__table td {
  color: rgb(54 45 122);
  font-weight: 500;
}
.qd-plan__amount .woocommerce-Price-currencySymbol {
  font-size: 1.4rem;
  font-weight: 700;
  vertical-align: super;
  line-height: 1;
}
.qd-plan__period-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 0.4rem;
  gap: 0.15rem;
}
.qd-plan__period-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.6);
  line-height: 1.2;
}
.qd-plan--recommended .qd-plan__period-label { color: rgb(255 255 255 / 0.6); }
.qd-plan__period-sub {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgb(54 45 122 / 0.4);
}
.qd-plan--recommended .qd-plan__period-sub { color: rgb(255 255 255 / 0.4); }

/* CTA button */
.qd-plan__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 1.5rem;
  border-radius: 0.875rem;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgb(116 190 0) 0%, rgb(90 155 0) 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgb(116 190 0 / 0.35);
}
.qd-plan--recommended .qd-plan__cta {
  background: #fff;
  color: rgb(54 45 122);
  box-shadow: 0 4px 20px rgb(0 0 0 / 0.2);
}
.qd-plan__cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.28), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}
.qd-plan__cta:hover { transform: translateY(-2px); }
.qd-plan__cta:hover { box-shadow: 0 8px 24px rgb(116 190 0 / 0.45); color: #fff; }
.qd-plan--recommended .qd-plan__cta:hover {
  box-shadow: 0 8px 28px rgb(0 0 0 / 0.25);
  color: rgb(54 45 122);
}
.qd-plan__cta:hover::before { transform: translateX(100%); }
.qd-plan__cta svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  transition: transform 0.2s;
}
.qd-plan__cta:hover svg { transform: translateX(3px); }

/* Features list */
.qd-plan__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  border-top: 1px solid rgb(54 45 122 / 0.07);
  padding-top: 1.25rem;
}
.qd-plan--recommended .qd-plan__features {
  border-top-color: rgb(255 255 255 / 0.1);
}
.qd-plan__features li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.95rem;
  color: rgb(54 45 122 / 0.82);
  line-height: 1.5;
}
.qd-plan--recommended .qd-plan__features li { color: rgb(255 255 255 / 0.85); }
.qd-plan__feature-icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  background: rgb(116 190 0 / 0.12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.05rem;
}
.qd-plan--recommended .qd-plan__feature-icon {
  background: rgb(116 190 0 / 0.2);
}
.qd-plan__feature-icon svg {
  width: 0.65rem;
  height: 0.65rem;
  color: rgb(90 150 0);
}
.qd-plan--recommended .qd-plan__feature-icon svg { color: rgb(160 220 60); }


/* ══ OPTIONS SUPPLÉMENTAIRES ════════════════════════════════════════════════ */
.qd-options-section {
  padding: 4rem 0 3rem;
  background: rgb(248 249 252);
  border-top: 1px solid rgb(54 45 122 / 0.07);
}
.qd-options-section__head {
  text-align: center;
  margin-bottom: 2.5rem;
}
.qd-options-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(116 190 0);
  margin-bottom: 0.75rem;
}
.qd-options-section__eyebrow svg {
  width: 1rem; height: 1rem;
}
.qd-options-section__title {
  font-size: 1.75rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}
.qd-options-section__sub {
  font-size: 1rem;
  color: rgb(54 45 122 / 0.6);
  margin: 0;
}

/* Grid */
.qd-options-grid {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  max-width: 760px;
  margin: 0 auto;
}

/* Option card base */
.qd-option-card {
  background: #fff;
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.qd-option-card.is-active {
  border-color: rgb(116 190 0 / 0.6);
  box-shadow: 0 0 0 3px rgb(116 190 0 / 0.1);
}

/* Card main row */
.qd-option-card__main {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.qd-option-card__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.qd-option-card__name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: rgb(54 45 122);
  line-height: 1.3;
}
.qd-option-card__desc {
  font-size: 0.8125rem;
  color: rgb(54 45 122 / 0.55);
  line-height: 1.4;
}
.qd-option-card__desc p { margin: 0 0 0.25rem; }
.qd-option-card__desc p:last-child { margin-bottom: 0; }
.qd-option-card__desc ul,
.qd-option-card__desc ol {
  margin: 0.25rem 0 0;
  padding-left: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.qd-option-card__desc li { margin: 0; }

/* Price column */
.qd-option-card__price-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
}
.qd-option-card__amount {
  font-size: 1.0625rem;
  font-weight: 800;
  color: rgb(54 45 122);
  line-height: 1.1;
}
.qd-option-card__qty-unit {
  display: block;
  font-size: 0.75rem;
  color: rgb(54 45 122 / 0.5);
  font-weight: 500;
}
.qd-option-card__period {
  font-size: 0.75rem;
  color: rgb(54 45 122 / 0.5);
  font-weight: 500;
}

/* Toggle switch */
.qd-option-card__toggle {
  display: flex;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
}
.qd-option-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
}
.qd-option-toggle__track {
  width: 2.5rem;
  height: 1.375rem;
  background: rgb(54 45 122 / 0.15);
  border-radius: 999px;
  position: relative;
  transition: background 0.2s;
  display: block;
}
.qd-option-toggle__thumb {
  position: absolute;
  top: 3px; left: 3px;
  width: 1rem; height: 1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.2);
  transition: transform 0.2s;
}
.qd-option-toggle__input:checked + .qd-option-toggle__track {
  background: rgb(116 190 0);
}
.qd-option-toggle__input:checked + .qd-option-toggle__track .qd-option-toggle__thumb {
  transform: translateX(1.125rem);
}

/* Quantity counter */
.qd-option-card__qty-ctrl {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.qd-option-qty__btn {
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  border: 1.5px solid rgb(54 45 122 / 0.2);
  background: #fff;
  color: rgb(54 45 122);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, background 0.15s;
}
.qd-option-qty__btn:hover {
  border-color: rgb(116 190 0);
  background: rgb(116 190 0 / 0.08);
}
.qd-option-qty__val {
  font-size: 1rem;
  font-weight: 700;
  color: rgb(54 45 122);
  min-width: 1.5rem;
  text-align: center;
}

/* Radio group card */
.qd-option-card--radio-group {
  padding: 1rem 1.25rem 0.75rem;
}
.qd-option-card__group-head {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-bottom: 0.875rem;
}
.qd-option-radio-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.qd-option-radio-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.875rem;
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 0.625rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.qd-option-radio-item:hover {
  border-color: rgb(116 190 0 / 0.4);
  background: rgb(116 190 0 / 0.03);
}
.qd-option-radio-item input[type="radio"] {
  position: absolute;
  opacity: 0; width: 0; height: 0;
}
.qd-option-radio-item__dot {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  border: 2px solid rgb(54 45 122 / 0.25);
  flex-shrink: 0;
  position: relative;
  transition: border-color 0.15s;
}
.qd-option-radio-item__dot::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: transparent;
  transition: background 0.15s;
}
.qd-option-radio-item:has(input:checked) {
  border-color: rgb(116 190 0 / 0.6);
  background: rgb(116 190 0 / 0.05);
}
.qd-option-radio-item:has(input:checked) .qd-option-radio-item__dot {
  border-color: rgb(116 190 0);
}
.qd-option-radio-item:has(input:checked) .qd-option-radio-item__dot::after {
  background: rgb(116 190 0);
}
.qd-option-radio-item__label {
  flex: 1;
  font-size: 0.9rem;
  font-weight: 600;
  color: rgb(54 45 122);
}
.qd-option-radio-item__price {
  font-size: 0.875rem;
  font-weight: 700;
  color: rgb(54 45 122 / 0.7);
  white-space: nowrap;
}
.qd-option-radio-item:has(input:checked) .qd-option-radio-item__price {
  color: rgb(90 150 0);
}

@media (max-width: 580px) {
  .qd-option-card__main { flex-wrap: wrap; }
  .qd-option-card__price-col { order: 3; }
  .qd-option-card__qty-ctrl,
  .qd-option-card__toggle { margin-left: auto; }
}

/* ══ PLAN REQUIRED TOAST ════════════════════════════════════════════════════ */
.qd-plan-toast {
  position: fixed;
  bottom: 6rem;
  left: 50%;
  transform: translateX(-50%) translateY(16px);
  z-index: 1100;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgb(38 30 95);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  padding: 1rem 1.75rem;
  border-radius: 1rem;
  border-left: 4px solid rgb(234 88 12);
  box-shadow: 0 16px 48px rgb(0 0 0 / 0.3), 0 4px 12px rgb(0 0 0 / 0.15);
  max-width: 90vw;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, transform 0.3s;
}
.qd-plan-toast svg {
  width: 1.5rem; height: 1.5rem;
  color: rgb(234 88 12);
  flex-shrink: 0;
}
.qd-plan-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* ══ STICKY SUMMARY BAR ════════════════════════════════════════════════════ */
.qd-summary-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 999;
  background: linear-gradient(135deg, rgb(30 24 80) 0%, rgb(54 45 122) 100%);
  box-shadow: 0 -6px 32px rgb(0 0 0 / 0.35), 0 -1px 0 rgb(255 255 255 / 0.06);
  transform: translateY(110%);
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qd-summary-bar.is-visible {
  transform: translateY(0);
}
.qd-summary-bar__hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: rgb(116 190 0 / 0.15);
  border-bottom: 1px solid rgb(116 190 0 / 0.2);
  padding: 0.4rem 1rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: rgb(180 230 100);
  letter-spacing: 0.01em;
}
.qd-summary-bar__hint svg {
  width: 0.875rem; height: 0.875rem;
  flex-shrink: 0;
  animation: qd-bounce-down 1.4s ease-in-out infinite;
}
@keyframes qd-bounce-down {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(3px); }
}
.qd-summary-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1.125rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.qd-summary-bar__left {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.qd-summary-bar__plan-name {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(180 230 100);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qd-summary-bar__totals {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.qd-summary-bar__total-item {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.qd-summary-bar__label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(255 255 255 / 0.45);
}
.qd-summary-bar__value {
  font-size: 1.125rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.01em;
}
.qd-summary-bar__sep {
  font-size: 1.25rem;
  font-weight: 300;
  color: rgb(255 255 255 / 0.25);
  margin-top: 0.75rem;
}
.qd-summary-bar__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgb(116 190 0);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  padding: 0.875rem 1.75rem;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 20px rgb(116 190 0 / 0.45), 0 0 0 0 rgb(116 190 0 / 0.4);
  animation: qd-cta-pulse 2.5s ease-in-out infinite;
}
@keyframes qd-cta-pulse {
  0%, 100% { box-shadow: 0 4px 20px rgb(116 190 0 / 0.45), 0 0 0 0 rgb(116 190 0 / 0.35); }
  50%       { box-shadow: 0 4px 20px rgb(116 190 0 / 0.45), 0 0 0 8px rgb(116 190 0 / 0); }
}
.qd-summary-bar__cta svg {
  width: 1.1rem; height: 1.1rem; flex-shrink: 0;
}
.qd-summary-bar__cta:hover {
  background: rgb(100 170 0);
  transform: translateY(-2px);
  color: #fff;
  animation: none;
  box-shadow: 0 8px 28px rgb(116 190 0 / 0.5);
}
.qd-summary-bar__cta--disabled {
  opacity: 0.35;
  pointer-events: none;
  cursor: not-allowed;
  animation: none;
}

@media (max-width: 640px) {
  .qd-summary-bar__hint {
    font-size: 0.75rem;
    padding: 0.35rem 1rem;
    text-align: center;
  }
  .qd-summary-bar__inner {
    flex-direction: column;
    gap: 0.75rem;
    padding-top: 0.875rem;
    padding-bottom: 1.125rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .qd-summary-bar__left { width: 100%; }
  .qd-summary-bar__totals { width: 100%; justify-content: flex-start; gap: 2rem; }
  .qd-summary-bar__cta { width: 100%; justify-content: center; font-size: 1rem; padding: 0.9rem 1rem; }
}

/* ── Trust footer below grid ──────────────────────────────────────────────── */
.qd-pricing-footer {
  margin-top: 2.5rem;
  text-align: center;
}
.qd-pricing-footer p {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: rgb(54 45 122 / 0.4);
}
.qd-pricing-footer p svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════════════════
   ORDERS TABLE  (My Account → Commandes)
   ══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   My Orders — Card layout
   The WC table is reshaped into one card per row using CSS display overrides.
   Max 3 orders expected (one per plan).
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hide the real table structure */
.qd-account-content .woocommerce-orders-table {
  display: block;
  width: 100%;
  border: 0;
  border-collapse: unset;
  border-spacing: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.qd-account-content .woocommerce-orders-table thead {
  display: none;
}
.qd-account-content .woocommerce-orders-table tbody {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Each row = one card */
.qd-account-content .woocommerce-orders-table__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 0;
  background: #fff;
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 1.25rem;
  overflow: hidden;
  transition: box-shadow 0.15s;
}
.qd-account-content .woocommerce-orders-table__row:hover {
  box-shadow: 0 4px 20px rgb(54 45 122 / 0.08);
}

/* All cells reset */
.qd-account-content .woocommerce-orders-table__cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.1rem 1.25rem;
  font-size: 0.875rem;
  color: #6b6b9a;
  border: none;
  vertical-align: unset;
}
.qd-account-content .woocommerce-orders-table__cell::before {
  content: attr(data-title);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #9a9ab8;
  margin-bottom: 0.25rem;
}

/* ── Order number — top-left ─────────────────────────────────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-number {
  grid-column: 1;
  grid-row: 1;
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
}
.qd-account-content .woocommerce-orders-table__cell-order-number a {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e1b4b;
  text-decoration: none;
}
.qd-account-content .woocommerce-orders-table__cell-order-number a:hover {
  color: #362d7a;
}

/* ── Plan name — top-right ───────────────────────────────────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-plan {
  grid-column: 2;
  grid-row: 1;
  border-left: 1px solid rgb(54 45 122 / 0.06);
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
}
.qd-orders-card__plan-name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1e1b4b;
  display: block;
}
.qd-orders-card__plan-duration {
  display: inline-block;
  align-self: flex-start;
  width: fit-content;
  font-size: 0.7rem;
  font-weight: 700;
  color: #15803d;
  background: rgb(21 128 61 / 0.1);
  border-radius: 999px;
  padding: 0.1rem 0.5rem;
  margin-top: 0.2rem;
}
.qd-orders-card__no-plan { color: #9a9ab8; }

/* ── Date — bottom-left ──────────────────────────────────────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-date {
  grid-column: 1;
  grid-row: 2;
}
.qd-account-content .woocommerce-orders-table__cell-order-date time {
  font-size: 0.875rem;
  font-weight: 500;
  color: #4b4980;
}

/* ── Status — hidden (we show it inside total cell) ──────────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-status {
  display: none;
}

/* ── Total — bottom-right (shows total + status badge) ───────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-total {
  grid-column: 2;
  grid-row: 2;
  border-left: 1px solid rgb(54 45 122 / 0.06);
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.qd-account-content .woocommerce-orders-table__cell-order-total::before {
  display: none; /* label hidden — amount speaks for itself */
}
.qd-account-content .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount {
  font-size: 1.1rem;
  font-weight: 800;
  color: #362d7a;
}

/* ── Actions — full-width bottom bar ─────────────────────────────────────── */
.qd-account-content .woocommerce-orders-table__cell-order-actions {
  grid-column: 1 / -1;
  grid-row: 3;
  flex-direction: row;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.25rem;
  background: rgb(54 45 122 / 0.025);
  border-top: 1px solid rgb(54 45 122 / 0.07);
}
.qd-account-content .woocommerce-orders-table__cell-order-actions::before {
  display: none;
}
.qd-account-content .woocommerce-orders-table__cell-order-actions .woocommerce-button,
.qd-account-content .woocommerce-orders-table__cell-order-actions .button {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
  background: transparent;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.3);
  box-shadow: none;
  margin: 0;
}
.qd-account-content .woocommerce-orders-table__cell-order-actions .woocommerce-button:hover,
.qd-account-content .woocommerce-orders-table__cell-order-actions .button:hover {
  background: #362d7a;
  color: #fff;
  border-color: #362d7a;
}
.qd-account-content .woocommerce-orders-table__cell-order-actions .view {
  background: #362d7a;
  color: #fff;
  border-color: #362d7a;
}
.qd-account-content .woocommerce-orders-table__cell-order-actions .view:hover {
  background: #4a3fa0;
  border-color: #4a3fa0;
}
.woocommerce-button.button.invoice.order-actions-button {
  background: transparent;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.3);
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.15s;
  margin: 0;
}
.woocommerce-button.button.invoice.order-actions-button:hover {
  background: #362d7a;
  color: #fff;
  border-color: #362d7a;
}

/* ── Empty state notice ──────────────────────────────────────────────────── */
.qd-account-content .woocommerce-info {
  border-radius: 1rem;
  border-left: 4px solid rgb(54 45 122 / 0.3);
  background: rgb(54 45 122 / 0.04);
  color: rgb(54 45 122 / 0.7);
  font-size: 0.95rem;
  padding: 1rem 1.25rem;
}

/* ── Pagination ──────────────────────────────────────────────────────────── */
.qd-account-content .woocommerce-pagination {
  display: flex;
  gap: 0.5rem;
  margin-top: 1.25rem;
  justify-content: center;
}
.qd-account-content .woocommerce-pagination .woocommerce-button {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.25rem;
  border-radius: 0.6rem;
  font-size: 0.85rem;
  font-weight: 700;
  background: #fff;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.15);
  text-decoration: none;
  transition: background 0.15s;
}
.qd-account-content .woocommerce-pagination .woocommerce-button:hover {
  background: #362d7a;
  color: #fff;
}

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width: 540px) {
  .qd-account-content .woocommerce-orders-table__row {
    grid-template-columns: 1fr;
  }
  .qd-account-content .woocommerce-orders-table__cell-order-number,
  .qd-account-content .woocommerce-orders-table__cell-order-plan,
  .qd-account-content .woocommerce-orders-table__cell-order-date,
  .qd-account-content .woocommerce-orders-table__cell-order-total {
    grid-column: 1;
    border-left: none;
  }
  .qd-account-content .woocommerce-orders-table__cell-order-plan { grid-row: 2; }
  .qd-account-content .woocommerce-orders-table__cell-order-date { grid-row: 3; }
  .qd-account-content .woocommerce-orders-table__cell-order-total { grid-row: 4; flex-direction: column; align-items: flex-start; }
  .qd-account-content .woocommerce-orders-table__cell-order-actions { grid-row: 5; }
}

/* ══════════════════════════════════════════════════════════════════════════
   RESERVATION WIZARD  (template-reserver.php)
   ══════════════════════════════════════════════════════════════════════════ */

.qd-wizard-page {
  min-height: 100vh;
  background: #f4f5f9;
  padding-top: 5rem; /* clear sticky site header */
}

/* ── Hero band ─────────────────────────────────────────────────────────────── */
.qd-wizard-hero {
  position: relative;
  overflow: hidden;
  background-color: #362d7a;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
  padding: 3rem 1.5rem 2.5rem;
}
.qd-wizard-hero__bg-grid { display: none; }
.qd-wizard-hero__orb     { display: none; }
.qd-wizard-hero__orb--1  { display: none; }
.qd-wizard-hero__orb--2  { display: none; }
.qd-wizard-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* Plan info pill */
.qd-wizard-header__plan {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem 0.6rem;
  font-size: 1rem;
  color: rgb(255 255 255 / 0.65);
  background: rgb(255 255 255 / 0.07);
  border: 1px solid rgb(255 255 255 / 0.12);
  border-radius: 2rem;
  padding: 0.35rem 1rem;
  margin: 0;
  width: fit-content;
}
.qd-wizard-header__plan strong {
  color: #fff;
  font-weight: 700;
}
.qd-wizard-header__plan .woocommerce-Price-amount {
  color: #8dbe3f;
  font-weight: 700;
}
.qd-wizard-header__sep { color: rgb(255 255 255 / 0.3); }
.qd-wizard-header__freq { color: rgb(255 255 255 / 0.45); font-size: 0.75rem; }
.qd-wizard-header__change {
  margin-left: 0.5rem;
  font-size: 0.8rem;
  color: rgb(141 190 63);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.15s;
}
.qd-wizard-header__change:hover { color: #8dbe3f; }
/* Page title & step sub */
.qd-wizard-hero__title {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
  text-transform: none;
}
.qd-wizard-hero__sub {
  font-size: 0.95rem;
  color: rgb(255 255 255 / 0.55);
  margin: 0;
}
.qd-wizard-hero__sub strong { color: rgb(255 255 255 / 0.9); font-weight: 700; }

/* ── Step indicator ────────────────────────────────────────────────────────── */
.qd-wizard-steps {
  padding: 1.75rem 0 0;
  display: flex;
  align-items: flex-start;
  max-width: 480px; /* keep dots compact even on wide screens */
}
.qd-wizard-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  position: relative;
  flex: 1;
}
.qd-wizard-step__dot {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
  background: rgb(54 45 122 / 0.1);
  color: rgb(54 45 122 / 0.4);
  border: 2px solid rgb(54 45 122 / 0.15);
  transition: all 0.2s;
  position: relative;
  z-index: 1;
}
.qd-wizard-step__dot svg {
  width: 1rem;
  height: 1rem;
}
.qd-wizard-step.is-active .qd-wizard-step__dot {
  background: rgb(54 45 122);
  color: #fff;
  border-color: rgb(54 45 122);
  box-shadow: 0 0 0 4px rgb(54 45 122 / 0.12);
}
.qd-wizard-step.is-done .qd-wizard-step__dot {
  background: #74BE00;
  color: #fff;
  border-color: #74BE00;
}
.qd-wizard-step__label {
  font-size: 0.72rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.4);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  text-align: center;
}
.qd-wizard-step.is-active .qd-wizard-step__label,
.qd-wizard-step.is-done .qd-wizard-step__label {
  color: rgb(54 45 122 / 0.75);
}
/* Connector line between dots */
.qd-wizard-step__line {
  position: absolute;
  top: 1rem;
  left: 50%;
  width: 100%;
  height: 2px;
  background: rgb(54 45 122 / 0.1);
  z-index: 0;
}
.qd-wizard-step.is-done .qd-wizard-step__line {
  background: #74BE00;
}

/* ── Body ──────────────────────────────────────────────────────────────────── */
.qd-wizard-body {
  padding: 2rem 0 5rem;
}

/* ── Step 1: profile card ──────────────────────────────────────────────────── */
.qd-wizard-card {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1.25rem;
  overflow: hidden;
  padding: 15px;
  box-shadow: 0 4px 24px rgb(54 45 122 / 0.07);
}
.qd-wizard-card__header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
  background: rgb(54 45 122 / 0.02);
}
.qd-wizard-card__header svg {
  width: 1.75rem;
  height: 1.75rem;
  color: rgb(54 45 122 / 0.5);
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.qd-wizard-card__header h2 {
  font-size: 1.05rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0 0 0.2rem;
}
.qd-wizard-card__header p {
  font-size: 0.85rem;
  color: rgb(54 45 122 / 0.55);
  margin: 0;
}
.qd-wizard-form {
  padding: 1.75rem;
}
/* ── Fieldset: 2-column responsive grid ────────────────────────────────────── */
.qd-wizard-form .qd-business-fields {
  border: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.5rem;
}
@media (max-width: 580px) {
  .qd-wizard-form .qd-business-fields { grid-template-columns: 1fr; }
}

/* Hide the legend — the card header already explains the section */
.qd-wizard-form .qd-business-fields > legend {
  display: none;
}

/* Full-width fields: company name (2nd child), address (3rd), OPC (last) */
.qd-wizard-form .qd-business-fields > p:first-of-type,
.qd-wizard-form .qd-business-fields > p:nth-of-type(2),
.qd-wizard-form .qd-business-fields > p:last-of-type {
  grid-column: 1 / -1;
}

/* ── Form row `<p>` wrapper ─────────────────────────────────────────────────── */
.qd-wizard-form .woocommerce-form-row {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Labels ─────────────────────────────────────────────────────────────────── */
.qd-wizard-form .woocommerce-form-row label {
  display: flex !important;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: rgb(54 45 122 / 0.65) !important;
  text-transform: uppercase;
  letter-spacing: 0.065em;
  line-height: 1;
  margin: 0 !important;
}

/* Optional badge */
.qd-wizard-form .woocommerce-form-row label::after {
  content: none; /* reset any WC pseudo */
}

/* Required asterisk — use green instead of WC red */
.qd-wizard-form .required {
  color: #8dbe3f !important;
  text-decoration: none;
  font-style: normal;
  font-size: 0.95em;
}

/* ── Inputs & selects ───────────────────────────────────────────────────────── */
.qd-wizard-form .woocommerce-Input,
.qd-wizard-form .woocommerce-Input--text,
.qd-wizard-form .woocommerce-Input--select {
  display: block;
  width: 100% !important;
  box-sizing: border-box;
  padding: 0.75rem 1rem !important;
  border: 1.5px solid rgb(54 45 122 / 0.14) !important;
  border-radius: 0.65rem !important;
  background: #fff !important;
  font-size: 0.95rem !important;
  font-family: inherit !important;
  color: rgb(54 45 122) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.15s, box-shadow 0.15s;
  margin: 0 !important;
  line-height: 1.4;
}
.qd-wizard-form .woocommerce-Input:focus,
.qd-wizard-form .woocommerce-Input--text:focus,
.qd-wizard-form .woocommerce-Input--select:focus {
  border-color: #8dbe3f !important;
  box-shadow: 0 0 0 3px rgb(141 190 63 / 0.15) !important;
}
/* Placeholder text */
.qd-wizard-form .woocommerce-Input::placeholder {
  color: rgb(54 45 122 / 0.3);
}

/* ── Select: custom chevron, no OS arrow ────────────────────────────────────── */
.qd-wizard-form .woocommerce-Input--select {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-right: 2.75rem !important;
  background-image: linear-gradient(45deg, transparent 50%, rgba(0, 0, 0, .25) 50%), linear-gradient(135deg, rgba(0, 0, 0, .25) 50%, transparent 50%) !important;
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50% !important;
  background-size: 5px 5px, 5px 5px !important;
  background-repeat: no-repeat !important;
  cursor: pointer;
}

/* ── Submit footer ──────────────────────────────────────────────────────────── */
/* ── Terms acceptance checkbox ─────────────────────────────────────────────── */
.qd-terms-accept {
  margin-top: 1.75rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  background: rgba(116, 190, 0, 0.05);
  border: 1.5px solid rgba(116, 190, 0, 0.2);
  transition: border-color 0.2s;
}
.qd-terms-accept.has-error {
  background: rgba(239, 68, 68, 0.04);
  border-color: rgba(239, 68, 68, 0.4);
}
.qd-terms-accept__label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  cursor: pointer;
}
.qd-terms-accept__box {
  position: relative;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.qd-terms-accept__input {
  position: absolute;
  opacity: 0;
  width: 1.25rem;
  height: 1.25rem;
  cursor: pointer;
  margin: 0;
  z-index: 1;
}
.qd-terms-accept__checkmark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.3rem;
  border: 2px solid rgba(56, 44, 127, 0.25);
  background: #fff;
  transition: all 0.15s;
}
.qd-terms-accept__checkmark svg {
  opacity: 0;
  transform: scale(0.6);
  transition: all 0.15s;
}
.qd-terms-accept__input:checked ~ .qd-terms-accept__checkmark {
  background: #74BE00;
  border-color: #74BE00;
}
.qd-terms-accept__input:checked ~ .qd-terms-accept__checkmark svg {
  opacity: 1;
  transform: scale(1);
}
.qd-terms-accept__input:focus ~ .qd-terms-accept__checkmark {
  outline: 2px solid #74BE00;
  outline-offset: 2px;
}
.has-error .qd-terms-accept__checkmark {
  border-color: rgba(239, 68, 68, 0.6);
}
.qd-terms-accept__text {
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(56, 44, 127, 0.75);
}
.qd-terms-accept__link {
  color: #382C7F;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.15s;
}
.qd-terms-accept__link:hover {
  color: #74BE00;
}
.qd-terms-accept__error {
  margin-top: 0.5rem;
  margin-left: 2rem;
  font-size: 0.8rem;
  color: #ef4444;
  font-weight: 500;
}

/* ── Wizard form footer ─────────────────────────────────────────────────────── */
.qd-wizard-form__footer {
  margin-top: 1.75rem;
  display: flex;
  justify-content: flex-end;
}
.qd-wizard-form__footer .ctei-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: auto;
  padding: 0.85rem 2rem;
  font-size: 0.95rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
}
.qd-wizard-form__footer .ctei-btn-primary svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* ── Step 2: confirm layout ────────────────────────────────────────────────── */
.qd-wizard-confirm {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 1.5rem;
  align-items: start;
}
@media (max-width: 680px) {
  .qd-wizard-confirm { grid-template-columns: 1fr; }
}

/* Plan card (dark) */
.qd-wizard-plan-card {
  background: linear-gradient(145deg, rgb(54 45 122) 0%, rgb(74 60 160) 100%);
  border-radius: 1.25rem;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 8px 32px rgb(54 45 122 / 0.25);
}
.qd-wizard-plan-card__header {
  padding: 1.75rem 1.5rem 1.25rem;
  /* border-bottom: 1px solid rgb(255 255 255 / 0.1); */
}
.qd-wizard-plan-card__header h2 {
  font-size: 1.75rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 0.6rem;
  letter-spacing: -0.02em;
}
.qd-wizard-plan-card__price {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.qd-wizard-plan-card__amount {
  font-size: 2rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}
.qd-wizard-plan-card__amount .woocommerce-Price-currencySymbol {
  font-size: 1.1rem;
  vertical-align: super;
}
.qd-wizard-plan-card__price > span:last-child {
  font-size: 0.8rem;
  color: rgb(255 255 255 / 0.55);
}
.qd-wizard-plan-card__activation-label {
  font-size: 0.78rem;
  color: rgb(255 255 255 / 0.55);
  margin: 0 0 0.35rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.qd-wizard-plan-card__monthly {
  font-size: 1rem;
  color: rgb(255 255 255 / 0.45);
  margin: 0.4rem 0 0;
}
.qd-wizard-plan-card__monthly .woocommerce-Price-amount {
  color: rgb(255 255 255 / 0.7);
  font-weight: 600;
}
.qd-wizard-plan-card__activation {
  font-size: 0.75rem;
  color: rgb(255 255 255 / 0.5);
  margin: 0.5rem 0 0;
}
.qd-wizard-plan-card__features {
  list-style: none;
  margin: 0;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.qd-wizard-plan-card__features li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: rgb(255 255 255 / 0.8);
  line-height: 1.5;
}
.qd-wizard-plan-card__features li svg {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: #8dbe3f;
}

/* Profile summary (white) */
.qd-wizard-profile-summary {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 4px 24px rgb(54 45 122 / 0.07);
}
.qd-wizard-profile-summary__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
  background: rgb(54 45 122 / 0.02);
}
.qd-wizard-profile-summary__header h3 {
  font-size: 1rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0;
}
.qd-wizard-profile-summary__header a {
  font-size: 0.875rem;
  font-weight: 600;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.4);
  border-radius: 0.4rem;
  padding: 0.3rem 0.75rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  white-space: nowrap;
}
.qd-wizard-profile-summary__header a:hover {
  background: rgb(54 45 122 / 0.07);
  border-color: #362d7a;
}
.qd-wizard-profile-summary__dl {
  padding: 0.5rem 1.5rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.qd-wizard-profile-summary__dl > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgb(54 45 122 / 0.06);
  font-size: 0.95rem;
}
.qd-wizard-profile-summary__dl > div:last-child { border-bottom: none; }
.qd-wizard-profile-summary__dl dt {
  color: rgb(54 45 122 / 0.55);
  font-weight: 600;
  flex-shrink: 0;
}
.qd-wizard-profile-summary__dl dd {
  color: rgb(54 45 122);
  font-weight: 700;
  text-align: right;
  margin: 0;
}

/* Actions row */
.qd-wizard-confirm__actions {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid rgb(54 45 122 / 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.qd-wizard-confirm__actions .ctei-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.85rem 1.5rem;
  font-size: 0.95rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
}
.qd-wizard-confirm__actions .ctei-btn-primary svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.qd-wizard-back {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.4);
  border-radius: 0.5rem;
  padding: 0.65rem 1.25rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  margin-top: 0.5rem;
}
.qd-wizard-back:hover {
  background: rgb(54 45 122 / 0.07);
  border-color: #362d7a;
  color: #362d7a;
}
.qd-wizard-secure-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgb(54 45 122 / 0.45);
  margin: 0;
}
.qd-wizard-secure-badge svg {
  width: 0.9rem;
  height: 0.9rem;
  flex-shrink: 0;
  color: #8dbe3f;
}
/* ── Step 3 — Checkout 2-column layout ───────────────────────────────────────── */
.qd-checkout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
  padding: 2rem 0 3rem;
}
@media (max-width: 767px) {
  .qd-checkout { grid-template-columns: 1fr; }
}

/* ── Left: order summary ─────────────────────────────────────────────────────── */
.qd-checkout__summary {
  background: #f8f7ff;
  border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem;
  padding: 1.75rem;
}
.qd-checkout__summary-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #362d7a;
  margin-bottom: 1.5rem;
}
.qd-checkout__summary-header svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: #8dbe3f;
}
.qd-checkout__plan-row {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding-bottom: 1.25rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.1);
}
.qd-checkout__plan-icon {
  width: 2.5rem;
  height: 2.5rem;
  background: #362d7a;
  border-radius: 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qd-checkout__plan-icon svg {
  width: 1.25rem;
  height: 1.25rem;
  color: #fff;
}
.qd-checkout__plan-name {
  font-size: 1.5rem;
  font-weight: 800;
  color: #111827;
  margin: 0 0 0.2rem;
  letter-spacing: -0.02em;
}
.qd-checkout__plan-type {
  font-size: 0.8125rem;
  color: rgb(54 45 122 / 0.55);
  margin: 0;
}

/* Tax breakdown */
.qd-checkout__taxes {
  margin: 0 0 1.25rem;
}
.qd-checkout__tax-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.45rem 0;
  border-bottom: 1px dashed rgb(54 45 122 / 0.08);
  font-size: 0.875rem;
  color: #374151;
}
.qd-checkout__tax-row:last-child { border-bottom: none; }
.qd-checkout__tax-rate {
  font-size: 0.75rem;
  color: rgb(54 45 122 / 0.45);
  margin-left: 0.3rem;
}
.qd-checkout__tax-row--promo dt { color: #16a34a; }
.qd-checkout__tax-row--promo dd { color: #16a34a; font-weight: 600; }
.qd-checkout__tax-row--total {
  padding-top: 0.75rem;
  margin-top: 0.25rem;
  border-top: 2px solid rgb(54 45 122 / 0.15);
  border-bottom: none;
  font-size: 1rem;
  font-weight: 700;
  color: #111827;
}
.qd-checkout__tax-row--total dd {
  color: #362d7a;
  font-size: 1.125rem;
}

.qd-checkout__monthly-block {
  background: rgb(54 45 122 / 0.06);
  border-left: 3px solid rgb(54 45 122 / 0.35);
  border-radius: 0 0.5rem 0.5rem 0;
  padding: 0.875rem 1rem;
  margin: 0 0 1.25rem;
}
.qd-checkout__monthly-note {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #362d7a;
  margin: 0 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
}
.qd-checkout__monthly-note svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.qd-checkout__monthly-total {
  font-size: 1.375rem;
  font-weight: 700;
  color: #1e1b4b;
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}
.qd-checkout__monthly-total span {
  font-size: 0.875rem;
  font-weight: 400;
  color: #4b4980;
}
.qd-checkout__monthly-discount-note {
  font-size: 0.8125rem;
  color: #15803d;
  margin: 0.375rem 0 0;
  font-weight: 500;
}
.qd-s3-promo-applied {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgb(99 102 241 / 0.07);
  border: 1.5px solid rgb(99 102 241 / 0.2);
  border-radius: 0.625rem;
  padding: 0.625rem 0.875rem;
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  color: #3730a3;
}
.qd-s3-promo-applied svg {
  width: 1rem; height: 1rem;
  flex-shrink: 0;
  color: #6366f1;
}
.qd-checkout__monthly-promo-note {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #15803d;
  margin: 0.375rem 0 0;
}
.qd-checkout__monthly-promo-note svg {
  width: 0.9rem; height: 0.9rem;
  flex-shrink: 0;
  color: #16a34a;
}

/* Trust signals */
.qd-checkout__trust {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.qd-checkout__trust li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: rgb(54 45 122 / 0.65);
}
.qd-checkout__trust svg {
  width: 0.9rem;
  height: 0.9rem;
  flex-shrink: 0;
  color: #8dbe3f;
  margin-top: 0.1rem;
}

/* ── Right: payment form ─────────────────────────────────────────────────────── */
.qd-checkout__form-wrap {
  background: #fff;
  border: 1.5px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.75rem;
  box-shadow: 0 4px 24px rgb(0 0 0 / 0.06);
}
.qd-checkout__form-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #374151;
  margin-bottom: 1.5rem;
}
.qd-checkout__form-header svg {
  width: 1rem;
  height: 1rem;
  color: #8dbe3f;
  flex-shrink: 0;
}
.qd-checkout__card-brands {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.qd-checkout__card-brands svg {
  width: 2.75rem;
  height: 1.75rem;
}

/* Card fields */
.qd-cp-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 1rem;
}
.qd-cp-field label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
}
.qd-cp-cvv-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #e5e7eb;
  color: #6b7280;
  font-size: 0.625rem;
  font-weight: 700;
  cursor: help;
  margin-left: 0.3rem;
  vertical-align: middle;
}
.qd-cp-input-wrap {
  position: relative;
}
.qd-cp-input-wrap input { padding-right: 2.5rem; }
.qd-cp-card-icon {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.125rem;
  height: 1.125rem;
  color: #9ca3af;
  pointer-events: none;
}
.qd-cp-field input {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid #d1d5db;
  border-radius: 0.5rem;
  padding: 0.65rem 0.9rem;
  font-size: 0.9375rem;
  color: #111827;
  background: #fff;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.qd-cp-field input:focus {
  border-color: #362d7a;
  box-shadow: 0 0 0 3px rgb(54 45 122 / 0.12);
}
.qd-cp-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.qd-cp-error {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 0.5rem;
  padding: 0.65rem 0.9rem;
  font-size: 0.875rem;
  color: #dc2626;
  margin-bottom: 1rem;
}

/* Pay button */
.qd-wizard-pay-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  background: #362d7a;
  color: #fff;
  border: none;
  border-radius: 0.6rem;
  padding: 0.9rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, box-shadow 0.15s;
  letter-spacing: 0.01em;
  margin-bottom: 1rem;
}
.qd-wizard-pay-btn svg { width: 1.1rem; height: 1.1rem; flex-shrink: 0; }
.qd-wizard-pay-btn:hover { background: #2a2260; box-shadow: 0 4px 14px rgb(54 45 122 / 0.35); }
.qd-wizard-pay-btn:disabled { opacity: 0.6; cursor: not-allowed; box-shadow: none; }

/* Bypass mode pay button */
.qd-wizard-pay-btn--bypass {
  background: #b45309;
  box-shadow: 0 2px 8px rgb(180 83 9 / 0.25);
}
.qd-wizard-pay-btn--bypass:hover { background: #92400e; box-shadow: 0 4px 14px rgb(180 83 9 / 0.35); }

/* Bypass test mode banner */
.qd-bypass-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: rgb(254 243 199);
  border: 1.5px solid rgb(253 230 138);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  color: #92400e;
}
.qd-bypass-banner svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; margin-top: 0.1rem; color: #b45309; }
.qd-bypass-banner strong { display: block; font-size: 0.875rem; font-weight: 700; margin-bottom: 0.2rem; }
.qd-bypass-banner span { font-size: 0.82rem; line-height: 1.5; }

/* ── Step 3 — Promo code field ──────────────────────────────────────────── */
.qd-promo-wrap {
  margin-bottom: 1.5rem;
}
.qd-promo-wrap label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1e1b4b;
  margin-bottom: 0.5rem;
}
.qd-promo-field {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}
.qd-promo-field input[type="text"] {
  flex: 1;
  padding: 0.625rem 0.875rem;
  border: 1.5px solid #d1d5db;
  border-radius: 0.5rem;
  font-size: 0.9375rem;
  font-family: inherit;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: border-color 0.15s;
  outline: none;
}
.qd-promo-field input[type="text"]:focus {
  border-color: #362d7a;
}
.qd-promo-field button {
  padding: 0.625rem 1.25rem;
  background: #362d7a;
  color: #fff;
  border: none;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}
.qd-promo-field button:hover { background: #2a2260; }
.qd-promo-field button:disabled { opacity: 0.6; cursor: not-allowed; }
.qd-promo-feedback {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.qd-promo-feedback--success { color: #16a34a; }
.qd-promo-feedback--error   { color: #dc2626; }
.qd-promo-field .qd-promo-remove {
  padding: 0 1.1rem;
  background: #f3f4f6;
  color: #6b7280;
  border: 1.5px solid #d1d5db;
  border-radius: 0.5rem;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  flex-shrink: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qd-promo-field .qd-promo-remove:hover { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }
.qd-promo-field .qd-promo-remove svg { width: 1.25rem; height: 1.25rem; display: block; }

.qd-checkout__form-note {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: 0.75rem;
  color: #9ca3af;
  text-align: center;
  justify-content: center;
  margin: 0;
}
.qd-checkout__form-note svg { width: 0.8rem; height: 0.8rem; flex-shrink: 0; margin-top: 0.1rem; color: #8dbe3f; }

/* Processing / success states */
.qd-checkout__state {
  text-align: center;
  padding: 3rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
}
.qd-checkout__state p {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #111827;
  margin: 0;
}
.qd-checkout__state span {
  font-size: 0.875rem;
  color: #6b7280;
}
.qd-checkout__state--success svg {
  width: 3.5rem;
  height: 3.5rem;
  color: #16a34a;
}
.qd-checkout__spinner {
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid #e5e7eb;
  border-top-color: #362d7a;
  border-radius: 50%;
  animation: qd-spin 0.8s linear infinite;
}
@keyframes qd-spin { to { transform: rotate(360deg); } }

/* ── Payment confirmation panel ──────────────────────────────────────────────── */
.qd-conf {
  padding: 0.5rem 0;
}
.qd-conf__hero {
  text-align: center;
  padding: 1.5rem 0 1.25rem;
}
.qd-conf__check {
  width: 3.5rem;
  height: 3.5rem;
  background: #f0fdf4;
  border: 2px solid #86efac;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
}
.qd-conf__check svg {
  width: 1.75rem;
  height: 1.75rem;
  color: #16a34a;
}
.qd-conf__hero h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin: 0 0 0.4rem;
}
.qd-conf__hero p {
  font-size: 0.9rem;
  color: #6b7280;
  margin: 0;
}
.qd-conf__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin: 1.25rem 0;
}
@media (max-width: 480px) {
  .qd-conf__meta { grid-template-columns: 1fr; }
}
.qd-conf__meta-item {
  background: #f8f7ff;
  border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 0.6rem;
  padding: 0.75rem 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.qd-conf__meta-item span {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(54 45 122 / 0.5);
}
.qd-conf__meta-item strong {
  font-size: 0.875rem;
  font-weight: 700;
  color: #362d7a;
  word-break: break-all;
}
.qd-conf__taxes {
  margin: 0 0 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.6rem;
  overflow: hidden;
}
.qd-conf__taxes > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 1rem;
  border-bottom: 1px solid #f3f4f6;
  font-size: 0.875rem;
  color: #374151;
}
.qd-conf__taxes > div:last-child { border-bottom: none; }
.qd-conf__taxes dt { color: #6b7280; }
.qd-conf__taxes dd { font-weight: 600; color: #111827; }
.qd-conf__taxes-total {
  background: #f8f7ff;
}
.qd-conf__taxes-total dt {
  font-weight: 700 !important;
  color: #111827 !important;
}
.qd-conf__taxes-total dd {
  font-size: 1rem !important;
  color: #362d7a !important;
}
.qd-conf__email-note {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  font-size: 0.8125rem;
  color: #6b7280;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.5rem;
  padding: 0.7rem 0.875rem;
  margin: 0 0 1.25rem;
}
.qd-conf__email-note svg {
  width: 1rem;
  height: 1rem;
  color: #16a34a;
  flex-shrink: 0;
}
.qd-conf__email-note strong { color: #111827; }
.qd-conf__actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}
.qd-conf__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.8rem 1rem;
  border-radius: 0.6rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.15s;
}
.qd-conf__btn svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.qd-conf__btn--primary {
  background: #362d7a;
  color: #fff;
}
.qd-conf__btn--primary:hover { background: #2a2260; color: #fff; }
.qd-conf__btn--secondary {
  background: #f3f4f6;
  color: #374151;
  border: 1px solid #e5e7eb;
}
.qd-conf__btn--secondary:hover { background: #e5e7eb; color: #111827; }

.qd-wizard-no-payment {
  font-size: 0.85rem;
  color: rgb(54 45 122 / 0.5);
  text-align: center;
  margin: 0;
  padding: 0.5rem 0;
}

/* ── Step 3: payment interstitial ───────────────────────────────────────────── */
.qd-pay-interstitial {
  display: flex;
  justify-content: center;
  padding: 3rem 1.5rem 5rem;
}
.qd-pay-interstitial__card {
  background: #fff;
  border: 1px solid rgb(54 45 122 / 0.08);
  border-radius: 1.5rem;
  box-shadow: 0 8px 40px rgb(54 45 122 / 0.1);
  padding: 3rem 2.5rem;
  max-width: 520px;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}
/* Animated spinner */
.qd-pay-interstitial__spinner {
  width: 3.5rem;
  height: 3.5rem;
  color: #8dbe3f;
}
.qd-pay-interstitial__spinner svg {
  width: 100%;
  height: 100%;
  animation: qd-spin 0.9s linear infinite;
  stroke: currentColor;
}
.qd-pay-interstitial__spinner circle {
  stroke-dasharray: 80;
  stroke-dashoffset: 60;
  stroke-linecap: round;
}
@keyframes qd-spin {
  to { transform: rotate(360deg); }
}
.qd-pay-interstitial__card h2 {
  font-size: 1.25rem;
  font-weight: 800;
  color: rgb(54 45 122);
  margin: 0;
  line-height: 1.2;
}
.qd-pay-interstitial__card p {
  font-size: 0.95rem;
  color: rgb(54 45 122 / 0.65);
  margin: 0;
  line-height: 1.6;
}
.qd-pay-interstitial__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin-top: 0.5rem;
}
.qd-pay-interstitial__reopen,
.qd-pay-interstitial__account {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.85rem 1.75rem;
  font-size: 0.95rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
}
.qd-pay-interstitial__reopen svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
/* "Aller à mon compte" — outline secondary style */
.qd-pay-interstitial__account {
  background: transparent !important;
  color: rgb(54 45 122) !important;
  border: 2px solid rgb(54 45 122 / 0.2) !important;
  box-shadow: none !important;
}
.qd-pay-interstitial__account:hover {
  border-color: rgb(54 45 122 / 0.5) !important;
  background: rgb(54 45 122 / 0.04) !important;
}

/* ── Wizard errors box (template-reserver.php) ───────────────────────────── */
.qd-wizard-errors {
  background: rgb(254 242 242);
  border: 1px solid rgb(252 165 165 / 0.6);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.qd-wizard-errors p {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0;
  font-size: 0.875rem;
  color: rgb(153 27 27);
  line-height: 1.5;
}
.qd-wizard-errors p::before {
  content: '';
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  background-color: rgb(220 38 38);
  border-radius: 50%;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}



/* ══════════════════════════════════════════════════════════════════════════
   ORDER DETAIL PAGE
   Styles for woocommerce/myaccount/view-order.php
   and woocommerce/order/order-details.php overrides.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Shared section title ────────────────────────────────────────────────── */
.qd-account-content .qd-order-details__title {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgb(54 45 122 / 0.45);
  margin: 0 0 1rem;
  padding: 0;
  border: none;
}

/* ── Order header banner ─────────────────────────────────────────────────── */
.qd-order-header {
  background: rgb(54 45 122 / 0.05);
  border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 2px 16px rgb(54 45 122 / 0.06);
}

.qd-order-header__meta {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.08);
}

.qd-order-header__number { font-size: 1rem; color: rgb(54 45 122); margin: 0 0 0.2rem; }
.qd-order-header__number strong { font-weight: 800; }
.qd-order-header__date { font-size: 0.8rem; color: rgb(54 45 122 / 0.5); margin: 0; }
.qd-order-header__right { text-align: right; }
.qd-order-header__total-label {
  font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; color: rgb(54 45 122 / 0.4); margin: 0 0 0.2rem;
}
.qd-order-header__total-value { font-size: 1.25rem; font-weight: 800; color: #8dbe3f; margin: 0; }
.qd-order-header__total-value .woocommerce-Price-amount { color: #8dbe3f; }

/* ── Status badge ────────────────────────────────────────────────────────── */
.qd-order-header__status {
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.78rem; font-weight: 700;
  padding: 0.35rem 0.85rem; border-radius: 999px; border: 1px solid;
}
.qd-order-header__status-dot { width: 0.45rem; height: 0.45rem; border-radius: 50%; flex-shrink: 0; }

.qd-status--processing { background: rgb(239 246 255); color: rgb(29 78 216);  border-color: rgb(191 219 254); }
.qd-status--processing .qd-order-header__status-dot { background: rgb(59 130 246); }
.qd-status--completed  { background: rgb(240 253 244); color: rgb(21 128 61);  border-color: rgb(187 247 208); }
.qd-status--completed  .qd-order-header__status-dot  { background: rgb(34 197 94); }
.qd-status--on-hold    { background: rgb(254 252 232); color: rgb(161 98 7);   border-color: rgb(253 224 71);  }
.qd-status--on-hold    .qd-order-header__status-dot   { background: rgb(234 179 8); }
.qd-status--cancelled,
.qd-status--refunded,
.qd-status--failed     { background: rgb(254 242 242); color: rgb(185 28 28);  border-color: rgb(254 202 202); }
.qd-status--cancelled .qd-order-header__status-dot,
.qd-status--refunded  .qd-order-header__status-dot,
.qd-status--failed    .qd-order-header__status-dot   { background: rgb(239 68 68); }
.qd-status--pending, .qd-status--checkout-draft    { background: rgb(249 250 251); color: rgb(75 85 99);   border-color: rgb(209 213 219); }
.qd-status--pending    .qd-order-header__status-dot, .qd-status--checkout-draft    .qd-order-header__status-dot   { background: rgb(156 163 175); }

/* ── Order notes / updates ───────────────────────────────────────────────── */
.qd-order-notes {
  background: #fff; border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem; padding: 1.5rem; margin-bottom: 1.25rem;
  box-shadow: 0 2px 16px rgb(54 45 122 / 0.06);
}
.qd-order-notes__title {
  font-size: 0.8rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: rgb(54 45 122 / 0.45); margin: 0 0 1.25rem;
}
.qd-order-notes__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.qd-order-note { display: flex; gap: 1rem; align-items: flex-start; position: relative; padding-bottom: 1.25rem; }
.qd-order-note:last-child { padding-bottom: 0; }
.qd-order-note:not(:last-child)::after {
  content: ''; position: absolute; left: 0.4rem; top: 1.1rem; bottom: 0;
  width: 1px; background: rgb(54 45 122 / 0.12);
}
.qd-order-note__dot {
  width: 0.85rem; height: 0.85rem; border-radius: 50%;
  background: rgb(54 45 122); flex-shrink: 0; margin-top: 0.2rem;
  position: relative; z-index: 1; box-shadow: 0 0 0 3px rgb(54 45 122 / 0.12);
}
.qd-order-note__date {
  font-size: 0.72rem; font-weight: 700; color: rgb(54 45 122 / 0.45);
  text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 0.3rem;
}
.qd-order-note__text p { font-size: 0.875rem; color: rgb(54 45 122 / 0.8); margin: 0; line-height: 1.55; }

/* ── Order items card ────────────────────────────────────────────────────── */
.qd-order-details {
  background: #fff; border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem; padding: 1.5rem; margin-bottom: 1.25rem;
  box-shadow: 0 2px 16px rgb(54 45 122 / 0.06);
}
.qd-order-items__head {
  display: flex; justify-content: space-between;
  font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: rgb(54 45 122 / 0.4);
  padding-bottom: 0.75rem; border-bottom: 1px solid rgb(54 45 122 / 0.08);
}
.qd-order-details .qd-hidden-table { width: 100%; border-collapse: collapse; }
.qd-order-details .qd-hidden-table thead { display: none; }
.qd-order-details .qd-hidden-table .woocommerce-table__line-item td,
.qd-order-details .qd-hidden-table tfoot tr th,
.qd-order-details .qd-hidden-table tfoot tr td {
  padding: 0.85rem; font-size: 0.9rem; color: rgb(54 45 122);
  border-bottom: 1px solid rgb(54 45 122 / 0.07); vertical-align: middle;
}
.qd-order-details .qd-hidden-table .woocommerce-table__line-item:last-child td { border-bottom: none; }
.qd-order-details .qd-hidden-table .product-name { font-weight: 600; }
.qd-order-details .qd-hidden-table .product-name a { color: rgb(54 45 122); text-decoration: none; }
.qd-order-details .qd-hidden-table .product-name a:hover { color: #8dbe3f; }
.qd-order-details .qd-hidden-table .product-quantity {
  font-size: 0.8rem; font-weight: 600; color: rgb(54 45 122 / 0.5); margin-left: 0.35rem;
}
.qd-order-details .qd-hidden-table .product-total { text-align: right; font-weight: 700; }
.qd-order-details .qd-hidden-table tfoot { border-top: 2px solid rgb(54 45 122 / 0.1); }
.qd-order-details .qd-hidden-table tfoot tr th,
.qd-order-details .qd-hidden-table tfoot tr td {
  font-size: 0.85rem; color: rgb(54 45 122 / 0.65); border-bottom: 1px solid rgb(54 45 122 / 0.05);
}
.qd-order-details .qd-hidden-table tfoot tr:last-child th,
.qd-order-details .qd-hidden-table tfoot tr:last-child td {
  font-size: 1rem; font-weight: 800; color: rgb(54 45 122); border-bottom: none;
}
.qd-order-details .qd-hidden-table tfoot tr:last-child td .woocommerce-Price-amount { color: #8dbe3f; font-size: 1.1rem; }
.qd-order-details .qd-hidden-table tfoot tr td { text-align: right; }
.qd-order-details .wc-item-meta { margin: 0.3rem 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.2rem; }
.qd-order-details .wc-item-meta li { font-size: 0.78rem; color: rgb(54 45 122 / 0.55); }
.qd-order-details .wc-item-meta li strong { font-weight: 600; color: rgb(54 45 122 / 0.7); }

/* ── Customer details cards ──────────────────────────────────────────────── */
.qd-order-customer { margin-top: 1.25rem; }
.qd-order-customer__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.qd-order-customer__grid--two { grid-template-columns: 1fr 1fr; }
.qd-order-addr-card {
  display: flex; align-items: flex-start; gap: 1rem;
  background: #fff; border: 1px solid rgb(54 45 122 / 0.1);
  border-radius: 1rem; padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 16px rgb(54 45 122 / 0.06);
}
.qd-order-addr-card__icon {
  width: 2.25rem; height: 2.25rem; border-radius: 0.6rem;
  background: rgb(54 45 122 / 0.06); display: flex;
  align-items: center; justify-content: center; flex-shrink: 0;
}
.qd-order-addr-card__icon svg { width: 1.1rem; height: 1.1rem; color: rgb(54 45 122 / 0.6); }
.qd-order-addr-card__label {
  font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: rgb(54 45 122 / 0.4); margin: 0 0 0.5rem;
}
.qd-order-addr-card__address { font-style: normal; font-size: 0.875rem; color: rgb(54 45 122 / 0.8); line-height: 1.65; margin: 0; }
.qd-order-addr-card__address p { margin: 0; }
.qd-order-addr-card__email { color: rgb(54 45 122); font-weight: 600; text-decoration: none; }
.qd-order-addr-card__email:hover { color: #8dbe3f; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .qd-order-header__meta { flex-direction: column; gap: 0.75rem; }
  .qd-order-header__right { text-align: left; }
  .qd-order-customer__grid--two { grid-template-columns: 1fr; }
}

/* ── Order again CTA ─────────────────────────────────────────────────────── */
.qd-account-content .order-again {
  margin: 1.5rem 0 0;
  padding: 0;
  display: none;
}

.qd-account-content .order-again a.button,
.woocommerce-button.button.pay.order-actions-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgb(54 45 122);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.65rem 1.4rem;
  border-radius: 0.6rem;
  text-decoration: none;
  border: none;
  transition: background 0.2s, transform 0.15s;
  box-shadow: 0 2px 12px rgb(54 45 122 / 0.2);
}

.qd-account-content .order-again a.button::before {
  content: '';
  display: inline-block;
  width: 0.95rem;
  height: 0.95rem;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  flex-shrink: 0;
}

.qd-account-content .order-again a.button:hover {
  background: rgb(74 60 160);
  transform: translateY(-1px);
  box-shadow: 0 4px 18px rgb(54 45 122 / 0.28);
  color: #fff;
}

.qd-account-content .order-again a.button:active {
  transform: translateY(0);
}

/* ══════════════════════════════════════════════════════════════════════════
   LOST PASSWORD / RESET PASSWORD FORM
   .woocommerce-ResetPassword.lost_reset_password
   ══════════════════════════════════════════════════════════════════════════ */

form.woocommerce-ResetPassword.lost_reset_password {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  max-width: 480px;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
  background: #fff !important;
  border: 1px solid rgb(54 45 122 / 0.12) !important;
  border-radius: 1rem !important;
  padding: 2.5rem !important;
  box-shadow: 0 4px 24px rgb(54 45 122 / 0.08) !important;
  float: none !important;
  box-sizing: border-box;
}

/* Intro description */
form.woocommerce-ResetPassword.lost_reset_password > p:first-of-type {
  font-size: 0.9rem;
  color: rgb(54 45 122 / 0.6);
  line-height: 1.65;
  margin: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
}

/* Field rows */
form.woocommerce-ResetPassword.lost_reset_password .woocommerce-form-row,
form.woocommerce-ResetPassword.lost_reset_password .form-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: 100% !important;
}

/* Labels */
form.woocommerce-ResetPassword.lost_reset_password label {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: rgb(54 45 122 / 0.7) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  display: block !important;
  margin: 0 !important;
}
form.woocommerce-ResetPassword.lost_reset_password label .required {
  color: #8dbe3f;
}

/* password-input span — flex row: input + toggle button */
form.woocommerce-ResetPassword.lost_reset_password .password-input {
  display: flex !important;
  align-items: center !important;
  border: 1.5px solid rgb(54 45 122 / 0.15);
  border-radius: 0.6rem;
  background: #fff;
  overflow: hidden;
  transition: border-color 0.15s, box-shadow 0.15s;
}
form.woocommerce-ResetPassword.lost_reset_password .password-input:focus-within {
  border-color: #8dbe3f;
  box-shadow: 0 0 0 3px rgb(141 190 63 / 0.15);
}

/* Input inside password-input span */
form.woocommerce-ResetPassword.lost_reset_password .password-input input[type="password"] {
  flex: 1 !important;
  width: 100% !important;
  padding: 0.7rem 1rem !important;
  border: none !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 0.9rem !important;
  font-family: inherit !important;
  color: rgb(54 45 122) !important;
  background: transparent !important;
}

/* Standalone inputs (not inside password-input) */
form.woocommerce-ResetPassword.lost_reset_password input.input-text:not(.password-input input),
form.woocommerce-ResetPassword.lost_reset_password input[type="text"],
form.woocommerce-ResetPassword.lost_reset_password input[type="email"] {
  width: 100% !important;
  padding: 0.7rem 1rem !important;
  border: 1.5px solid rgb(54 45 122 / 0.15) !important;
  border-radius: 0.6rem !important;
  font-size: 0.9rem !important;
  font-family: inherit !important;
  color: rgb(54 45 122) !important;
  background: #fff !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
  box-sizing: border-box !important;
}
form.woocommerce-ResetPassword.lost_reset_password input.input-text:focus {
  border-color: #8dbe3f !important;
  box-shadow: 0 0 0 3px rgb(141 190 63 / 0.15) !important;
}

/* Show/hide password toggle button */
form.woocommerce-ResetPassword.lost_reset_password .show-password-input {
  flex-shrink: 0;
  width: 2.5rem;
  height: 100%;
  background: transparent;
  border: none;
  border-left: 1px solid rgb(54 45 122 / 0.1);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.6rem;
  color: rgb(54 45 122 / 0.35);
  transition: color 0.15s;
}
form.woocommerce-ResetPassword.lost_reset_password .show-password-input:hover {
  color: rgb(54 45 122 / 0.7);
}

/* Submit button */
form.woocommerce-ResetPassword.lost_reset_password button[type="submit"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  background: rgb(54 45 122) !important;
  color: #fff !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  padding: 0.8rem 1.75rem !important;
  border-radius: 0.6rem !important;
  border: none !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s !important;
  box-shadow: 0 2px 12px rgb(54 45 122 / 0.2) !important;
  letter-spacing: 0.01em !important;
  margin: 0.25rem 0 0 !important;
}
form.woocommerce-ResetPassword.lost_reset_password button[type="submit"]:hover {
  background: rgb(74 60 160) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 18px rgb(54 45 122 / 0.28) !important;
}
form.woocommerce-ResetPassword.lost_reset_password button[type="submit"]:active {
  transform: translateY(0) !important;
}

/* Hide .clear floater */
form.woocommerce-ResetPassword.lost_reset_password .clear { display: none !important; }

/* Shipping address — hidden until needed (also controlled in order-details-customer.php) */
.woocommerce-column--shipping-address { display: none !important; }

/* ── Reservation wizard: info notice ─────────────────────────────────────── */
.qd-wizard-notice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    background: #eff8ff;
    border: 1px solid #bfdbfe;
    border-radius: .75rem;
    padding: .875rem 1rem;
    margin-bottom: 1.5rem;
    color: #1e40af;
    font-size: .9rem;
    line-height: 1.5;
}
.qd-wizard-notice svg {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    margin-top: .1rem;
}
.qd-wizard-notice p { margin: 0; }

/* ── Addons detail block (step 2) ───────────────────────────────────────────── */
.qd-wizard-addons {
    margin: 1rem;
    background: rgb(255 255 255 / 0.07);
    border: 1px solid rgb(255 255 255 / 0.12);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
}
.qd-wizard-addons__activation-notice {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgb(234 88 12 / 0.15);
    border: 1.5px solid rgb(234 88 12 / 0.4);
    border-radius: 0.625rem;
    padding: 0.625rem 0.875rem;
    font-size: 0.875rem;
    color: rgb(255 200 160);
    margin-bottom: 0.875rem;
}
.qd-wizard-addons__activation-notice svg {
    width: 1.1rem; height: 1.1rem;
    color: rgb(251 146 60);
    flex-shrink: 0;
}
.qd-wizard-addons__activation-notice strong {
    color: rgb(253 186 116);
    font-weight: 800;
}
.qd-wizard-addons__title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(255 255 255 / 0.5);
    margin: 0 0 0.75rem;
}
.qd-wizard-addons__list {
    list-style: none;
    margin: 0 0 0.875rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.qd-wizard-addons__list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.875rem;
}
.qd-wizard-addons__name {
    font-weight: 600;
    color: rgb(255 255 255 / 0.9);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.qd-wizard-addons__qty {
    font-size: 0.75rem;
    background: rgb(255 255 255 / 0.12);
    color: rgb(255 255 255 / 0.7);
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-weight: 600;
}
.qd-wizard-addons__amounts {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.15rem;
    flex-shrink: 0;
}
.qd-wizard-addons__act {
    font-size: 0.8rem;
    font-weight: 700;
    color: rgb(253 186 116);
}
.qd-wizard-addons__mo em {
    font-style: normal;
    font-size: 0.7rem;
    font-weight: 500;
    color: rgb(255 255 255 / 0.4);
    margin-left: 0.2rem;
}
.qd-wizard-addons__mo {
    font-size: 0.875rem;
    font-weight: 700;
    color: rgb(255 255 255 / 0.85);
}
.qd-wizard-addons__total-monthly {
    border-top: 1px solid rgb(255 255 255 / 0.12);
    padding-top: 0.75rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
    color: rgb(255 255 255 / 0.55);
}
.qd-wizard-addons__total-monthly strong {
    font-size: 1rem;
    font-weight: 800;
    color: #fff;
}

/* ── Tax breakdown table (steps 2 & 3) ─────────────────────────────────────── */
.qd-wizard-plan-card__taxes {
    margin: 1rem 0 0;
    padding: 1rem 1.25rem 0;
    border-top: 1px solid rgba(255,255,255,.15);
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.qd-wizard-plan-card__taxes > div {
    display: flex;
    justify-content: space-between;
    font-size: .875rem;
    color: rgba(255,255,255,.7);
}
.qd-wizard-plan-card__taxes > div dt { font-weight: 400; }
.qd-wizard-plan-card__taxes > div dd { margin: 0; font-weight: 500; }
.qd-wizard-plan-card__taxes-total {
    margin-top: .4rem;
    padding-top: .6rem;
    border-top: 1px solid rgba(255,255,255,.2);
    font-size: 1rem !important;
    color: #fff !important;
}
.qd-wizard-plan-card__taxes-total dt,
.qd-wizard-plan-card__taxes-total dd { font-weight: 700 !important; }

/* ── Step 2 — promo field on dark card ──────────────────────────────────── */
.qd-wizard-plan-card .qd-promo-wrap {
  padding: 1rem 1.25rem 0;
}
.qd-wizard-plan-card .qd-promo-wrap label {
  color: rgba(255, 255, 255, 0.85);
}
.qd-wizard-plan-card .qd-promo-field input[type="text"] {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}
.qd-wizard-plan-card .qd-promo-field input[type="text"]::placeholder {
  color: rgba(255, 255, 255, 0.4);
}
.qd-wizard-plan-card .qd-promo-field input[type="text"]:focus {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.15);
}
.qd-wizard-plan-card .qd-promo-field button {
  background: #fff;
  color: #362d7a;
}
.qd-wizard-plan-card .qd-promo-field button:hover {
  background: rgba(255, 255, 255, 0.9);
}
.qd-wizard-plan-card .qd-promo-field .qd-promo-remove {
  border-color: rgba(255, 255, 255, 0.25);
}
.qd-wizard-plan-card .qd-promo-field .qd-promo-remove:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.5);
  color: #fca5a5;
}
.qd-wizard-plan-card .qd-promo-feedback--success { color: #86efac; }
.qd-wizard-plan-card .qd-promo-feedback--error   { color: #fca5a5; }
#qd-s2-promo-discount { color: #86efac !important; }
.qd-s2-monthly-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
}
.qd-s2-monthly-discount-line {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #86efac;
  letter-spacing: 0.01em;
}

/* ── Mon abonnement — My Account dashboard ───────────────────────────────── */
.qd-account-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: #4b4980;
}
.qd-account-empty svg {
  width: 3rem; height: 3rem;
  margin: 0 auto 1rem;
  color: rgb(54 45 122 / 0.3);
  display: block;
}
.qd-account-empty p {
  font-size: 1rem;
  margin: 0 0 1.5rem;
}
/* Header */
.qd-account-sub__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.qd-account-sub__status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #15803d;
  background: rgb(21 128 61 / 0.1);
  border: 1px solid rgb(21 128 61 / 0.2);
  border-radius: 999px;
  padding: 0.2rem 0.65rem;
  margin-bottom: 0.5rem;
}
.qd-account-sub__status-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #15803d;
  animation: qd-pulse-dot 2s ease-in-out infinite;
}
@keyframes qd-pulse-dot {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.4; }
}
.qd-account-sub__plan-name {
  font-size: 1.75rem;
  font-weight: 800;
  color: #1e1b4b;
  margin: 0 0 0.25rem;
  letter-spacing: -0.02em;
}
.qd-account-sub__engagement {
  font-size: 0.875rem;
  color: #6b6b9a;
  margin: 0;
}
.qd-account-sub__header-right {
  text-align: right;
}
.qd-account-sub__since-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9a9ab8;
  margin: 0 0 0.2rem;
}
.qd-account-sub__since-date {
  font-size: 1rem;
  font-weight: 600;
  color: #1e1b4b;
  margin: 0;
}
/* Totals band */
.qd-account-sub__totals {
  display: flex;
  align-items: center;
  gap: 0;
  background: linear-gradient(135deg, rgb(30 24 80) 0%, rgb(54 45 122) 100%);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.75rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.qd-account-sub__total-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
  min-width: 120px;
}
.qd-account-sub__total-divider {
  width: 1px;
  height: 2.5rem;
  background: rgb(255 255 255 / 0.12);
  flex-shrink: 0;
}
.qd-account-sub__total-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(255 255 255 / 0.5);
}
.qd-account-sub__total-value {
  font-size: 1.125rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.01em;
}
.qd-account-sub__total-value small {
  font-size: 0.8rem;
  font-weight: 400;
  opacity: 0.7;
}
/* Sections */
.qd-account-sub__items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.qd-account-sub__section {
  border: 1.5px solid rgb(54 45 122 / 0.09);
  border-radius: 0.875rem;
  overflow: hidden;
}
.qd-account-sub__section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #6b6b9a;
  background: rgb(54 45 122 / 0.04);
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
  padding: 0.625rem 1rem;
  margin: 0;
}
.qd-account-sub__section-title svg {
  width: 0.9rem; height: 0.9rem; flex-shrink: 0;
}
.qd-account-sub__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.05);
}
.qd-account-sub__item:last-child { border-bottom: none; }
.qd-account-sub__item-name {
  font-size: 0.9375rem;
  font-weight: 500;
  color: #1e1b4b;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.qd-account-sub__item-qty {
  font-size: 0.8rem;
  color: #6b6b9a;
  background: rgb(54 45 122 / 0.07);
  border-radius: 0.25rem;
  padding: 0.1rem 0.35rem;
}
.qd-account-sub__item-price {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #362d7a;
  white-space: nowrap;
}
/* Footer */
.qd-account-sub__footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.qd-account-sub__order-link,
.qd-account-sub__upgrade-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.6rem 1.1rem;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.qd-account-sub__order-link {
  border: 1.5px solid rgb(54 45 122 / 0.3);
  color: #362d7a;
}
.qd-account-sub__order-link:hover { background: rgb(54 45 122 / 0.06); color: #362d7a; }
.qd-account-sub__upgrade-link {
  border: 1.5px solid rgb(116 190 0 / 0.4);
  color: #4a8000;
}
.qd-account-sub__upgrade-link:hover { background: rgb(116 190 0 / 0.07); color: #4a8000; }
.qd-account-sub__order-link svg,
.qd-account-sub__upgrade-link svg { width: 1rem; height: 1rem; flex-shrink: 0; }

@media (max-width: 480px) {
  .qd-account-sub__header { flex-direction: column; }
  .qd-account-sub__header-right { text-align: left; }
  .qd-account-sub__total-divider { display: none; }
  .qd-account-sub__totals { flex-direction: column; gap: 0.75rem; }
}

/* ── Mon abonnement — savings banner ─────────────────────────────────────── */
.qd-account-sub__savings {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: rgb(21 128 61 / 0.07);
  border: 1.5px solid rgb(21 128 61 / 0.2);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  color: #166534;
}
.qd-account-sub__savings svg {
  width: 1.25rem; height: 1.25rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: #16a34a;
}
.qd-account-sub__savings strong {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}
.qd-account-sub__savings span {
  font-size: 0.8125rem;
  opacity: 0.8;
}

/* ── Mon abonnement — promo code banner ──────────────────────────────────── */
.qd-account-sub__promo {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: rgb(99 102 241 / 0.07);
  border: 1.5px solid rgb(99 102 241 / 0.2);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
  color: #3730a3;
}
.qd-account-sub__promo svg {
  width: 1.25rem; height: 1.25rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: #6366f1;
}
.qd-account-sub__promo strong {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}
.qd-account-sub__promo span {
  font-size: 0.8125rem;
  opacity: 0.8;
}

/* ── Mon abonnement — plan features list ─────────────────────────────────── */
.qd-account-sub__features {
  list-style: none;
  margin: 0;
  padding: 0.25rem 1rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  border-top: 1px solid rgb(54 45 122 / 0.06);
}
.qd-account-sub__features li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #4b4980;
}
.qd-account-sub__features li svg {
  width: 1rem; height: 1rem;
  flex-shrink: 0;
  color: #16a34a;
}

/* ── Mon abonnement — support block ──────────────────────────────────────── */
.qd-account-sub__support {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgb(54 45 122 / 0.04);
  border: 1.5px solid rgb(54 45 122 / 0.09);
  border-radius: 0.875rem;
  padding: 1.25rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.qd-account-sub__support-icon {
  width: 2.75rem; height: 2.75rem;
  background: rgb(54 45 122 / 0.08);
  border-radius: 0.625rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: #362d7a;
}
.qd-account-sub__support-icon svg {
  width: 1.25rem; height: 1.25rem;
}
.qd-account-sub__support-body {
  flex: 1;
  min-width: 160px;
}
.qd-account-sub__support-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1e1b4b;
  margin: 0 0 0.2rem;
}
.qd-account-sub__support-text {
  font-size: 0.8125rem;
  color: #6b6b9a;
  margin: 0;
}
.qd-account-sub__support-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-shrink: 0;
}
.qd-account-sub__support-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #362d7a;
  border: 1.5px solid rgb(54 45 122 / 0.3);
  border-radius: 0.5rem;
  padding: 0.45rem 0.875rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
}
.qd-account-sub__support-btn:hover {
  background: rgb(54 45 122 / 0.07);
  border-color: #362d7a;
  color: #362d7a;
}
.qd-account-sub__support-btn svg {
  width: 0.9rem; height: 0.9rem; flex-shrink: 0;
}

@media (max-width: 540px) {
  .qd-account-sub__support { flex-direction: column; align-items: flex-start; }
  .qd-account-sub__support-actions { flex-direction: row; flex-wrap: wrap; }
}

/* ── Mon abonnement — already-subscribed notice ──────────────────────────── */
.qd-account-sub__notice {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  background: rgb(234 179 8 / 0.1);
  border: 1.5px solid rgb(234 179 8 / 0.35);
  border-radius: 0.75rem;
  padding: 0.875rem 1rem;
  margin-bottom: 1.5rem;
  color: #854d0e;
  font-size: 0.9rem;
  font-weight: 500;
}
.qd-account-sub__notice svg {
  width: 1.1rem; height: 1.1rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: #ca8a04;
}
.qd-account-sub__notice p { margin: 0; }

/* ── Mon abonnement — success notice (green) ─────────────────────────────── */
.qd-account-sub__notice--success {
  background: rgb(21 128 61 / 0.08);
  border-color: rgb(21 128 61 / 0.3);
  color: #15603a;
}
.qd-account-sub__notice--success svg { color: #16a34a; }

/* ── Mon abonnement — multi-subscription container ───────────────────────── */
.qd-account-subs {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.qd-account-sub {
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 1.25rem;
  padding: 1.75rem;
  background: #fff;
  width: 100%;
}

/* ── Status badge variants ───────────────────────────────────────────────── */
.qd-account-sub__status-badge--active {
  color: #15803d;
  background: rgb(21 128 61 / 0.1);
  border-color: rgb(21 128 61 / 0.2);
}
/* "En cours d'activation" — order processing, awaiting admin */
.qd-account-sub__status-badge--pending {
  color: #1e40af;
  background: rgb(59 130 246 / 0.1);
  border-color: rgb(59 130 246 / 0.25);
}
/* "Résiliation en cours" */
.qd-account-sub__status-badge--cancel-pending {
  color: #92400e;
  background: rgb(234 179 8 / 0.12);
  border-color: rgb(234 179 8 / 0.35);
}
.qd-account-sub__status-badge--cancelled {
  color: #6b7280;
  background: rgb(107 114 128 / 0.1);
  border-color: rgb(107 114 128 / 0.2);
}
.qd-account-sub__status-badge--expired {
  color: #6b7280;
  background: rgb(107 114 128 / 0.1);
  border-color: rgb(107 114 128 / 0.2);
}

/* Mute cancelled / expired cards */
.qd-account-sub--cancelled,
.qd-account-sub--expired {
  opacity: 0.72;
  border-color: rgb(54 45 122 / 0.06);
}
.qd-account-sub--cancelled .qd-account-sub__totals,
.qd-account-sub--expired  .qd-account-sub__totals {
  background: linear-gradient(135deg, rgb(75 74 90) 0%, rgb(100 98 118) 100%);
}

/* ── Cancellation form — must not behave as a block ──────────────────────── */
.qd-cancel-form {
  display: contents;
}

/* ── Cancellation request button ─────────────────────────────────────────── */
.qd-account-sub__cancel-btn,
.qd-account-sub__cancel-btn:visited {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #b91c1c !important;
  border: 1.5px solid rgb(185 28 28 / 0.35) !important;
  border-radius: 0.5rem;
  padding: 0.6rem 1.1rem !important;
  background: transparent !important;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  white-space: nowrap;
  box-shadow: none !important;
  line-height: 1.4;
}
.qd-account-sub__cancel-btn:hover {
  background: rgb(185 28 28 / 0.06) !important;
  border-color: #b91c1c !important;
  color: #b91c1c !important;
}
.qd-account-sub__cancel-btn svg { width: 0.9rem; height: 0.9rem; flex-shrink: 0; }

/* Cancellation pending info text */
.qd-account-sub__cancel-pending {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #92400e;
  margin: 0;
}
.qd-account-sub__cancel-pending svg { width: 1rem; height: 1rem; flex-shrink: 0; color: #d97706; }

/* ── Order meta strip (inside each subscription card) ───────────────────── */
.qd-account-sub__order-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-top: 1.5px solid rgb(54 45 122 / 0.08);
  border-bottom: 1.5px solid rgb(54 45 122 / 0.08);
  margin-bottom: 1.25rem;
}
.qd-account-sub__order-strip-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1 1 auto;
  padding: 0.9rem 1.25rem;
  border-right: 1.5px solid rgb(54 45 122 / 0.08);
}
.qd-account-sub__order-strip-item:last-child {
  border-right: 0;
}
.qd-account-sub__order-strip-item > span {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(54 45 122 / 0.5);
}
.qd-account-sub__order-strip-item > strong {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #362d7a;
  line-height: 1.2;
}
.qd-account-sub__order-strip-item > strong small {
  font-size: 0.75rem;
  font-weight: 500;
  color: rgb(54 45 122 / 0.55);
  margin-left: 0.15em;
}
@media (max-width: 600px) {
  .qd-account-sub__order-strip {
    flex-direction: column;
  }
  .qd-account-sub__order-strip-item {
    border-right: 0;
    border-bottom: 1.5px solid rgb(54 45 122 / 0.08);
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  .qd-account-sub__order-strip-item:last-child {
    border-bottom: 0;
  }
}

/* ── Invoice download button ─────────────────────────────────────────────── */
.qd-account-sub__invoice-btn,
.qd-account-sub__invoice-btn:visited {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  padding: 0.6rem 1.1rem;
  border-radius: 0.6rem;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  border: 1.5px solid rgb(54 45 122 / 0.3);
  color: #362d7a !important;
  background: transparent;
  transition: background 0.15s, border-color 0.15s;
}
.qd-account-sub__invoice-btn:hover {
  background: rgb(54 45 122 / 0.06);
  color: #362d7a !important;
}
.qd-account-sub__invoice-btn svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* ── Cancellation modal ──────────────────────────────────────────────────── */
.qd-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.qd-modal[hidden] { display: none; }
.qd-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 0.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.qd-modal__box {
  position: relative;
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem 2rem 1.75rem;
  max-width: 420px;
  width: 100%;
  box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  animation: qd-modal-in 0.18s ease;
}
@keyframes qd-modal-in {
  from { opacity: 0; transform: scale(0.95) translateY(8px); }
  to   { opacity: 1; transform: scale(1)    translateY(0);   }
}
.qd-modal__icon {
  width: 3rem;
  height: 3rem;
  background: rgb(185 28 28 / 0.08);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  color: #b91c1c;
}
.qd-modal__icon svg { width: 1.5rem; height: 1.5rem; }
.qd-modal__title {
  font-size: 1.125rem;
  font-weight: 800;
  color: #1e1b4b;
  margin: 0 0 0.625rem;
  letter-spacing: -0.01em;
}
.qd-modal__text {
  font-size: 0.9rem;
  color: #6b6b9a;
  line-height: 1.6;
  margin: 0 0 1.75rem;
}
.qd-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.qd-modal__confirm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.7rem 1.25rem;
  background: #b91c1c;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: inherit;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.15s;
}
.qd-modal__confirm:hover { background: #991b1b; }
.qd-modal__confirm svg { width: 0.9rem; height: 0.9rem; flex-shrink: 0; }
.qd-modal__cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.25rem;
  background: transparent;
  color: #6b6b9a;
  font-size: 0.9rem;
  font-weight: 600;
  font-family: inherit;
  border: 1.5px solid rgb(54 45 122 / 0.2);
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.qd-modal__cancel:hover { background: rgb(54 45 122 / 0.04); border-color: rgb(54 45 122 / 0.35); color: #362d7a; }

/* ── Add another plan section ────────────────────────────────────────────── */
.qd-account-add-plan {
  border: 1.5px dashed rgb(54 45 122 / 0.2);
  border-radius: 1.25rem;
  padding: 1.25rem 1.5rem;
}
.qd-account-add-plan__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.qd-account-add-plan__title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1e1b4b;
  margin: 0 0 0.2rem;
}
.qd-account-add-plan__text {
  font-size: 0.8125rem;
  color: #6b6b9a;
  margin: 0;
}
.qd-account-add-plan__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #4a8000;
  border: 1.5px solid rgb(116 190 0 / 0.4);
  border-radius: 0.5rem;
  padding: 0.6rem 1.1rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
  flex-shrink: 0;
}
.qd-account-add-plan__btn:hover { background: rgb(116 190 0 / 0.07); color: #4a8000; border-color: #74be00; }
.qd-account-add-plan__btn svg { width: 1rem; height: 1rem; flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   Order confirmation page — [qd_order_confirmation]
   ═══════════════════════════════════════════════════════════════════════════ */
.qd-conf {
  max-width: 680px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.qd-conf__header {
  text-align: center;
  padding: 2.5rem 1rem 0;
}
.qd-conf__icon {
  width: 3.5rem;
  height: 3.5rem;
  background: rgb(21 128 61 / 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0 auto 1.25rem;
  color: #15803d;
}
.qd-conf__icon svg {
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  display: block;
}
.qd-conf__icon--error { background: rgb(185 28 28 / 0.1); color: #b91c1c; }
.qd-conf__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #1e1b4b;
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}
.qd-conf__subtitle {
  font-size: 1rem;
  color: #6b6b9a;
  margin: 0;
  line-height: 1.6;
}

/* ── Reference band ──────────────────────────────────────────────────────── */
.qd-conf__ref-band {
  display: flex;
  align-items: center;
  gap: 0;
  background: linear-gradient(135deg, rgb(30 24 80) 0%, rgb(54 45 122) 100%);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.qd-conf__ref-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
  min-width: 100px;
}
.qd-conf__ref-divider {
  width: 1px;
  height: 2rem;
  background: rgb(255 255 255 / 0.15);
  flex-shrink: 0;
}
.qd-conf__ref-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(255 255 255 / 0.5);
}
.qd-conf__ref-value {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}

/* ── Card ────────────────────────────────────────────────────────────────── */
.qd-conf__card {
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 1.25rem;
  overflow: hidden;
}
.qd-conf__card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
  background: rgb(54 45 122 / 0.03);
  flex-wrap: wrap;
}
.qd-conf__plan-name {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1e1b4b;
  margin: 0 0 0.2rem;
  letter-spacing: -0.01em;
}
.qd-conf__engagement {
  font-size: 0.875rem;
  color: #6b6b9a;
  margin: 0;
}
.qd-conf__status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #15803d;
  background: rgb(21 128 61 / 0.1);
  border: 1px solid rgb(21 128 61 / 0.2);
  border-radius: 999px;
  padding: 0.2rem 0.65rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.qd-conf__status-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #15803d;
  animation: qd-pulse-dot 2s ease-in-out infinite;
}

/* ── Table ───────────────────────────────────────────────────────────────── */
.qd-conf__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.qd-conf__table thead th {
  padding: 0.6rem 1.25rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #9a9ab8;
  text-align: left;
  border-bottom: 1px solid rgb(54 45 122 / 0.07);
  background: rgb(54 45 122 / 0.02);
}
.qd-conf__table-num { text-align: right !important; }
.qd-conf__table tbody td {
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid rgb(54 45 122 / 0.05);
  color: #1e1b4b;
  vertical-align: middle;
}
.qd-conf__table tbody tr:last-child td { border-bottom: none; }
.qd-conf__table-row--plan td { font-weight: 600; }
.qd-conf__item-name { font-weight: 500; display: inline; }
.qd-conf__item-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  color: #15803d;
  background: rgb(21 128 61 / 0.1);
  border-radius: 999px;
  padding: 0.1rem 0.5rem;
  margin-left: 0.5rem;
  vertical-align: middle;
}
.qd-conf__item-qty {
  font-size: 0.8rem;
  color: #6b6b9a;
  background: rgb(54 45 122 / 0.07);
  border-radius: 0.25rem;
  padding: 0.1rem 0.35rem;
  margin-left: 0.35rem;
}
.qd-conf__table tfoot td {
  padding: 0.6rem 1.25rem;
  color: #6b6b9a;
  font-size: 0.875rem;
  border-top: 1px solid rgb(54 45 122 / 0.07);
}
.qd-conf__table-subtotal td { padding-top: 1rem; }
.qd-conf__table-total td {
  font-weight: 800;
  font-size: 1rem;
  color: #1e1b4b;
  border-top: 2px solid rgb(54 45 122 / 0.12);
  padding-top: 0.875rem;
}
.qd-conf__table-monthly td {
  font-weight: 700;
  color: #362d7a;
  background: rgb(54 45 122 / 0.03);
}
.qd-conf__table-monthly small {
  font-size: 0.75rem;
  font-weight: 400;
  opacity: 0.7;
  margin-left: 0.2rem;
}

/* ── Billing info ────────────────────────────────────────────────────────── */
.qd-conf__billing-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgb(54 45 122 / 0.04);
  border: 1.5px solid rgb(54 45 122 / 0.1);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  font-size: 0.9rem;
  color: #4b4980;
}
.qd-conf__billing-info svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: #362d7a; }
.qd-conf__billing-info p { margin: 0; }

/* ── Actions ─────────────────────────────────────────────────────────────── */
.qd-conf__actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding-bottom: 2rem;
}
.qd-conf__btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: linear-gradient(135deg, #362d7a 0%, #4a3fa0 100%);
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 700;
  border-radius: 0.625rem;
  text-decoration: none;
  transition: opacity 0.15s;
}
.qd-conf__btn-primary:hover { opacity: 0.9; color: #fff; }
.qd-conf__btn-primary svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.qd-conf__btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  color: #362d7a;
  font-size: 0.9375rem;
  font-weight: 600;
  border: 1.5px solid rgb(54 45 122 / 0.3);
  border-radius: 0.625rem;
  text-decoration: none;
  transition: background 0.15s;
}
.qd-conf__btn-secondary:hover { background: rgb(54 45 122 / 0.05); color: #362d7a; }
.qd-conf__btn-secondary svg { width: 1rem; height: 1rem; flex-shrink: 0; }

/* ── Error state ─────────────────────────────────────────────────────────── */
.qd-conf--error {
  text-align: center;
  padding: 3rem 1rem;
  align-items: center;
}

@media (max-width: 480px) {
  .qd-conf__ref-band { flex-direction: column; gap: 0.75rem; }
  .qd-conf__ref-divider { display: none; }
  .qd-conf__table thead { display: none; }
  .qd-conf__table tbody td,
  .qd-conf__table tfoot td { padding: 0.6rem 1rem; }
  .qd-conf__actions { flex-direction: column; }
  .qd-conf__btn-primary,
  .qd-conf__btn-secondary { justify-content: center; }
}
