/* Phase 3 registration: the visible list contains only confirmed Phase 3
 * units; the original Elementor field stays enabled as the submitted source,
 * and the architectural type is still derived server-side. */
.llp3-entry-page:not(.logged-in) form#inscription .elementor-field-group-type,
.llp3-entry-page:not(.logged-in) form#inscription .elementor-field-group-type + .elementor-field-type-html {
  display: none !important;
}

.llp3-entry-page form#inscription .llp3-unit-source {
  display: none !important;
}

.llp3-entry-page form#inscription select.llp3-unit-select {
  appearance: none;
  background-color: var(--llp3-white) !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--llp3-teal) 50%),
    linear-gradient(135deg, var(--llp3-teal) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 21px) 50%,
    calc(100% - 15px) 50% !important;
  background-repeat: no-repeat !important;
  background-size: 6px 6px, 6px 6px !important;
  border: 1px solid rgba(14, 70, 87, 0.34) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 22px rgba(6, 31, 39, 0.07) !important;
  color: var(--llp3-teal) !important;
  font-weight: 500;
  line-height: 1.3;
  min-height: 52px;
  padding: 0.78rem 3rem 0.78rem 1rem !important;
  width: 100%;
}

.llp3-entry-page form#inscription select.llp3-unit-select:invalid {
  color: rgba(14, 70, 87, 0.72) !important;
}

.llp3-entry-page form#inscription select.llp3-unit-select:focus,
.llp3-entry-page form#inscription select.llp3-unit-select:focus-visible {
  border-color: var(--llp3-teal) !important;
  box-shadow: 0 0 0 3px rgba(14, 70, 87, 0.14) !important;
  outline: 0 !important;
}

.llp3-entry-page form#inscription select.llp3-unit-select option,
.llp3-entry-page form#inscription select.llp3-unit-select optgroup {
  background: var(--llp3-white);
  color: var(--llp3-teal);
}

.llp3-entry-page form#inscription [data-llp3-duplicate-generic-error="1"][hidden] {
  display: none !important;
}

.llp3-entry-page form#inscription .llp3-unit-help {
  color: #0e4657;
  display: block;
  font-size: 0.88rem;
  line-height: 1.35;
  margin: 0.45rem 0 0;
  text-align: left;
  width: 100%;
}

.llp3-entry-page form#inscription .llp3-obsolete-studio-island-notice {
  display: none !important;
}

.llp3-entry-page form#inscription .llp3-registration-step-target,
.llp3-entry-page form#inscription .elementor-field-group.llp3-registration-step-target {
  scroll-margin-top: clamp(96px, 14vh, 140px);
}

.llp3-entry-page form#inscription .llp3-registration-step-status {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* The registration form is part of the same Les Loges system as the customer
 * area. Keep controls comfortable and prevent Elementor defaults from
 * reintroducing electric blue. */
body.llp3-entry-page,
body.llp3-faq,
body.llp3-conditions {
  --llp3-teal: #0e4657;
  --llp3-teal-deep: #061f27;
  --llp3-black: #000;
  --llp3-gold: #c28203;
  --llp3-gold-deep: #8b6400;
  --llp3-white: #fff;
}

body.llp3-entry-page .jupiterx-scroll-top,
body.llp3-account-guest .jupiterx-scroll-top,
body.llp3-customer .jupiterx-scroll-top,
body.llp3-faq .jupiterx-scroll-top,
body.llp3-conditions .jupiterx-scroll-top {
  align-items: center;
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-teal-deep) 68%, var(--llp3-black) 100%) !important;
  border: 1px solid var(--llp3-teal) !important;
  border-radius: 50% !important;
  box-shadow: 0 8px 20px rgba(6, 31, 39, 0.2) !important;
  color: var(--llp3-white) !important;
  display: inline-flex;
  height: 48px;
  justify-content: center;
  min-height: 48px;
  min-width: 48px;
  transition: box-shadow 160ms ease, transform 160ms ease;
  width: 48px;
}

body.llp3-entry-page .jupiterx-scroll-top::before,
body.llp3-account-guest .jupiterx-scroll-top::before,
body.llp3-customer .jupiterx-scroll-top::before,
body.llp3-faq .jupiterx-scroll-top::before,
body.llp3-conditions .jupiterx-scroll-top::before {
  color: inherit !important;
}

body.llp3-entry-page .jupiterx-scroll-top:hover,
body.llp3-account-guest .jupiterx-scroll-top:hover,
body.llp3-customer .jupiterx-scroll-top:hover,
body.llp3-faq .jupiterx-scroll-top:hover,
body.llp3-conditions .jupiterx-scroll-top:hover {
  box-shadow: 0 12px 26px rgba(6, 31, 39, 0.28) !important;
  transform: translateY(-2px);
}

body.llp3-entry-page .jupiterx-scroll-top:focus-visible,
body.llp3-account-guest .jupiterx-scroll-top:focus-visible,
body.llp3-customer .jupiterx-scroll-top:focus-visible,
body.llp3-faq .jupiterx-scroll-top:focus-visible,
body.llp3-conditions .jupiterx-scroll-top:focus-visible {
  outline: 3px solid var(--llp3-gold) !important;
  outline-offset: 3px !important;
}

body.llp3-faq #eng.elementor-menu-anchor {
  scroll-margin-top: clamp(120px, 18vh, 220px);
}

.llp3-entry-page form#inscription input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.llp3-entry-page form#inscription select,
.llp3-entry-page form#inscription textarea {
  box-sizing: border-box;
  min-height: 48px;
}

/* Elementor can programmatically focus an informational step container. Keep
 * that useful focus cue, but replace Chromium's electric-blue outline. */
.llp3-entry-page form#inscription .elementor-field-type-html:focus,
.llp3-entry-page form#inscription .elementor-field-type-html:focus-visible,
.llp3-entry-page form#inscription .llp3-registration-step-target:focus,
.llp3-entry-page form#inscription .llp3-registration-step-target:focus-visible {
  outline: 3px solid var(--llp3-gold-deep) !important;
  outline-offset: 3px !important;
}

/* Chrome paints autofilled controls with a blue internal background that
 * ignores background-color. An inset white layer plus an explicit text fill
 * preserves autofill while keeping the registration fields on brand. */
.llp3-entry-page form#inscription input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--llp3-white) inset !important;
  -webkit-text-fill-color: var(--llp3-teal) !important;
  background-color: var(--llp3-white) !important;
  caret-color: var(--llp3-teal) !important;
  color: var(--llp3-teal) !important;
}

.llp3-entry-page form#inscription input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--llp3-white) inset, 0 0 0 3px rgba(14, 70, 87, 0.14) !important;
  border-color: var(--llp3-teal) !important;
  outline: 0 !important;
}

.llp3-entry-page form#inscription input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):autofill {
  box-shadow: 0 0 0 1000px var(--llp3-white) inset !important;
  background-color: var(--llp3-white) !important;
  caret-color: var(--llp3-teal) !important;
  color: var(--llp3-teal) !important;
}

.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-next,
.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-previous,
.llp3-entry-page form#inscription button[type="submit"],
.llp3-entry-page form#inscription input[type="submit"] {
  align-items: center;
  border: 1px solid var(--llp3-teal) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--llp3-white) !important;
  display: inline-flex;
  font-weight: 600 !important;
  justify-content: center;
  line-height: 1.25 !important;
  min-height: 48px;
  padding: 0.75rem 1.15rem !important;
  text-align: center;
  text-decoration: none !important;
}

.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-previous {
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-teal-deep) 68%, var(--llp3-black) 100%) !important;
}

.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-next,
.llp3-entry-page form#inscription button[type="submit"],
.llp3-entry-page form#inscription input[type="submit"] {
  background-color: var(--llp3-gold-deep) !important;
  background-image: none !important;
  border-color: var(--llp3-gold-deep) !important;
}

.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-next:focus-visible,
.llp3-entry-page form#inscription .e-form__buttons__wrapper__button-previous:focus-visible,
.llp3-entry-page form#inscription button[type="submit"]:focus-visible,
.llp3-entry-page form#inscription input[type="submit"]:focus-visible {
  outline: 3px solid var(--llp3-gold) !important;
  outline-offset: 3px !important;
}

/* Keep the Data en ligne footer mark discreet without resizing the Les Loges logo. */
.llp3-entry-page img.wp-image-7863,
.llp3-account-guest img.wp-image-7863,
.llp3-customer img.wp-image-7863,
.llp3-faq img.wp-image-7863,
.llp3-conditions img.wp-image-7863 {
  display: inline-block !important;
  height: auto !important;
  max-width: 96px !important;
  width: 96px !important;
}

.single-product .zoo-cw-attr-row .label {
  display: block !important;
  float: none !important;
  line-height: 1.35;
  margin: 0 0 0.75rem !important;
  width: 100% !important;
}

.single-product .zoo-cw-attr-row .label > label,
.single-product .zoo-cw-attr-row .label label {
  box-sizing: border-box;
  color: var(--llp3-teal) !important;
  display: block !important;
  float: none !important;
  margin: 0 !important;
  max-width: 100%;
  width: 100% !important;
}

.single-product .zoo-cw-attr-row .zoo-cw-name {
  box-sizing: border-box;
  clear: both !important;
  display: block !important;
  float: none !important;
  line-height: 1.35;
  margin: 0.35rem 0 0 !important;
  max-width: 100%;
  overflow-wrap: anywhere;
  width: 100% !important;
}

.single-product .zoo-cw-group-attribute {
  display: grid !important;
  gap: 0.5rem !important;
  grid-template-columns: repeat(auto-fit, minmax(56px, 60px));
  justify-content: start;
  width: 100% !important;
}

.single-product ul.zoo-cw-variations {
  padding-left: 0 !important;
}

body.llp3-customer.single-product
  .single_variation
  .woocommerce-variation-price
  :is(.price, .amount) {
  color: var(--llp3-teal) !important;
}

/* This star introduces a product disclaimer; it is informative, not a form
 * validation error, so it belongs to the brand accent rather than warning red. */
body.llp3-customer.single-product
  :is(.elementor-element-e0ff2bc, [data-id="e0ff2bc"])
  .elementor-widget-container
  > p
  > span:first-child {
  color: var(--llp3-gold-accessible) !important;
}

.single-product .zoo-cw-group-attribute > select {
  grid-column: 1 / -1;
}

.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option {
  margin: 0 !important;
  max-width: 60px;
  width: 60px !important;
}

.single-product .zoo-cw-attribute-option:focus-visible {
  border-radius: 50%;
  outline: 3px solid #0e4657;
  outline-offset: 3px;
}

/* CleverSwatches keeps a wide, invisible native tooltip in the layout on
 * mobile. The accessible label and bounded Les Loges group tooltip replace it. */
body.llp3-customer.single-product .allow-tooltip .zoo-cw-attribute-option::before,
body.llp3-customer.single-product .allow-tooltip .zoo-cw-attribute-option::after {
  content: none !important;
  display: none !important;
}

.single-product .llp3-variation-error {
  color: #9b1c1c;
  font-weight: 600;
  margin: 0.75rem 0;
}

.single-product .single_add_to_cart_button[disabled],
.single-product .single_add_to_cart_button[aria-disabled="true"] {
  cursor: not-allowed !important;
  opacity: 0.52 !important;
}

.llp3-customer.single-product form.cart .quantity {
  display: none !important;
}

.single-product .llp3-submitted-notice {
  margin: 1rem auto;
  max-width: 1200px;
}

.single-product .cw-product-gallery,
.single-product .cw-product-gallery-main,
.single-product .cw-product-gallery-main > * {
  max-width: 100%;
}

.single-product .horizontal .cw-product-gallery-thumbs {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
  .single-product .elementor-element-564c7d1e > .elementor-container {
    flex-wrap: wrap !important;
  }

  .single-product .elementor-element-331a168a,
  .single-product .elementor-element-6b629974 {
    width: 100% !important;
  }

  .single-product .elementor-element-331a168a > .elementor-element-populated,
  .single-product .elementor-element-6b629974 > .elementor-element-populated {
    padding: 20px !important;
  }
}

@media (max-width: 767px) {
  body.llp3-faq footer.jupiterx-footer,
  body.llp3-faq .jupiterx-footer {
    box-sizing: border-box;
    padding-bottom: calc(80px + env(safe-area-inset-bottom)) !important;
  }

  body.llp3-faq #eng.elementor-menu-anchor {
    scroll-margin-top: 230px;
  }

  body.llp3-conditions .elementor-widget-text-editor,
  body.llp3-conditions .elementor-widget-text-editor p,
  body.llp3-conditions .elementor-widget-text-editor li {
    hyphens: auto;
    line-height: 1.6;
    text-align: left !important;
  }

  .llp3-entry-page form#inscription .llp3-registration-step-target,
  .llp3-entry-page form#inscription .elementor-field-group.llp3-registration-step-target {
    scroll-margin-top: clamp(180px, 24vh, 220px);
  }

  .llp3-entry-page .elementor-section .elementor-container,
  .single-product .elementor-section .elementor-container {
    max-width: 100% !important;
  }

  .llp3-entry-page form#inscription,
  .single-product .elementor-element-6b629974 .elementor-widget-wrap {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .llp3-entry-page form#inscription .elementor-field-type-html,
  .llp3-entry-page form#inscription .elementor-field-type-html p,
  .llp3-entry-page form#inscription .elementor-field-type-html li {
    hyphens: auto;
    line-height: 1.55;
    text-align: left !important;
  }

  .llp3-entry-page form#inscription .e-form__buttons__wrapper {
    gap: 0.65rem;
  }

  .llp3-entry-page form#inscription .e-form__buttons__wrapper__button-next,
  .llp3-entry-page form#inscription .e-form__buttons__wrapper__button-previous,
  .llp3-entry-page form#inscription button[type="submit"],
  .llp3-entry-page form#inscription input[type="submit"] {
    min-height: 48px;
  }

  .single-product .elementor-element-331a168a,
  .single-product .elementor-element-6b629974 {
    width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
 * Phase 3 customer visual system
 * ----------------------------------------------------------------------- */

body.llp3-customer,
body.llp3-account-guest,
body.llp3-faq,
body.llp3-conditions {
  --llp3-teal: #0e4657;
  --llp3-teal-deep: #061f27;
  --llp3-black: #000;
  --llp3-gold: #c28203;
  --llp3-gold-accessible: #8b6400;
  --llp3-ink: #172329;
  --llp3-muted: #5b6870;
  --llp3-line: #d9e0e3;
  --llp3-surface: #f6f8f8;
  --llp3-white: #fff;
  color: var(--llp3-ink);
}

.llp3-faq .jupiterx-main a:not(.elementor-button):not(.button) {
  color: var(--llp3-teal);
}

.llp3-faq .jupiterx-main a:not(.elementor-button):not(.button):hover {
  color: var(--llp3-gold-accessible);
}

/* The bilingual FAQ was authored with competing legacy blues, oranges and
 * inline golds. Keep all headings, questions and answers inside the exact Les
 * Loges palette. #8b6400 gives a 5.36:1 contrast ratio against white. */
body.llp3-faq :is(
  .elementor-element-1aeb831,
  [data-id="1aeb831"],
  .elementor-element-332241c,
  [data-id="332241c"],
  .elementor-element-6b62d7a,
  [data-id="6b62d7a"],
  .elementor-element-d31872b,
  [data-id="d31872b"],
  .elementor-element-bf14012,
  [data-id="bf14012"],
  .elementor-element-38e210f,
  [data-id="38e210f"],
  .elementor-element-af27295,
  [data-id="af27295"],
  .elementor-element-b0a10bb,
  [data-id="b0a10bb"],
  .elementor-element-29633f9,
  [data-id="29633f9"],
  .elementor-element-b5d2a98,
  [data-id="b5d2a98"]
).elementor-widget-text-editor,
body.llp3-faq :is(
  .elementor-element-1aeb831,
  [data-id="1aeb831"],
  .elementor-element-332241c,
  [data-id="332241c"],
  .elementor-element-6b62d7a,
  [data-id="6b62d7a"],
  .elementor-element-d31872b,
  [data-id="d31872b"],
  .elementor-element-bf14012,
  [data-id="bf14012"],
  .elementor-element-38e210f,
  [data-id="38e210f"],
  .elementor-element-af27295,
  [data-id="af27295"],
  .elementor-element-b0a10bb,
  [data-id="b0a10bb"],
  .elementor-element-29633f9,
  [data-id="29633f9"],
  .elementor-element-b5d2a98,
  [data-id="b5d2a98"]
).elementor-widget-text-editor * {
  color: var(--llp3-gold-accessible) !important;
}

body.llp3-faq .jupiterx-main .elementor-widget-toggle .elementor-tab-title,
body.llp3-faq .jupiterx-main .elementor-widget-toggle .elementor-tab-title *,
body.llp3-faq .jupiterx-main .elementor-widget-accordion .elementor-tab-title,
body.llp3-faq .jupiterx-main .elementor-widget-accordion .elementor-tab-title *,
body.llp3-faq .jupiterx-main .faq-question,
body.llp3-faq .jupiterx-main .faq-question * {
  color: var(--llp3-teal) !important;
}

body.llp3-faq .jupiterx-main .elementor-widget-toggle .elementor-tab-content,
body.llp3-faq .jupiterx-main .elementor-widget-toggle .elementor-tab-content *,
body.llp3-faq .jupiterx-main .elementor-widget-accordion .elementor-tab-content,
body.llp3-faq .jupiterx-main .elementor-widget-accordion .elementor-tab-content *,
body.llp3-faq .jupiterx-main .faq-answer,
body.llp3-faq .jupiterx-main .faq-answer * {
  color: var(--llp3-gold-accessible) !important;
}

.llp3-conditions .jupiterx-main a:not(.elementor-button):not(.button) {
  color: var(--llp3-teal);
}

.llp3-conditions .jupiterx-main a:not(.elementor-button):not(.button):hover {
  color: var(--llp3-gold-accessible);
}

body.llp3-conditions .jupiterx-main .elementor-widget-text-editor li,
body.llp3-conditions .jupiterx-main .elementor-widget-text-editor li * {
  color: var(--llp3-teal) !important;
}

body.llp3-conditions .jupiterx-main .elementor-widget-text-editor li::marker {
  color: var(--llp3-gold-accessible) !important;
}

.llp3-faq .elementor-button,
.llp3-faq a.button,
.llp3-conditions .elementor-button,
.llp3-conditions a.button {
  align-items: center;
  animation: llp3-button-reveal 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-teal-deep) 62%, var(--llp3-black) 100%) !important;
  border: 1px solid var(--llp3-teal) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--llp3-white) !important;
  display: inline-flex;
  font-weight: 600 !important;
  justify-content: center;
  line-height: 1.25 !important;
  min-height: 48px;
  padding: 0.75rem 1.15rem !important;
  text-align: center;
  text-decoration: none !important;
  transition: box-shadow 160ms ease, transform 160ms ease, filter 160ms ease;
}

.llp3-faq .elementor-button:hover,
.llp3-faq a.button:hover,
.llp3-conditions .elementor-button:hover,
.llp3-conditions a.button:hover {
  box-shadow: 0 9px 22px rgba(14, 70, 87, 0.2) !important;
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.llp3-faq a:focus-visible,
.llp3-faq button:focus-visible,
.llp3-conditions a:focus-visible,
.llp3-conditions button:focus-visible {
  outline: 3px solid var(--llp3-gold) !important;
  outline-offset: 3px !important;
}

/* Public login and password-recovery screens use the same visual language as
 * the connected account, without changing WooCommerce fields or behaviour. */
.llp3-account-guest .jupiterx-main {
  color: var(--llp3-ink);
}

.llp3-account-guest .jupiterx-main a:not(.button) {
  color: var(--llp3-teal);
}

.llp3-account-guest .jupiterx-main a:not(.button):hover {
  color: var(--llp3-gold-accessible);
}

.llp3-account-guest a:focus-visible,
.llp3-account-guest button:focus-visible,
.llp3-account-guest input:focus-visible,
.llp3-account-guest select:focus-visible,
.llp3-account-guest textarea:focus-visible {
  outline: 3px solid var(--llp3-gold) !important;
  outline-offset: 3px !important;
}

.llp3-account-guest .woocommerce form.login,
.llp3-account-guest .woocommerce form.register,
.llp3-account-guest .woocommerce form.lost_reset_password,
.llp3-account-guest .woocommerce form.woocommerce-ResetPassword {
  animation: llp3-reveal 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background: var(--llp3-white);
  border: 1px solid var(--llp3-line) !important;
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(6, 31, 39, 0.1);
  box-sizing: border-box;
  margin: 0 auto 2rem !important;
  max-width: 620px;
  padding: clamp(1.25rem, 4vw, 2rem) !important;
}

.llp3-account-guest .woocommerce form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.llp3-account-guest .woocommerce form select,
.llp3-account-guest .woocommerce form textarea {
  border: 1px solid #748b94;
  border-radius: 4px;
  box-sizing: border-box;
  min-height: 48px;
  width: 100%;
}

/* Chromium's autofill surface must stay neutral on both the public login and
 * authenticated account forms. Scope this only to textual credentials and
 * identity fields so native styling for checkboxes and other controls stays
 * intact. */
body.llp3-account-guest input:not([type]):-webkit-autofill,
body.llp3-account-guest input[type="text"]:-webkit-autofill,
body.llp3-account-guest input[type="email"]:-webkit-autofill,
body.llp3-account-guest input[type="tel"]:-webkit-autofill,
body.llp3-account-guest input[type="password"]:-webkit-autofill,
body.llp3-customer input:not([type]):-webkit-autofill,
body.llp3-customer input[type="text"]:-webkit-autofill,
body.llp3-customer input[type="email"]:-webkit-autofill,
body.llp3-customer input[type="tel"]:-webkit-autofill,
body.llp3-customer input[type="password"]:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--llp3-white) inset !important;
  -webkit-text-fill-color: var(--llp3-teal) !important;
  background-color: var(--llp3-white) !important;
  caret-color: var(--llp3-teal) !important;
  color: var(--llp3-teal) !important;
}

body.llp3-account-guest input:not([type]):-webkit-autofill:focus,
body.llp3-account-guest input[type="text"]:-webkit-autofill:focus,
body.llp3-account-guest input[type="email"]:-webkit-autofill:focus,
body.llp3-account-guest input[type="tel"]:-webkit-autofill:focus,
body.llp3-account-guest input[type="password"]:-webkit-autofill:focus,
body.llp3-customer input:not([type]):-webkit-autofill:focus,
body.llp3-customer input[type="text"]:-webkit-autofill:focus,
body.llp3-customer input[type="email"]:-webkit-autofill:focus,
body.llp3-customer input[type="tel"]:-webkit-autofill:focus,
body.llp3-customer input[type="password"]:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--llp3-white) inset, 0 0 0 3px rgba(14, 70, 87, 0.14) !important;
  border-color: var(--llp3-teal) !important;
  outline: 0 !important;
}

body.llp3-account-guest input:not([type]):autofill,
body.llp3-account-guest input[type="text"]:autofill,
body.llp3-account-guest input[type="email"]:autofill,
body.llp3-account-guest input[type="tel"]:autofill,
body.llp3-account-guest input[type="password"]:autofill,
body.llp3-customer input:not([type]):autofill,
body.llp3-customer input[type="text"]:autofill,
body.llp3-customer input[type="email"]:autofill,
body.llp3-customer input[type="tel"]:autofill,
body.llp3-customer input[type="password"]:autofill {
  box-shadow: 0 0 0 1000px var(--llp3-white) inset !important;
  background-color: var(--llp3-white) !important;
  caret-color: var(--llp3-teal) !important;
  color: var(--llp3-teal) !important;
}

.llp3-account-guest .woocommerce button.button,
.llp3-account-guest .woocommerce input.button,
.llp3-account-guest .woocommerce a.button,
.llp3-account-guest .woocommerce button[type="submit"],
.llp3-account-guest .woocommerce input[type="submit"] {
  align-items: center;
  animation: llp3-button-reveal 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-teal-deep) 62%, var(--llp3-black) 100%) !important;
  border: 1px solid var(--llp3-teal) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--llp3-white) !important;
  display: inline-flex;
  font-weight: 600 !important;
  justify-content: center;
  line-height: 1.25 !important;
  min-height: 48px;
  padding: 0.75rem 1.15rem !important;
  text-align: center;
  text-decoration: none !important;
  transition: box-shadow 160ms ease, transform 160ms ease, filter 160ms ease;
}

.llp3-account-guest .woocommerce button.button:not(:disabled):hover,
.llp3-account-guest .woocommerce input.button:not(:disabled):hover,
.llp3-account-guest .woocommerce a.button:hover,
.llp3-account-guest .woocommerce button[type="submit"]:not(:disabled):hover,
.llp3-account-guest .woocommerce input[type="submit"]:not(:disabled):hover {
  box-shadow: 0 9px 22px rgba(14, 70, 87, 0.2) !important;
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.llp3-account-guest .woocommerce button.button:disabled,
.llp3-account-guest .woocommerce input.button:disabled,
.llp3-account-guest .woocommerce button[aria-disabled="true"],
.llp3-account-guest .woocommerce input[aria-disabled="true"] {
  box-shadow: none !important;
  cursor: not-allowed !important;
  filter: none !important;
  opacity: 0.52 !important;
  transform: none !important;
}

.llp3-account-guest .woocommerce-error,
.llp3-account-guest .woocommerce-info,
.llp3-account-guest .woocommerce-message {
  background: var(--llp3-surface);
  border-top-color: var(--llp3-teal) !important;
  color: var(--llp3-ink);
}

.llp3-account-guest .woocommerce-error::before,
.llp3-account-guest .woocommerce-info::before,
.llp3-account-guest .woocommerce-message::before {
  color: var(--llp3-teal) !important;
}

@keyframes llp3-reveal {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes llp3-swatch-reveal {
  from {
    opacity: 0;
    transform: scale(0.94);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes llp3-button-reveal {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.llp3-customer .jupiterx-site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.llp3-customer .jupiterx-main {
  flex: 1 0 auto;
}

.llp3-customer .jupiterx-main a:not(.button) {
  color: var(--llp3-teal);
}

.llp3-customer .jupiterx-main a:not(.button):hover {
  color: var(--llp3-gold-accessible);
}

.llp3-customer a:focus-visible,
.llp3-customer button:focus-visible,
.llp3-customer input:focus-visible,
.llp3-customer select:focus-visible,
.llp3-customer textarea:focus-visible,
.llp3-customer [role="button"]:focus-visible {
  outline: 3px solid var(--llp3-gold) !important;
  outline-offset: 3px !important;
}

.llp3-customer :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]),
  select,
  textarea,
  .select2-container--default .select2-selection
) {
  border: 1px solid #748b94 !important;
  border-radius: 4px !important;
  box-sizing: border-box;
}

.llp3-customer input[type="checkbox"],
.llp3-customer input[type="radio"],
.llp3-account-guest input[type="checkbox"],
.llp3-account-guest input[type="radio"] {
  accent-color: var(--llp3-teal);
}

.llp3-customer input:focus,
.llp3-customer select:focus,
.llp3-customer textarea:focus,
.llp3-customer .select2-container--focus .select2-selection,
.llp3-account-guest input:focus,
.llp3-account-guest select:focus,
.llp3-account-guest textarea:focus,
.llp3-account-guest .select2-container--focus .select2-selection {
  border-color: var(--llp3-teal) !important;
  box-shadow: 0 0 0 3px rgba(14, 70, 87, 0.14) !important;
}

body.llp3-customer .select2-container--default .select2-results__option[aria-selected="true"],
body.llp3-customer .select2-container--default .select2-results__option[data-selected="true"],
body.llp3-account-guest .select2-container--default .select2-results__option[aria-selected="true"],
body.llp3-account-guest .select2-container--default .select2-results__option[data-selected="true"] {
  background-color: var(--llp3-surface) !important;
  color: var(--llp3-teal) !important;
}

body.llp3-customer .select2-container--default .select2-results__option--highlighted[aria-selected],
body.llp3-customer .select2-container--default .select2-results__option--highlighted[data-selected],
body.llp3-account-guest .select2-container--default .select2-results__option--highlighted[aria-selected],
body.llp3-account-guest .select2-container--default .select2-results__option--highlighted[data-selected] {
  background-color: var(--llp3-teal) !important;
  color: var(--llp3-white) !important;
}

/* Every customer-facing primary action uses the Les Loges palette. */
.llp3-customer a.button,
.llp3-customer button.button,
.llp3-customer input.button,
.llp3-customer .woocommerce-MyAccount-content button[type="submit"],
.llp3-customer .woocommerce-MyAccount-content input[type="submit"],
.llp3-customer .elementor-button,
.llp3-customer .single_add_to_cart_button,
.llp3-customer .checkout-button,
.llp3-customer.woocommerce-checkout .llp3-signature-region button,
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"],
.llp3-customer #place_order,
.llp3-customer a.added_to_cart {
  align-items: center;
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-teal-deep) 62%, var(--llp3-black) 100%) !important;
  border: 1px solid var(--llp3-teal) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--llp3-white) !important;
  display: inline-flex;
  font-weight: 600 !important;
  justify-content: center;
  line-height: 1.25 !important;
  min-height: 48px;
  padding: 0.75rem 1.15rem !important;
  text-align: center;
  text-decoration: none !important;
  transition: box-shadow 160ms ease, transform 160ms ease, filter 160ms ease;
}

.llp3-customer a.button,
.llp3-customer button.button,
.llp3-customer input.button,
.llp3-customer .woocommerce-MyAccount-content button[type="submit"],
.llp3-customer .woocommerce-MyAccount-content input[type="submit"],
.llp3-customer .elementor-button,
.llp3-customer .single_add_to_cart_button,
.llp3-customer .checkout-button,
.llp3-customer.woocommerce-checkout .llp3-signature-region button,
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"],
.llp3-customer #place_order,
.llp3-customer a.added_to_cart {
  animation: llp3-button-reveal 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.llp3-customer a.button:not([aria-disabled="true"]):hover,
.llp3-customer button.button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer input.button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer .woocommerce-MyAccount-content button[type="submit"]:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer .woocommerce-MyAccount-content input[type="submit"]:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer .elementor-button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer .single_add_to_cart_button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer .checkout-button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer.woocommerce-checkout .llp3-signature-region button:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"]:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer #place_order:not(:disabled):not([aria-disabled="true"]):hover,
.llp3-customer a.added_to_cart:not([aria-disabled="true"]):hover {
  box-shadow: 0 9px 22px rgba(14, 70, 87, 0.2) !important;
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.llp3-customer a.button:not([aria-disabled="true"]):active,
.llp3-customer button.button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer input.button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer .woocommerce-MyAccount-content button[type="submit"]:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer .woocommerce-MyAccount-content input[type="submit"]:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer .elementor-button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer .single_add_to_cart_button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer .checkout-button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer.woocommerce-checkout .llp3-signature-region button:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"]:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer #place_order:not(:disabled):not([aria-disabled="true"]):active,
.llp3-customer a.added_to_cart:not([aria-disabled="true"]):active {
  box-shadow: 0 4px 12px rgba(14, 70, 87, 0.16) !important;
  transform: translateY(0) scale(0.985);
}

.llp3-customer button.button:disabled,
.llp3-customer input.button:disabled,
.llp3-customer button.button[aria-disabled="true"],
.llp3-customer input.button[aria-disabled="true"],
.llp3-customer .elementor-button:disabled,
.llp3-customer .elementor-button[aria-disabled="true"],
.llp3-customer .single_add_to_cart_button:disabled,
.llp3-customer .single_add_to_cart_button[aria-disabled="true"],
.llp3-customer .checkout-button:disabled,
.llp3-customer .checkout-button[aria-disabled="true"],
.llp3-customer.woocommerce-checkout .llp3-signature-region button:disabled,
.llp3-customer.woocommerce-checkout .llp3-signature-region button[aria-disabled="true"],
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"]:disabled,
.llp3-customer.woocommerce-checkout .llp3-signature-region input[type="button"][aria-disabled="true"],
.llp3-customer #place_order:disabled,
.llp3-customer #place_order[aria-disabled="true"] {
  box-shadow: none !important;
  cursor: not-allowed !important;
  filter: none !important;
  opacity: 0.52 !important;
  transform: none !important;
}

.llp3-customer .llp3-review-choices,
.llp3-customer .llp3-review-choices.button {
  background: var(--llp3-white) !important;
  border: 2px solid var(--llp3-teal) !important;
  color: var(--llp3-teal) !important;
}

.llp3-customer .llp3-review-choices:hover,
.llp3-customer .llp3-review-choices.button:hover {
  background: var(--llp3-surface) !important;
  color: var(--llp3-teal) !important;
}

.llp3-customer .woocommerce-info,
.llp3-customer .woocommerce-message {
  background: var(--llp3-surface);
  border-top-color: var(--llp3-teal) !important;
  color: var(--llp3-ink);
}

.llp3-customer .woocommerce-info::before,
.llp3-customer .woocommerce-message::before {
  color: var(--llp3-teal) !important;
}

/* The Phase 3 choice flow has no promotional-code step. Keep these legacy
 * WooCommerce/Jupiter controls out of the customer journey, including the
 * empty Continue Shopping link emitted by the cart template. */
body.llp3-customer.woocommerce-cart .woocommerce-cart-form .coupon,
body.llp3-customer.woocommerce-cart .woocommerce-cart-form [name="coupon_code"],
body.llp3-customer.woocommerce-cart .woocommerce-cart-form [name="apply_coupon"],
body.llp3-customer.woocommerce-cart .jupiterx-continue-shopping,
body.llp3-customer.woocommerce-cart .wc-proceed-to-checkout .jupiterx-continue-shopping,
body.llp3-customer.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.llp3-customer.woocommerce-checkout form.checkout_coupon {
  display: none !important;
}

/* Connected account: readable navigation, tables, cards and forms. */
.llp3-customer.woocommerce-account .woocommerce::after {
  clear: both;
  content: "";
  display: table;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--llp3-white);
  border: 1px solid var(--llp3-line);
  border-radius: 6px;
  box-shadow: 0 12px 30px rgba(6, 31, 39, 0.07);
  float: left;
  overflow: hidden;
  width: 250px !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--llp3-line);
  margin: 0 !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
  border-bottom: 0;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li.is-active,
.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li.is-active:hover,
.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li.is-active:focus-within {
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-black) 100%) !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation-link a {
  background: var(--llp3-white) !important;
  color: var(--llp3-teal) !important;
  display: block;
  font-weight: 600;
  line-height: 1.3;
  padding: 0.95rem 1rem;
  text-decoration: none;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover {
  background: var(--llp3-surface) !important;
  color: var(--llp3-teal) !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a {
  background-color: var(--llp3-teal) !important;
  background-image: linear-gradient(135deg, var(--llp3-teal) 0%, var(--llp3-black) 100%) !important;
  color: var(--llp3-white) !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation-link a:focus-visible {
  outline-offset: -3px !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-content {
  animation: llp3-reveal 420ms 70ms cubic-bezier(0.22, 1, 0.36, 1) both;
  float: right;
  min-width: 0;
  width: calc(100% - 290px) !important;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation {
  animation: llp3-reveal 360ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.llp3-customer.woocommerce-account .woocommerce-MyAccount-content h1,
.llp3-customer.woocommerce-account .woocommerce-MyAccount-content h2,
.llp3-customer.woocommerce-account .woocommerce-MyAccount-content h3 {
  color: var(--llp3-teal);
  line-height: 1.16;
}

.llp3-customer .llp3-welcome-card {
  animation: llp3-reveal 460ms 120ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background: linear-gradient(135deg, var(--llp3-teal), var(--llp3-black));
  border-radius: 6px;
  box-shadow: 0 16px 36px rgba(6, 31, 39, 0.16);
  color: var(--llp3-white);
  margin-bottom: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.llp3-customer .llp3-welcome-card h1,
.llp3-customer .llp3-welcome-card p,
.llp3-customer .llp3-welcome-card a {
  color: var(--llp3-white) !important;
}

.llp3-customer .llp3-welcome-card h1 {
  font-size: clamp(1.65rem, 4vw, 2.4rem);
  margin: 0 0 0.5rem;
}

.llp3-customer .woocommerce table.shop_table,
.llp3-customer table.woocommerce-orders-table {
  animation: llp3-reveal 440ms 140ms cubic-bezier(0.22, 1, 0.36, 1) both;
  border: 1px solid var(--llp3-line) !important;
  border-collapse: separate;
  border-radius: 6px !important;
  overflow: hidden;
}

.llp3-customer .woocommerce table.shop_table th,
.llp3-customer .woocommerce table.shop_table td,
.llp3-customer table.woocommerce-orders-table th,
.llp3-customer table.woocommerce-orders-table td {
  border-color: var(--llp3-line) !important;
  padding: 0.9rem !important;
  vertical-align: middle;
}

.llp3-customer .woocommerce table.shop_table thead th,
.llp3-customer table.woocommerce-orders-table thead th {
  background: var(--llp3-surface);
  color: var(--llp3-teal);
}

.llp3-customer .woocommerce-orders-table__cell-order-actions,
.llp3-customer .woocommerce-table__product-table .woocommerce-table__product-name,
.llp3-customer .woocommerce-table--order-details td:last-child {
  min-width: 0;
}

.llp3-customer .woocommerce-orders-table__cell-order-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.llp3-customer .woocommerce-orders-table__cell-order-actions .button {
  flex: 1 1 150px;
  margin: 0 !important;
  white-space: normal;
}

.llp3-customer .woocommerce-order-details img,
.llp3-customer table.shop_table img {
  height: auto;
  max-width: 88px;
}

/* Submitted signature: compact presentation with every reminder preserved. */
body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  section.woocommerce-customer-signature {
  animation: llp3-reveal 420ms 150ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background: var(--llp3-white);
  border: 1px solid var(--llp3-line);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(6, 31, 39, 0.09);
  box-sizing: border-box;
  margin: 1.5rem 0;
  overflow: hidden;
  padding: clamp(1rem, 3vw, 1.5rem);
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-card {
  display: grid;
  gap: 0.85rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-card
  > h2 {
  margin: 0 !important;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-card
  > br {
  display: none;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-card
  > .llp3-saved-signature {
  background: var(--llp3-white);
  border: 1px solid #748b94;
  border-radius: 6px;
  box-sizing: border-box;
  margin: 0;
  max-width: 100%;
  padding: clamp(0.75rem, 2vw, 1.25rem);
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-card
  > .llp3-saved-signature
  > img {
  display: block;
  height: auto !important;
  margin: 0 auto;
  max-width: 100% !important;
  width: auto;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-status {
  background: var(--llp3-surface);
  border-left: 4px solid var(--llp3-gold);
  color: var(--llp3-teal);
  display: block;
  font-weight: 700;
  margin: 0;
  padding: 0.75rem 0.9rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders {
  border-top: 1px solid var(--llp3-line);
  margin-top: 0.15rem;
  padding-top: 0.25rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders
  > summary {
  color: var(--llp3-teal);
  cursor: pointer;
  font-weight: 700;
  list-style-position: inside;
  padding: 0.7rem 0.15rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders
  > summary::marker {
  color: var(--llp3-gold-accessible);
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders[open]
  > summary {
  border-bottom: 1px solid var(--llp3-line);
  margin-bottom: 0.9rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders
  > h4 {
  color: var(--llp3-teal);
  margin: 1rem 0 0.45rem;
}

body.llp3-customer.llp3-submitted.woocommerce-account
  .woocommerce-MyAccount-content
  .llp3-submitted-signature-reminders
  > ul {
  margin-bottom: 1rem;
  padding-left: 1.35rem;
}

.llp3-customer.woocommerce-account .u-columns,
.llp3-customer.woocommerce-account .woocommerce-Addresses {
  display: grid !important;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.llp3-customer.woocommerce-account .woocommerce-Address,
.llp3-customer.woocommerce-account .woocommerce-Address.col-1,
.llp3-customer.woocommerce-account .woocommerce-Address.col-2,
.llp3-customer.woocommerce-account .u-column1,
.llp3-customer.woocommerce-account .u-column2 {
  box-sizing: border-box;
  float: none !important;
  flex: 0 0 100% !important;
  margin: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  width: 100% !important;
}

.llp3-customer.woocommerce-account .woocommerce-Address {
  animation: llp3-reveal 420ms 120ms cubic-bezier(0.22, 1, 0.36, 1) both;
  background: var(--llp3-white);
  border: 1px solid var(--llp3-line);
  border-radius: 6px;
  padding: 1.25rem;
}

.llp3-customer.woocommerce-account .woocommerce-Address-title,
.llp3-customer.woocommerce-account .woocommerce-Address-title h2 {
  float: none !important;
  width: 100% !important;
}

.llp3-customer.woocommerce-account form .form-row {
  min-width: 0;
}

.llp3-customer.woocommerce-account form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.llp3-customer.woocommerce-account form select,
.llp3-customer.woocommerce-account form textarea {
  border: 1px solid #748b94;
  border-radius: 4px;
  box-sizing: border-box;
  min-height: 46px;
  width: 100%;
}

.llp3-customer .llp3-account-extra-field {
  display: none !important;
}

/* Material swatches: stable geometry and distinct interaction states. */
.llp3-customer.single-product .zoo-cw-group-attribute {
  align-items: start;
  box-sizing: border-box;
  gap: 0.8rem !important;
  grid-template-columns: repeat(auto-fit, 64px);
  overflow: visible !important;
  padding: 4px 2px 1.8rem;
}

.llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option {
  animation: llp3-swatch-reveal 320ms cubic-bezier(0.22, 1, 0.36, 1) both;
  aspect-ratio: 1;
  background: var(--llp3-white) !important;
  border: 2px solid #748b94 !important;
  border-radius: 50% !important;
  box-shadow: 0 3px 10px rgba(6, 31, 39, 0.08);
  box-sizing: border-box;
  cursor: pointer;
  height: 60px !important;
  margin: 0 !important;
  max-height: 60px !important;
  max-width: 60px !important;
  min-height: 60px !important;
  min-width: 60px !important;
  overflow: visible !important;
  padding: 3px !important;
  position: relative;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  width: 60px !important;
}

/* CleverSwatches renders every image chip as two independently sized circles:
 * the clickable option and a fixed 60px inner item. Keep the plugin's click
 * target, but pin the real image item concentrically inside it. This remains
 * stable when the mobile option shrinks to 54px and when swatches are rebuilt. */
body.llp3-customer.single-product
  form.variations_form
  .zoo-cw-group-attribute.zoo-cw-type-image
  > .zoo-cw-attribute-option {
  display: block !important;
  float: none !important;
  overflow: visible !important;
  padding: 0 !important;
  position: relative;
}

body.llp3-customer.single-product
  form.variations_form
  .zoo-cw-group-attribute.zoo-cw-type-image
  > .zoo-cw-attribute-option
  > .zoo-cw-attr-item {
  border: 0 !important;
  border-radius: 50% !important;
  box-sizing: border-box !important;
  display: block !important;
  height: auto !important;
  inset: 3px !important;
  line-height: 1 !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  min-height: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: auto !important;
}

body.llp3-customer.single-product
  form.variations_form
  .zoo-cw-group-attribute.zoo-cw-type-image
  > .zoo-cw-attribute-option
  > .zoo-cw-attr-item
  :is(img, .zoo-cw-label-color) {
  border: 0 !important;
  border-radius: 50% !important;
  box-sizing: border-box !important;
  display: block !important;
  height: 100% !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  min-height: 0 !important;
  min-width: 0 !important;
  object-fit: cover !important;
  padding: 0 !important;
  width: 100% !important;
}

.llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option:nth-child(2) {
  animation-delay: 35ms;
}

.llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option:nth-child(3) {
  animation-delay: 70ms;
}

.llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option:nth-child(4) {
  animation-delay: 105ms;
}

.llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option:nth-child(n + 5) {
  animation-delay: 140ms;
}

.llp3-customer.single-product .zoo-cw-attribute-option img,
.llp3-customer.single-product .zoo-cw-attribute-option > span:not(.zoo-cw-tooltip),
.llp3-customer.single-product .zoo-cw-attribute-option .zoo-cw-attribute-option-inner {
  border-radius: 50% !important;
  box-sizing: border-box;
  display: block;
  height: 100% !important;
  max-width: 100%;
  object-fit: cover;
  width: 100% !important;
}

.llp3-customer.single-product .zoo-cw-attribute-option:not([aria-disabled="true"]):not(.disabled):not(.unavailable):not(.zoo-cw-disabled):hover {
  border-color: var(--llp3-teal) !important;
  box-shadow: 0 7px 18px rgba(14, 70, 87, 0.22);
  transform: translateY(-2px);
}

body.llp3-customer.single-product .zoo-cw-attribute-option.zoo-cw-active,
body.llp3-customer.single-product .zoo-cw-attribute-option[aria-pressed="true"] {
  border-color: var(--llp3-gold) !important;
  box-shadow: 0 0 0 3px rgba(14, 70, 87, 0.22), 0 7px 16px rgba(6, 31, 39, 0.16) !important;
}

.llp3-customer.single-product .zoo-cw-attribute-option[aria-disabled="true"],
.llp3-customer.single-product .zoo-cw-attribute-option.disabled,
.llp3-customer.single-product .zoo-cw-attribute-option.unavailable,
.llp3-customer.single-product .zoo-cw-attribute-option.zoo-cw-disabled {
  border-color: #748b94 !important;
  box-shadow: none !important;
  cursor: not-allowed;
  filter: grayscale(1);
  opacity: 0.42;
  transform: none !important;
}

.llp3-customer.single-product .zoo-cw-attribute-option .zoo-cw-tooltip {
  display: none !important;
}

/* Replace the browser's unstyleable title bubble with one bounded label below
 * the whole swatch row. This prevents first/last chips from overflowing. */
@media (hover: hover) and (pointer: fine) {
  .llp3-customer.single-product .zoo-cw-group-attribute {
    padding-bottom: 3rem;
    position: relative;
  }

  .llp3-customer.single-product .zoo-cw-group-attribute[data-llp3-hover-label]::after {
    background: var(--llp3-teal-deep);
    border: 1px solid var(--llp3-gold);
    border-radius: 4px;
    box-shadow: 0 8px 18px rgba(6, 31, 39, 0.2);
    color: var(--llp3-white);
    content: attr(data-llp3-hover-label);
    font-size: 0.76rem;
    font-weight: 600;
    left: 2px;
    line-height: 1.2;
    padding: 0.38rem 0.5rem;
    pointer-events: none;
    position: absolute;
    right: 2px;
    text-align: left;
    top: calc(100% - 2.55rem);
    white-space: normal;
    z-index: 30;
  }
}

.llp3-customer.single-product .zoo-cw-name {
  color: var(--llp3-teal);
  font-weight: 600;
  min-height: 1.35em;
}

.llp3-customer.single-product .elementor-column,
.llp3-customer.single-product .elementor-widget,
.llp3-customer.single-product .elementor-widget-container,
.llp3-customer.single-product .cw-product-gallery,
.llp3-customer.single-product .cw-product-gallery-main,
.llp3-customer.single-product .cw-product-gallery-thumbs {
  box-sizing: border-box;
  max-width: 100% !important;
  min-width: 0 !important;
}

.llp3-customer.single-product .cw-product-gallery img {
  height: auto;
  max-width: 100% !important;
}

.llp3-customer.single-product .horizontal .cw-product-gallery-thumbs,
.llp3-customer.single-product .cw-product-gallery-thumbs {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}

/* Checkout options: neutralize the legacy negative inline margin while
 * preserving every configured explanatory node for backend/PDF use. */
body.llp3-customer.woocommerce-checkout
  .thwcfe-checkout-section.llp3-options-section
  > .form-row {
  box-sizing: border-box;
  clear: both !important;
  float: none !important;
  margin-bottom: 1rem !important;
  max-width: 100%;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .thwcfe-checkout-section.llp3-options-section
  > p:not(.form-row) {
  box-sizing: border-box;
  clear: both !important;
  color: var(--llp3-muted);
  float: none !important;
  font-size: 0.9rem !important;
  line-height: 1.55 !important;
  margin: 0.75rem 0 1rem !important;
  max-width: 100%;
  position: static !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .thwcfe-checkout-section.llp3-options-section
  > p:not(.form-row):empty {
  display: none !important;
}

/* The checkout is French. Keep the bilingual source nodes intact for the
 * configured backend/PDF while exposing only their complete French copy in
 * the interactive customer view. */
body.llp3-customer.woocommerce-checkout
  .llp3-rj45-explanation--en,
body.llp3-customer.woocommerce-checkout
  .llp3-quartz-warning-en {
  display: none !important;
}

/* Final signature/confirmation: compact, ordered and truthful. */
.llp3-customer.woocommerce-checkout .llp3-premature-success {
  display: none !important;
}

.llp3-customer.woocommerce-checkout form.checkout .llp3-final-intro,
.llp3-customer.woocommerce-checkout form.checkout .llp3-final-section {
  background: var(--llp3-white);
  border-left: 1px solid var(--llp3-line);
  border-right: 1px solid var(--llp3-line);
  box-sizing: border-box;
  margin-bottom: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 840px;
  padding: 0.85rem clamp(1rem, 4vw, 2rem) !important;
  width: 100%;
}

.llp3-customer.woocommerce-checkout form.checkout .llp3-final-intro,
.llp3-customer.woocommerce-checkout form.checkout .llp3-final-section--first {
  border-radius: 8px 8px 0 0;
  border-top: 1px solid var(--llp3-line);
  padding-top: clamp(1.25rem, 4vw, 2rem) !important;
}

.llp3-customer.woocommerce-checkout form.checkout .llp3-final-section--last {
  border-bottom: 1px solid var(--llp3-line);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 18px 44px rgba(6, 31, 39, 0.11);
  padding-bottom: clamp(1.25rem, 4vw, 2rem) !important;
}

.llp3-customer.woocommerce-checkout .llp3-final-intro h2,
.llp3-customer.woocommerce-checkout .llp3-confirmation-heading {
  color: var(--llp3-teal) !important;
  font-size: clamp(1.45rem, 3vw, 2rem) !important;
  line-height: 1.2 !important;
  margin: 0 0 0.5rem !important;
  scroll-margin-top: 110px;
}

@media (max-width: 767px) {
  .llp3-customer.woocommerce-checkout .llp3-confirmation-heading,
  .llp3-customer.woocommerce-checkout .llp3-confirmation-row {
    scroll-margin-top: clamp(220px, 27vh, 240px);
  }
}

.llp3-customer.woocommerce-checkout .llp3-final-intro p {
  color: var(--llp3-muted);
  margin: 0;
}

.llp3-customer.woocommerce-checkout .llp3-name-row input {
  min-height: 48px !important;
}

.llp3-customer.woocommerce-checkout .woocommerce-billing-fields > h3 {
  color: var(--llp3-teal) !important;
}

.llp3-customer.woocommerce-checkout .llp3-signature-region canvas,
.llp3-customer.woocommerce-checkout .llp3-signature-region img {
  border: 1px solid #748b94;
  border-radius: 4px;
  box-sizing: border-box;
  max-height: 240px;
  max-width: 100%;
}

.llp3-customer.woocommerce-checkout .llp3-confirmation-row label {
  box-sizing: border-box;
  display: block !important;
  font-size: clamp(1rem, 2vw, 1.08rem) !important;
  line-height: 1.45 !important;
  min-width: 0;
  padding-left: 2.15rem;
  position: relative;
  width: 100%;
}

.llp3-customer.woocommerce-checkout .llp3-confirmation-row input[type="checkbox"] {
  accent-color: var(--llp3-teal);
  height: 22px;
  left: 0;
  margin: 0 !important;
  position: absolute;
  top: 0.15rem;
  width: 22px;
}

.llp3-customer.woocommerce-checkout .llp3-action-buttons {
  align-items: stretch;
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-end;
  width: 100%;
}

.llp3-customer.woocommerce-checkout .llp3-action-buttons .button,
.llp3-customer.woocommerce-checkout .llp3-action-buttons #place_order {
  flex: 1 1 250px;
  margin: 0 !important;
  min-height: 52px;
}

/* The final checkout step is a short sequence of bounded cards. The signature
 * widget remains a direct child of the final tab content so WooCommerce may
 * refresh #payment without destroying a signature already drawn by the user.
 * Do not force a display mode on the tab itself: the multi-step plugin owns its
 * visible/hidden state. */
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-panel.llp3-final-panel
  > .llp3-final-intro {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step {
  box-sizing: border-box;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > p:empty {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > .llp3-final-intro {
  background: var(--llp3-white) !important;
  border: 1px solid var(--llp3-line) !important;
  border-top: 3px solid var(--llp3-gold) !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 30px rgba(6, 31, 39, 0.08);
  box-sizing: border-box;
  display: block !important;
  margin: 0 auto 1rem !important;
  max-width: 840px;
  padding: clamp(1rem, 3vw, 1.5rem) !important;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  #payment {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box;
  margin: 0 auto !important;
  max-width: 840px;
  padding: 0 !important;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .form-row.place-order.llp3-place-order {
  background: var(--llp3-white) !important;
  border: 1px solid var(--llp3-line) !important;
  border-radius: 10px !important;
  box-shadow: 0 18px 44px rgba(6, 31, 39, 0.11);
  box-sizing: border-box;
  clear: both;
  display: grid !important;
  float: none !important;
  gap: 1rem;
  margin: 0 auto !important;
  max-width: 840px;
  padding: clamp(1rem, 3vw, 1.75rem) !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  :is(
    .llp3-final-intro,
    .llp3-final-section,
    .thwcfe-checkout-section.signature,
    .thwcfe-checkout-section.confirmation
  ) {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > #swph-woo-sign-signature-pad-wrapper.llp3-signature-region {
  background: var(--llp3-surface);
  border: 1px solid var(--llp3-line);
  border-radius: 8px;
  box-sizing: border-box;
  margin: 0 auto 1rem !important;
  max-width: 840px;
  padding: clamp(0.75rem, 2.5vw, 1.15rem) !important;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  > .thwcfe-checkout-section.signature {
  order: 30;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  > .woocommerce-terms-and-conditions-wrapper {
  order: 35;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  > .thwcfe-checkout-section.confirmation {
  order: 40;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  > .llp3-action-buttons {
  order: 50;
}

body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > h3 {
  color: var(--llp3-teal) !important;
  font-size: clamp(1.15rem, 2.2vw, 1.4rem) !important;
  line-height: 1.25 !important;
  margin: 0 0 0.65rem !important;
}

body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  canvas {
  background: var(--llp3-white);
  border: 1px solid #748b94 !important;
  border-radius: 6px !important;
  box-sizing: border-box;
  display: block;
  height: clamp(170px, 24vw, 210px) !important;
  max-height: 210px !important;
  max-width: 100% !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > p,
body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > #swph-woo-sign-signature-pad
  > p {
  align-items: stretch;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0.75rem 0 0 !important;
}

body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > p
  > br,
body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > #swph-woo-sign-signature-pad
  > p
  > br {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > p
  > :is(a, button, input[type="button"]),
body.llp3-customer.woocommerce-checkout
  #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
  > #swph-woo-sign-signature-pad
  > p
  > :is(a, button, input[type="button"]) {
  flex: 1 1 210px;
  margin: 0 !important;
}

body.llp3-customer.woocommerce-checkout .llp3-place-order .llp3-name-row {
  clear: both;
  float: none !important;
  margin: 0 !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  .llp3-name-row
  :is(label, .woocommerce-input-wrapper, input) {
  box-sizing: border-box;
  display: block;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  .llp3-confirmation-heading {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem) !important;
  margin: 0 0 0.6rem !important;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  .llp3-confirmation-row {
  background: var(--llp3-surface) !important;
  border: 1px solid var(--llp3-line) !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
  clear: both;
  float: none !important;
  margin: 0 0 0.65rem !important;
  max-width: 100% !important;
  padding: 0.8rem !important;
  width: 100% !important;
}

body.llp3-customer.woocommerce-checkout
  .llp3-place-order
  .llp3-confirmation-row:last-child {
  margin-bottom: 0 !important;
}

/* Preserve the complete bilingual reminders, but keep them folded until a
 * customer explicitly asks to reread them. */
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > details.llp3-checkout-reminders {
  background: var(--llp3-white);
  border: 1px solid var(--llp3-line);
  border-radius: 8px;
  box-sizing: border-box;
  margin: 1rem auto 0;
  max-width: 840px;
  overflow: hidden;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > .thwmsc-buttons {
  box-sizing: border-box;
  margin: 1rem auto 0 !important;
  max-width: 840px;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > summary {
  background: var(--llp3-surface);
  color: var(--llp3-teal);
  cursor: pointer;
  font-weight: 700;
  line-height: 1.35;
  padding: 0.9rem 1rem;
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > summary::marker {
  color: var(--llp3-gold-accessible);
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders[open]
  > summary {
  border-bottom: 1px solid var(--llp3-line);
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > #swph_order_custom_fields {
  box-sizing: border-box;
  color: var(--llp3-ink);
  padding: clamp(0.9rem, 3vw, 1.35rem);
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > #swph_order_custom_fields
  > h3 {
  color: var(--llp3-teal) !important;
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > #swph_order_custom_fields
  > h4 {
  color: var(--llp3-ink) !important;
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > #swph_order_custom_fields
  > :is(h3, h4):first-child {
  margin-top: 0 !important;
}

body.llp3-customer.woocommerce-checkout
  details.llp3-checkout-reminders
  > #swph_order_custom_fields
  > p:empty {
  display: none !important;
}

/* Keep the final review truthful but compact. Variation Switcher injects a
 * complete editable product form into each row; the dedicated review CTA is
 * retained below, so those duplicate editors and descriptions are redundant. */
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .llp3-checkout-review-table,
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  > table.woocommerce-checkout-review-order-table {
  animation: none !important;
  margin: 0 auto 1rem !important;
  max-width: 840px;
  opacity: 1 !important;
  width: 100%;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  :is(
    .llp3-review-editor,
    .vrn-variation-switcher,
    .vrn-variable-form,
    .variations_form.cart,
    .woocommerce-variation-description,
    .woocommerce-variation-price,
    .woocommerce-variation-availability,
    .reset_variations
  ) {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .woocommerce-checkout-review-order-table
  :is(th, td) {
  padding: 0.75rem !important;
  vertical-align: top;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .woocommerce-checkout-review-order-table
  .product-name {
  overflow-wrap: anywhere;
}

/* WooCommerce prints the complete product-page copy inside each final review
 * row. The product name, quantity and chosen variation stay visible; only that
 * direct duplicate description is removed from this compact confirmation. */
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .woocommerce-checkout-review-order-table
  .product-name
  > .description {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-panel.llp3-final-panel
  .llp3-final-next,
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-content.llp3-final-step
  .thwmsc-buttons
  .button-next,
body.llp3-customer.woocommerce-checkout
  .thwmsc-tab-panel.llp3-final-panel
  > .thwmsc-buttons
  .action-accordion-next {
  display: none !important;
}

/* Checkout Field Editor emits paragraph wrappers between its navigation
 * buttons. Flatten those wrappers so Previous/Next form one compact row. */
body.llp3-customer.woocommerce-checkout
  :is(.thwmsc-tab-content, .thwmsc-tab-panel-wrapper)
  > .thwmsc-buttons {
  align-items: stretch;
  display: flex !important;
  flex-wrap: nowrap;
  gap: 0.75rem;
  justify-content: flex-end;
  padding-top: 0.75rem;
}

body.llp3-customer.woocommerce-checkout
  :is(.thwmsc-tab-content, .thwmsc-tab-panel-wrapper)
  > .thwmsc-buttons
  > p {
  display: contents !important;
  margin: 0 !important;
}

body.llp3-customer.woocommerce-checkout
  :is(.thwmsc-tab-content, .thwmsc-tab-panel-wrapper)
  > .thwmsc-buttons
  :is(.button-prev, .button-next) {
  float: none !important;
  flex: 0 0 140px;
  line-height: 1.2 !important;
  margin: 0 !important;
  max-width: 220px;
  min-width: 140px;
  min-height: 52px;
  padding: 0.8rem 1rem !important;
  width: auto !important;
}

body.llp3-customer.woocommerce-checkout
  :is(.thwmsc-tab-content, .thwmsc-tab-panel-wrapper)
  > .thwmsc-buttons
  .thwmsc-btn
  > br:first-child {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  :is(.thwmsc-tab-content, .thwmsc-tab-panel-wrapper)
  > .thwmsc-buttons
  .button-prev.prev-first:disabled {
  display: none !important;
}

@media (max-width: 767px) {
  body.llp3-customer.woocommerce-checkout
    .thwmsc-tab-content
    > .thwmsc-buttons
    :is(.button-prev, .button-next) {
    flex: 1 1 0;
    max-width: none;
    min-width: 0;
  }
}

/* The desktop stepper exposes a second global "next" button outside the
 * checkout form. It has no destination on the final step and must not create
 * a dead, disabled CTA below the real submission controls. */
body.llp3-customer.woocommerce-checkout #action-next.next-last,
body.llp3-customer.woocommerce-checkout .thwmsc-buttons .button-next.next-last {
  display: none !important;
}

body.llp3-customer.woocommerce-checkout
  .thwmsc-buttons:has(#action-next.next-last),
body.llp3-customer.woocommerce-checkout
  .thwmsc-buttons:has(.button-next.next-last) {
  display: none !important;
}

.llp3-customer .llp3-signature-status {
  color: var(--llp3-teal);
  font-weight: 600;
  margin: 0.5rem 0 0;
}

.llp3-customer.woocommerce-order-received .llp3-actual-success {
  background: linear-gradient(135deg, var(--llp3-teal), var(--llp3-black));
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(6, 31, 39, 0.18);
  clear: both;
  color: var(--llp3-white);
  margin: 0 auto 2rem;
  max-width: 840px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

.llp3-customer.woocommerce-order-received .llp3-actual-success h2,
.llp3-customer.woocommerce-order-received .llp3-actual-success p {
  color: var(--llp3-white);
}

.llp3-customer.woocommerce-order-received .llp3-actual-success h2 {
  margin-top: 0;
}

.llp3-customer.woocommerce-order-received .llp3-actual-success ~ .woocommerce-thankyou-order-received {
  border: 0 !important;
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 899px) {
  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation,
  .llp3-customer.woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
  }

  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 1.5rem;
  }

  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation li {
    border-right: 1px solid var(--llp3-line);
  }

  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation-link a {
    height: 100%;
    padding: 0.8rem;
  }

  .llp3-customer .woocommerce-orders-table__cell-order-actions {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .llp3-customer .woocommerce-orders-table__cell-order-actions .button,
  .llp3-customer.woocommerce-checkout .llp3-action-buttons .button,
  .llp3-customer.woocommerce-checkout .llp3-action-buttons #place_order {
    width: 100% !important;
  }

  .llp3-customer.single-product .zoo-cw-group-attribute {
    gap: 0.65rem !important;
    grid-template-columns: repeat(auto-fit, 58px);
  }

  .llp3-customer.single-product .zoo-cw-group-attribute .zoo-cw-attribute-option {
    height: 54px !important;
    max-height: 54px !important;
    max-width: 54px !important;
    min-height: 54px !important;
    min-width: 54px !important;
    width: 54px !important;
  }
}

@media (max-width: 380px) {
  .llp3-customer.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr;
  }

  .llp3-customer.woocommerce-order-received .llp3-actual-success h2 {
    font-size: 2rem !important;
    line-height: 1.15 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .llp3-customer.woocommerce-order-received
    .woocommerce-customer-details
    address
    a[href^="mailto:"],
  .llp3-customer.woocommerce-order-received
    .woocommerce-customer-details
    .woocommerce-customer-details--email {
    display: inline-block;
    font-size: 0.75rem !important;
    letter-spacing: -0.02em;
    overflow-wrap: normal !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }
}

/* Official Les Loges mark as a discreet desktop cursor. Text editing and
 * unavailable controls deliberately retain their native affordances. */
@media (hover: hover) and (pointer: fine) {
  body.llp3-entry-page,
  body.llp3-account-guest,
  body.llp3-customer,
  body.llp3-faq,
  body.llp3-conditions {
    cursor: url("les-loges-cursor.png") 16 16, auto;
  }

  body.llp3-faq a,
  body.llp3-faq button,
  body.llp3-faq summary,
  body.llp3-conditions a,
  body.llp3-conditions button,
  body.llp3-conditions summary {
    cursor: url("les-loges-cursor.png") 16 16, pointer !important;
  }

  body.llp3-entry-page a,
  body.llp3-entry-page button,
  body.llp3-entry-page summary,
  body.llp3-entry-page select,
  body.llp3-entry-page input[type="button"],
  body.llp3-entry-page input[type="checkbox"],
  body.llp3-entry-page input[type="radio"],
  body.llp3-entry-page input[type="submit"],
  body.llp3-account-guest a,
  body.llp3-account-guest button,
  body.llp3-account-guest summary,
  body.llp3-account-guest select,
  body.llp3-account-guest input[type="button"],
  body.llp3-account-guest input[type="checkbox"],
  body.llp3-account-guest input[type="radio"],
  body.llp3-account-guest input[type="submit"],
  body.llp3-customer a,
  body.llp3-customer button,
  body.llp3-customer summary,
  body.llp3-customer select,
  body.llp3-customer input[type="button"],
  body.llp3-customer input[type="checkbox"],
  body.llp3-customer input[type="radio"],
  body.llp3-customer input[type="submit"],
  body.llp3-customer [role="button"],
  body.llp3-customer .zoo-cw-attribute-option {
    cursor: url("les-loges-cursor.png") 16 16, pointer !important;
  }

  body.llp3-entry-page input[type="email"],
  body.llp3-entry-page input[type="number"],
  body.llp3-entry-page input[type="password"],
  body.llp3-entry-page input[type="search"],
  body.llp3-entry-page input[type="tel"],
  body.llp3-entry-page input[type="text"],
  body.llp3-entry-page input[type="url"],
  body.llp3-entry-page textarea,
  body.llp3-entry-page [contenteditable="true"],
  body.llp3-account-guest input[type="email"],
  body.llp3-account-guest input[type="number"],
  body.llp3-account-guest input[type="password"],
  body.llp3-account-guest input[type="search"],
  body.llp3-account-guest input[type="tel"],
  body.llp3-account-guest input[type="text"],
  body.llp3-account-guest input[type="url"],
  body.llp3-account-guest textarea,
  body.llp3-account-guest [contenteditable="true"],
  body.llp3-customer input[type="email"],
  body.llp3-customer input[type="number"],
  body.llp3-customer input[type="password"],
  body.llp3-customer input[type="search"],
  body.llp3-customer input[type="tel"],
  body.llp3-customer input[type="text"],
  body.llp3-customer input[type="url"],
  body.llp3-customer textarea,
  body.llp3-customer [contenteditable="true"] {
    cursor: text !important;
  }

  body.llp3-entry-page :disabled,
  body.llp3-entry-page [aria-disabled="true"],
  body.llp3-account-guest :disabled,
  body.llp3-account-guest [aria-disabled="true"],
  body.llp3-customer :disabled,
  body.llp3-customer [aria-disabled="true"] {
    cursor: not-allowed !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .llp3-entry-page *,
  .llp3-entry-page *::before,
  .llp3-entry-page *::after,
  .llp3-account-guest *,
  .llp3-account-guest *::before,
  .llp3-account-guest *::after,
  .llp3-customer *,
  .llp3-customer *::before,
  .llp3-customer *::after,
  .llp3-faq *,
  .llp3-faq *::before,
  .llp3-faq *::after,
  .llp3-conditions *,
  .llp3-conditions *::before,
  .llp3-conditions *::after {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (max-width: 767px) {
  body.llp3-customer.woocommerce-checkout #billing_first_name_field,
  body.llp3-customer.woocommerce-checkout #billing_last_name_field {
    box-sizing: border-box;
    clear: both !important;
    display: block !important;
    float: none !important;
    margin: 0 0 1rem !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
  }

  body.llp3-customer.woocommerce-checkout
    :is(#billing_first_name_field, #billing_last_name_field)
    :is(label, .woocommerce-input-wrapper, input) {
    box-sizing: border-box;
    display: block;
    max-width: 100%;
    width: 100% !important;
  }

  body.llp3-customer.woocommerce-checkout
    .thwcfe-checkout-section.llp3-options-section
    .woocommerce-input-wrapper
    > label.checkbox {
    align-items: flex-start;
    display: flex !important;
    gap: 0.65rem;
    line-height: 1.45;
    margin: 0 !important;
  }

  body.llp3-customer.woocommerce-checkout
    .thwcfe-checkout-section.llp3-options-section
    input[type="checkbox"] {
    flex: 0 0 22px;
    height: 22px;
    margin: 0.1rem 0 0 !important;
    width: 22px;
  }

  body.llp3-customer.woocommerce-checkout
    .thwmsc-tab-content.llp3-final-step
    > #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
    > p
    > :is(a, button, input[type="button"]),
  body.llp3-customer.woocommerce-checkout
    .thwmsc-tab-content.llp3-final-step
    > #swph-woo-sign-signature-pad-wrapper.llp3-signature-region
    > #swph-woo-sign-signature-pad
    > p
    > :is(a, button, input[type="button"]),
  body.llp3-customer.woocommerce-checkout .llp3-action-buttons .button,
  body.llp3-customer.woocommerce-checkout .llp3-action-buttons #place_order {
    flex-basis: 100%;
    width: 100% !important;
  }

  /* The reveal animation can leave WooCommerce's responsive cart table at
   * opacity zero during capture or a fast transition. The mobile cart should
   * always render immediately; interactions elsewhere keep their animation. */
  body.llp3-customer.woocommerce-cart .woocommerce-cart-form,
  body.llp3-customer.woocommerce-cart .woocommerce-cart-form table.shop_table,
  body.llp3-customer.woocommerce-cart .cart-collaterals,
  body.llp3-customer.woocommerce-cart .cart_totals,
  body.llp3-customer.woocommerce-cart .cart_totals table.shop_table,
  body.llp3-customer.woocommerce-cart .wc-proceed-to-checkout,
  body.llp3-customer.woocommerce-cart .wc-proceed-to-checkout .button {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    table.shop_table {
    box-sizing: border-box;
    margin: 0 !important;
    max-width: 100% !important;
    table-layout: fixed;
    width: 100% !important;
  }

  .llp3-customer.woocommerce-cart .shop_table_responsive tr,
  .llp3-customer.woocommerce-checkout .shop_table_responsive tr {
    min-height: 0 !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .shop_table_responsive
    tr.cart_item {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .shop_table_responsive
    tr.cart_item
    > td {
    max-width: 100% !important;
    width: 100% !important;
  }

  .llp3-customer.woocommerce-cart .shop_table_responsive td,
  .llp3-customer.woocommerce-checkout .shop_table_responsive td {
    box-sizing: border-box;
    padding: 0.75rem !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .cart_item
    > td.product-name::before {
    content: none !important;
    display: none !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .cart_item
    > td.product-name {
    text-align: center !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .cart_item
    > :is(td.product-price, td.product-quantity, td.product-subtotal) {
    display: block !important;
    font-size: clamp(0.78rem, 3.5vw, 0.9rem);
    text-align: right !important;
    white-space: nowrap !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .cart_item
    > :is(td.product-price, td.product-quantity, td.product-subtotal)::before {
    float: left !important;
    margin: 0 0.5rem 0 0 !important;
    text-align: left;
  }

  body.llp3-customer.woocommerce-cart
    :is(.cart_totals td, .cart_totals .amount),
  body.llp3-customer.woocommerce-checkout
    .woocommerce-checkout-review-order-table
    :is(th.product-total, td.product-total, .cart-subtotal td, .tax-rate td, .order-total td),
  body.llp3-customer.single-product
    .single_variation
    .woocommerce-variation-price
    :is(.price, .amount) {
    white-space: nowrap !important;
  }

  body.llp3-customer.woocommerce-checkout
    .woocommerce-checkout-review-order-table
    :is(th.product-total, td.product-total) {
    font-size: clamp(0.76rem, 3.15vw, 0.9rem) !important;
    width: 1%;
  }

  body.llp3-customer.woocommerce-cart
    .wc-proceed-to-checkout
    .checkout-button {
    font-size: clamp(0.78rem, 3.8vw, 1rem) !important;
    white-space: nowrap !important;
  }

  .llp3-customer.woocommerce-cart .product-thumbnail img {
    height: auto;
    max-width: 96px;
  }

  .llp3-customer.woocommerce-account .woocommerce-table--order-details tbody .woocommerce-table__product-name {
    overflow-wrap: anywhere;
    width: 72%;
  }

  .llp3-customer.woocommerce-account .woocommerce-table--order-details tbody .woocommerce-table__product-total {
    white-space: nowrap;
    width: 28%;
  }

  .llp3-customer.woocommerce-account .woocommerce-table--order-details tbody .woocommerce-table__product-name img {
    display: block;
    float: none !important;
    margin: 0 0 0.65rem !important;
    max-width: 64px;
  }
}

/* At 360–361 px the Elementor header remains two pixels narrower than its
 * three legacy 20 px link gutters. Compact only this confirmed menu until the
 * original single-row geometry becomes self-sufficient again at 362 px. */
@media (max-width: 361px) {
  body.llp3-entry-page .elementor-element[data-id="72e798b"],
  body.llp3-entry-page
    .elementor-element[data-id="72e798b"]
    > .elementor-widget-container {
    max-width: 100% !important;
    width: 100% !important;
  }

  body.llp3-entry-page
    .elementor-element[data-id="72e798b"]
    .elementor-nav-menu {
    flex-wrap: nowrap !important;
    justify-content: center !important;
    width: 100% !important;
  }

  body.llp3-entry-page
    .elementor-element[data-id="72e798b"]
    .elementor-item {
    font-size: 14px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 359px) {
  /* The Elementor landing-page heading was still using its 45 px tablet size
   * at 320 px, which split "personnalisation" one letter from the rest. */
  body.llp3-entry-page
    .elementor-element[data-id="c946e11"]
    h1.elementor-heading-title {
    font-size: 36px !important;
    hyphens: none !important;
    line-height: 1.08 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.llp3-customer.woocommerce-cart
    .woocommerce-cart-form
    .cart_item
    > :is(td.product-price, td.product-quantity, td.product-subtotal)::before {
    display: block !important;
    float: none !important;
    margin: 0 0 0.2rem !important;
  }

  body.llp3-customer.woocommerce-cart
    .cart_totals
    table.shop_table
    :is(th, td) {
    font-size: 0.82rem !important;
    padding-left: 0.4rem !important;
    padding-right: 0.4rem !important;
  }
}
