/* =========================================================
   ALVPort Theme 0.9.0 — Cotización 2.0
   ========================================================= */

.alv-quote {
  --alv-quote-green: #008200;
  --alv-quote-green-dark: #2a4d16;
  --alv-quote-navy: #162b4c;
  --alv-quote-text: #243247;
  --alv-quote-muted: #6e7d8d;
  --alv-quote-line: #e1e7eb;
  width: min(1180px, calc(100% - 36px));
  margin: 34px auto 54px;
  color: var(--alv-quote-text);
}

.alv-quote__hero {
  margin-bottom: 26px;
  padding: 30px 34px;
  border: 1px solid var(--alv-quote-line);
  border-radius: 20px;
  background:
    radial-gradient(circle at 90% 15%, rgba(0,130,0,.09), transparent 28%),
    linear-gradient(135deg, #ffffff, #f5faf6);
  box-shadow: 0 10px 28px rgba(22,43,76,.045);
}

.alv-quote__eyebrow,
.alv-quote-summary__eyebrow,
.alv-quote__section-head > div > span {
  display: block;
  margin-bottom: 6px;
  color: var(--alv-quote-green);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.alv-quote__hero h1,
.alv-quote__section-head h2,
.alv-quote-summary h2,
.alv-quote-empty h2 {
  margin: 0;
  color: var(--alv-quote-navy);
  font-weight: 850;
  line-height: 1.1;
}

.alv-quote__hero h1 {
  font-size: clamp(2rem, 4vw, 3rem);
}

.alv-quote__hero p {
  max-width: 720px;
  margin: 10px 0 0;
  color: var(--alv-quote-muted);
  line-height: 1.65;
}

.alv-quote__notices .woocommerce-notices-wrapper {
  margin-bottom: 18px;
}

.alv-quote__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 24px;
  align-items: start;
}

.alv-quote__main,
.alv-quote-summary,
.alv-quote-empty {
  border: 1px solid var(--alv-quote-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(22,43,76,.04);
}

.alv-quote__main {
  padding: 24px;
}

.alv-quote__section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.alv-quote__section-head h2 {
  font-size: 1.42rem;
}

.alv-quote__count {
  flex: 0 0 auto;
  padding: 8px 12px;
  border: 1px solid rgba(0,130,0,.10);
  border-radius: 999px;
  background: #edf7ee;
  color: var(--alv-quote-green-dark);
  font-size: .78rem;
  font-weight: 800;
}

.alv-quote-list__items {
  display: grid;
  gap: 12px;
}

.alv-quote-item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) 112px 82px;
  gap: 18px;
  align-items: center;
  min-height: 132px;
  padding: 14px;
  border: 1px solid var(--alv-quote-line);
  border-radius: 14px;
  background: #fff;
}

.alv-quote-item__image {
  display: grid;
  place-items: center;
  width: 112px;
  height: 104px;
  overflow: hidden;
  border-radius: 11px;
  background: #fbfcfc;
}

.alv-quote-item__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.alv-quote-item__brand {
  display: block;
  margin-bottom: 5px;
  color: var(--alv-quote-green);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.alv-quote-item__info h3 {
  margin: 0 0 7px;
  font-size: .98rem;
  font-weight: 820;
  line-height: 1.35;
}

.alv-quote-item__info h3 a {
  color: var(--alv-quote-navy);
  text-decoration: none;
}

.alv-quote-item__info h3 a:hover {
  color: var(--alv-quote-green);
}

.alv-quote-item__sku {
  color: var(--alv-quote-muted);
  font-size: .74rem;
}

.alv-quote-item__sku span {
  margin-right: 4px;
  font-weight: 800;
}

.alv-quote-item__variation {
  margin-top: 5px;
  color: var(--alv-quote-muted);
  font-size: .74rem;
}

.alv-quote-item__quantity label {
  display: block;
  margin-bottom: 5px;
  color: var(--alv-quote-muted);
  font-size: .72rem;
  font-weight: 750;
}

.alv-quote-item__quantity .quantity {
  float: none !important;
  margin: 0 !important;
}

.alv-quote-item__quantity .qty {
  width: 82px;
  min-height: 42px;
  padding: 0 8px;
  border: 1px solid #ccd6df;
  border-radius: 10px;
  background: #fff;
  color: var(--alv-quote-navy);
  font: inherit;
  font-weight: 800;
  text-align: center;
}

.alv-quote-item__remove {
  text-align: right;
}

.alv-quote-item__remove a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #7b8794;
  font-size: .76rem;
  font-weight: 760;
  text-decoration: none;
}

.alv-quote-item__remove a span {
  font-size: 1.15rem;
  line-height: 1;
}

.alv-quote-item__remove a:hover,
.alv-quote-item__remove a:focus-visible {
  color: #a22626;
}

.alv-quote-list__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--alv-quote-line);
}

.alv-quote-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 17px;
  border: 0;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 820;
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
}

.alv-quote-button--primary {
  background: var(--alv-quote-green) !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(0,130,0,.15);
}

.alv-quote-button--primary:hover,
.alv-quote-button--primary:focus-visible {
  background: var(--alv-quote-green-dark) !important;
}

.alv-quote-button--secondary {
  border: 1px solid var(--alv-quote-line);
  background: #fff;
  color: var(--alv-quote-navy) !important;
}

.alv-quote-button--secondary:hover,
.alv-quote-button--secondary:focus-visible {
  border-color: rgba(0,130,0,.26);
  background: #f5faf6;
}

.alv-quote-summary {
  position: sticky;
  top: 112px;
  padding: 24px;
}

.alv-quote-summary h2 {
  margin-bottom: 20px;
  font-size: 1.28rem;
}

.alv-quote-summary__metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
  padding: 14px 0;
  border-top: 1px solid var(--alv-quote-line);
  border-bottom: 1px solid var(--alv-quote-line);
}

.alv-quote-summary__metric span {
  color: var(--alv-quote-muted);
  font-size: .79rem;
  font-weight: 720;
}

.alv-quote-summary__metric strong {
  color: var(--alv-quote-green);
  font-size: 1.3rem;
}

.alv-quote-summary__notes {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.alv-quote-summary__notes li {
  position: relative;
  padding-left: 22px;
  color: var(--alv-quote-muted);
  font-size: .79rem;
  line-height: 1.5;
}

.alv-quote-summary__notes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--alv-quote-green);
  font-weight: 900;
}

.alv-quote-summary__next {
  margin-top: 20px;
  padding: 15px;
  border-radius: 12px;
  background: #f5faf6;
}

.alv-quote-summary__next span {
  color: var(--alv-quote-green);
  font-size: .69rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.alv-quote-summary__next p {
  margin: 6px 0 0;
  color: var(--alv-quote-navy);
  font-size: .82rem;
  line-height: 1.45;
}

.alv-quote-empty {
  display: grid;
  justify-items: center;
  padding: 58px 24px;
  text-align: center;
}

.alv-quote-empty__icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 15px;
  border-radius: 50%;
  background: #edf7ee;
  color: var(--alv-quote-green);
  font-size: 1.4rem;
  font-weight: 900;
}

.alv-quote-empty p {
  max-width: 520px;
  margin: 10px 0 20px;
  color: var(--alv-quote-muted);
  line-height: 1.6;
}

@media (max-width: 960px) {
  .alv-quote__layout {
    grid-template-columns: 1fr;
  }

  .alv-quote-summary {
    position: static;
  }
}

@media (max-width: 720px) {
  .alv-quote {
    width: min(100% - 22px, 1180px);
    margin-top: 18px;
  }

  .alv-quote__hero {
    padding: 24px 20px;
    border-radius: 16px;
  }

  .alv-quote__main {
    padding: 14px;
  }

  .alv-quote__section-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .alv-quote-item {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
  }

  .alv-quote-item__image {
    width: 88px;
    height: 88px;
  }

  .alv-quote-item__quantity {
    grid-column: 1 / 2;
  }

  .alv-quote-item__remove {
    grid-column: 2 / 3;
    text-align: left;
  }

  .alv-quote-list__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .alv-quote-button {
    width: 100%;
  }
}


/* =========================================================
   0.9.2 — Cotización: hero watermark, counts and autosave
   ========================================================= */

.alv-quote__hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 150px;
}

.alv-quote__hero-copy {
  position: relative;
  z-index: 2;
  max-width: 760px;
}

.alv-quote__hero-logo {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 28px;
  width: min(285px, 34%);
  max-height: 118px;
  object-fit: contain;
  transform: translateY(-50%);
  opacity: .09;
  filter: saturate(.7) contrast(.86) blur(.25px);
  mix-blend-mode: multiply;
  pointer-events: none;
  user-select: none;
}

.alv-quote__counts {
  display: grid;
  justify-items: end;
  gap: 5px;
  flex: 0 0 auto;
}

.alv-quote__counts small {
  color: var(--alv-quote-muted);
  font-size: .70rem;
  font-weight: 650;
}

.alv-quote-item__save-state {
  display: block;
  min-height: 15px;
  margin-top: 5px;
  color: var(--alv-quote-muted);
  font-size: .64rem;
  line-height: 1.2;
}

.alv-quote-item__save-state.is-saving {
  color: #7a8795;
}

.alv-quote-item__save-state.is-saved {
  color: var(--alv-quote-green);
}

.alv-quote-item__save-state.is-error {
  color: #a22626;
}

.alv-quote-item.is-saving .alv-quote-item__quantity .qty {
  border-color: rgba(0,130,0,.32);
  box-shadow: 0 0 0 3px rgba(0,130,0,.055);
}

.alv-quote-list__actions {
  justify-content: flex-start;
}

/* Compact product summary in the right column. */
.alv-quote-summary__products {
  display: grid;
  gap: 0;
  margin: 0 0 16px;
  padding: 0;
  border-top: 1px solid var(--alv-quote-line);
  border-bottom: 1px solid var(--alv-quote-line);
  list-style: none;
}

.alv-quote-summary__products li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 10px 0;
  color: var(--alv-quote-text);
  font-size: .76rem;
  line-height: 1.38;
}

.alv-quote-summary__products li + li {
  border-top: 1px solid #eef1f3;
}

.alv-quote-summary__products span {
  min-width: 0;
}

.alv-quote-summary__products strong {
  color: var(--alv-quote-green);
  font-size: .77rem;
  white-space: nowrap;
}

.alv-quote-summary__units {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -2px 0 18px;
  color: var(--alv-quote-muted);
  font-size: .72rem;
}

.alv-quote-summary__units strong {
  color: var(--alv-quote-navy);
  font-size: .86rem;
}

@media (max-width: 720px) {
  .alv-quote__hero {
    min-height: 0;
  }

  .alv-quote__hero-logo {
    right: -22px;
    width: 190px;
    opacity: .055;
  }

  .alv-quote__counts {
    justify-items: start;
  }
}


/* =========================================================
   1.0.0 — Formulario final de solicitud
   ========================================================= */

.alv-quote-request {
  margin-top: 22px;
  padding-top: 24px;
  border-top: 1px solid var(--alv-quote-line);
}

.alv-quote-request__head {
  margin-bottom: 20px;
}

.alv-quote-request__head > span {
  display: block;
  margin-bottom: 6px;
  color: var(--alv-quote-green);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.alv-quote-request__head h2 {
  margin: 0;
  color: var(--alv-quote-navy);
  font-size: 1.45rem;
  line-height: 1.15;
}

.alv-quote-request__head p {
  margin: 8px 0 0;
  color: var(--alv-quote-muted);
  font-size: .82rem;
  line-height: 1.55;
}

.alv-quote-request__form {
  display: grid;
  gap: 16px;
}

.alv-quote-form-section {
  padding: 18px;
  border: 1px solid var(--alv-quote-line);
  border-radius: 14px;
  background: #fbfcfc;
}

.alv-quote-form-section h3,
.alv-quote-form-section__title h3 {
  margin: 0 0 13px;
  color: var(--alv-quote-navy);
  font-size: .94rem;
  font-weight: 820;
}

.alv-quote-form-section__title {
  margin-bottom: 13px;
}

.alv-quote-form-section__title h3 {
  margin-bottom: 4px;
}

.alv-quote-form-section__title p {
  margin: 0;
  color: var(--alv-quote-muted);
  font-size: .74rem;
  line-height: 1.45;
}

.alv-quote-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.alv-quote-form-grid__full {
  grid-column: 1 / -1;
}

.alv-quote-form-grid label,
.alv-quote-address-source,
.alv-quote-notes {
  display: grid;
  gap: 6px;
}

.alv-quote-form-grid label > span,
.alv-quote-address-source > span,
.alv-quote-notes > span {
  color: #536274;
  font-size: .72rem;
  font-weight: 760;
}

.alv-quote-request input[type="text"],
.alv-quote-request input[type="email"],
.alv-quote-request input[type="tel"],
.alv-quote-request select,
.alv-quote-request textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #d5dee5;
  border-radius: 10px;
  background: #fff;
  color: var(--alv-quote-navy);
  font: inherit;
  font-size: .82rem;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.alv-quote-request textarea {
  min-height: 82px;
  resize: vertical;
}

.alv-quote-request input:focus,
.alv-quote-request select:focus,
.alv-quote-request textarea:focus {
  border-color: rgba(0,130,0,.46);
  box-shadow: 0 0 0 4px rgba(0,130,0,.07);
}

.alv-quote-request__profile-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--alv-quote-green);
  font-size: .74rem;
  font-weight: 780;
  text-decoration: none;
}

.alv-quote-address-source {
  margin-bottom: 13px;
}

.alv-quote-address-fields.is-hidden {
  display: none;
}

.alv-quote-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  color: #536274;
  font-size: .75rem;
  font-weight: 690;
}

.alv-quote-checkbox input {
  width: 16px;
  height: 16px;
  accent-color: var(--alv-quote-green);
}

.alv-quote-request__submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border: 1px solid rgba(0,130,0,.13);
  border-radius: 14px;
  background: linear-gradient(135deg, #f9fcf9, #eef8ef);
}

.alv-quote-request__submit > div {
  display: grid;
  gap: 3px;
}

.alv-quote-request__submit strong {
  color: var(--alv-quote-navy);
  font-size: .8rem;
}

.alv-quote-request__submit span {
  color: var(--alv-quote-muted);
  font-size: .72rem;
}

.alv-quote-request__submit .alv-quote-button {
  flex: 0 0 auto;
  min-width: 220px;
}

.alv-quote-request__submit .alv-quote-button:disabled {
  opacity: .56;
  cursor: wait;
}

.alv-quote-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.alv-quote-success {
  display: grid;
  justify-items: center;
  padding: 54px 28px;
  border: 1px solid var(--alv-quote-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 85% 12%, rgba(0,130,0,.08), transparent 32%),
    #fff;
  box-shadow: 0 8px 24px rgba(22,43,76,.04);
  text-align: center;
}

.alv-quote-success__icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #eaf6eb;
  color: var(--alv-quote-green);
  font-size: 1.5rem;
  font-weight: 900;
}

.alv-quote-success__eyebrow {
  margin-bottom: 7px;
  color: var(--alv-quote-green);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.alv-quote-success h2 {
  margin: 0;
  color: var(--alv-quote-navy);
  font-size: clamp(1.5rem, 3vw, 2.05rem);
}

.alv-quote-success p {
  max-width: 690px;
  margin: 12px auto 0;
  color: var(--alv-quote-muted);
  line-height: 1.65;
}

.alv-quote-success__email {
  font-size: .8rem;
}

.alv-quote-success .alv-quote-button {
  margin-top: 20px;
}

@media (max-width: 720px) {
  .alv-quote-form-grid {
    grid-template-columns: 1fr;
  }

  .alv-quote-form-grid__full {
    grid-column: auto;
  }

  .alv-quote-request__submit {
    align-items: stretch;
    flex-direction: column;
  }

  .alv-quote-request__submit .alv-quote-button {
    width: 100%;
    min-width: 0;
  }
}


/* =========================================================
   1.0.1 — Solicitud progresiva / compacta
   ========================================================= */

.alv-quote-review.is-hidden,
.alv-quote-review-compact.is-hidden,
.alv-quote-contact-edit.is-hidden,
.alv-saved-contact.is-hidden,
.alv-saved-address-preview.is-hidden,
.alv-quote-address-fields.is-hidden {
  display: none !important;
}

.alv-quote-request[hidden] {
  display: none !important;
}

.alv-quote-review-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
  padding: 14px 16px;
  border: 1px solid var(--alv-quote-line);
  border-radius: 13px;
  background: #fbfcfc;
}

.alv-quote-review-compact > div {
  display: grid;
  gap: 3px;
}

.alv-quote-review-compact > div > span {
  color: var(--alv-quote-green);
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.alv-quote-review-compact strong {
  color: var(--alv-quote-navy);
  font-size: .84rem;
}

.alv-quote-summary__continue {
  width: 100%;
  margin-top: 13px;
}

.alv-saved-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 14px;
  border: 1px solid #dfe7e1;
  border-radius: 11px;
  background: #fff;
}

.alv-saved-contact__content {
  min-width: 0;
}

.alv-saved-contact__content > span {
  display: block;
  margin-bottom: 3px;
  color: var(--alv-quote-green);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.alv-saved-contact__content strong {
  color: var(--alv-quote-navy);
  font-size: .86rem;
}

.alv-saved-contact__content p {
  margin: 4px 0 0;
  color: var(--alv-quote-muted);
  font-size: .72rem;
}

.alv-saved-contact__content p span {
  margin: 0 5px;
}

.alv-text-button {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--alv-quote-green);
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
}

.alv-text-button--muted {
  margin-top: 10px;
  color: #667586;
}

.alv-saved-address-preview {
  margin: 11px 0 0;
  padding: 12px 14px;
  border: 1px solid #e0e7e2;
  border-radius: 11px;
  background: #fff;
}

.alv-saved-address-preview strong {
  display: block;
  margin-bottom: 4px;
  color: var(--alv-quote-navy);
  font-size: .82rem;
}

.alv-saved-address-preview p,
.alv-saved-address-preview small {
  display: block;
  margin: 2px 0 0;
  color: var(--alv-quote-muted);
  font-size: .70rem;
  line-height: 1.42;
}

/* Inputs más compactos: el formulario se siente como una solicitud, no como checkout. */
.alv-quote-request input[type="text"],
.alv-quote-request input[type="email"],
.alv-quote-request input[type="tel"],
.alv-quote-request select {
  min-height: 38px !important;
  height: 38px !important;
  padding: 7px 10px !important;
}

.alv-quote-request textarea {
  min-height: 66px !important;
  padding: 8px 10px !important;
}

.alv-quote-contact-edit {
  margin-top: 2px;
}

@media (max-width: 720px) {
  .alv-quote-review-compact,
  .alv-saved-contact {
    align-items: stretch;
    flex-direction: column;
  }

  .alv-quote-review-compact .alv-quote-button {
    width: 100%;
  }

  .alv-text-button {
    width: fit-content;
  }
}


/* =========================================================
   1.2.0 — Datos reutilizables desde Cotización
   ========================================================= */
.alv-saved-address-preview,.alv-saved-billing-preview { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid #dfe7e1; border-radius:11px; background:#fff; }
.alv-saved-address-preview>div,.alv-saved-billing-preview>div { min-width:0; }
.alv-saved-address-preview strong,.alv-saved-billing-preview strong { color:var(--alv-quote-navy); font-size:.82rem; }
.alv-saved-address-preview p,.alv-saved-billing-preview p { margin:3px 0 0; color:var(--alv-quote-muted); font-size:.7rem; line-height:1.4; }
.alv-saved-address-preview small,.alv-saved-billing-preview small { display:block; margin-top:3px; color:#7b8794; font-size:.65rem; }
.alv-saved-billing-preview.is-hidden,.alv-quote-billing-fields.is-hidden { display:none!important; }
.alv-quote-billing-fields { margin-top:12px; }
@media(max-width:620px){ .alv-saved-address-preview,.alv-saved-billing-preview{align-items:flex-start;flex-direction:column} }


/* =========================================================
   1.2.3 — Fix visual: edición de datos de contacto
   ========================================================= */

/*
 * El checkbox "Guardar estos cambios..." y "Usar datos guardados"
 * eran hermanos inline dentro del editor de contacto. En anchos medios
 * podían quedar pegados o superpuestos. Convertimos el editor en una
 * composición vertical explícita.
 */
.alv-quote-contact-edit:not(.is-hidden) {
  display: grid;
  gap: 12px;
}

.alv-quote-contact-edit > .alv-quote-form-grid {
  margin: 0;
}

.alv-quote-contact-edit > .alv-quote-checkbox {
  display: flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 8px;
  margin: 0;
  line-height: 1.35;
}

.alv-quote-contact-edit > .alv-quote-checkbox input {
  flex: 0 0 16px;
  margin: 0;
}

.alv-quote-contact-edit > .alv-quote-checkbox span {
  min-width: 0;
}

.alv-quote-contact-edit > .alv-text-button--muted {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 32px;
  margin: 0;
  padding: 0 2px;
  line-height: 1.3;
}

/* Defensive spacing for equivalent save-to-profile controls. */
.alv-quote-address-fields > .alv-quote-checkbox,
.alv-quote-billing-fields > .alv-quote-checkbox {
  margin-top: 12px;
  margin-bottom: 0;
  line-height: 1.35;
}

.alv-quote-billing-fields > .alv-quote-checkbox + .alv-quote-checkbox {
  margin-top: 8px;
}

@media (max-width: 620px) {
  .alv-quote-contact-edit > .alv-quote-checkbox {
    align-items: flex-start;
  }
}


/* =========================================================
   2.2.5 — Crear cuenta desde la cotización
   ========================================================= */

.alv-quote-account {
  margin-top: 16px;
  padding: 15px 16px;
  border: 1px solid rgba(0,130,0,.14);
  border-radius: 13px;
  background:
    radial-gradient(circle at 96% 0%, rgba(0,130,0,.08), transparent 30%),
    #f8fbf8;
}

.alv-quote-account__intro {
  display: flex;
  gap: 11px;
  align-items: flex-start;
}

.alv-quote-account__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #e8f5e9;
  color: var(--alv-quote-green);
  font-size: 1rem;
  font-weight: 900;
}

.alv-quote-account__intro strong {
  display: block;
  margin: 1px 0 3px;
  color: var(--alv-quote-navy);
  font-size: .82rem;
  font-weight: 820;
}

.alv-quote-account__intro p {
  margin: 0;
  color: var(--alv-quote-muted);
  font-size: .72rem;
  line-height: 1.45;
}

.alv-quote-account__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 13px;
  color: #33465a;
  font-size: .75rem;
  font-weight: 800;
  cursor: pointer;
}

.alv-quote-account__toggle input {
  width: 17px;
  height: 17px;
  accent-color: var(--alv-quote-green);
}

.alv-quote-account__fields {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,130,0,.12);
}

.alv-quote-account__fields.is-hidden {
  display: none;
}

.alv-quote-account__terms {
  align-items: flex-start;
  line-height: 1.45;
}

.alv-quote-account__terms a {
  color: var(--alv-quote-green);
  font-weight: 760;
}

.alv-quote-account__login {
  margin: 10px 0 0;
  color: var(--alv-quote-muted);
  font-size: .7rem;
}

.alv-quote-account__login a {
  color: var(--alv-quote-green);
  font-weight: 800;
  text-decoration: none;
}

.alv-quote-success__account {
  display: grid;
  gap: 4px;
  width: min(520px, 100%);
  margin: 16px 0;
  padding: 13px 15px;
  border: 1px solid rgba(0,130,0,.14);
  border-radius: 12px;
  background: #f2f9f3;
  text-align: left;
}

.alv-quote-success__account strong {
  color: var(--alv-quote-navy);
  font-size: .79rem;
}

.alv-quote-success__account span {
  color: var(--alv-quote-muted);
  font-size: .72rem;
  line-height: 1.45;
}

.alv-quote-success__account a {
  margin-top: 2px;
  color: var(--alv-quote-green);
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
}


/* 2.2.6 — verificación de correo dentro de Mi cotización */
.alv-quote-account .alv-email-verification {
  margin: 14px 0 2px;
  padding: 13px 14px;
  border: 1px solid rgba(0,130,0,.15);
  border-radius: 12px;
  background: #fff;
}

.alv-quote-account .alv-email-verification__intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.alv-quote-account .alv-email-verification__intro > div {
  display: grid;
  gap: 3px;
}

.alv-quote-account .alv-email-verification__intro strong {
  color: var(--alv-quote-navy);
  font-size: .76rem;
}

.alv-quote-account .alv-email-verification__intro span,
.alv-quote-account .alv-email-verification__status {
  color: var(--alv-quote-muted);
  font-size: .68rem;
}

.alv-quote-account .alv-email-verification button {
  min-height: 36px;
  padding: 7px 13px;
  border: 1px solid rgba(0,130,0,.22);
  border-radius: 999px;
  background: #fff;
  color: var(--alv-quote-green);
  font: inherit;
  font-size: .68rem;
  font-weight: 820;
  cursor: pointer;
}

.alv-quote-account .alv-email-verification__code {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 9px;
  align-items: end;
  margin-top: 10px;
}

.alv-quote-account .alv-email-verification__code[hidden] {
  display: none !important;
}

.alv-quote-account .alv-email-verification__code label {
  display: grid;
  gap: 5px;
}

.alv-quote-account .alv-email-verification__status {
  min-height: 17px;
  margin-top: 7px;
  font-weight: 700;
}

.alv-quote-account .alv-email-verification__status.is-success {
  color: var(--alv-quote-green);
}

.alv-quote-account .alv-email-verification__status.is-error {
  color: #b42318;
}

@media (max-width: 620px) {
  .alv-quote-account .alv-email-verification__intro {
    align-items: stretch;
    flex-direction: column;
  }

  .alv-quote-account .alv-email-verification__code {
    grid-template-columns: 1fr;
  }
}
