/* Sasya Nadia shared customer-facing form system. Staff login is intentionally excluded. */
body:not(.login) {
  --sn-form-bg: #fffdf8;
  --sn-form-border: #d8cbb9;
  --sn-form-border-focus: #a98245;
  --sn-form-text: #171513;
  --sn-form-muted: #7b7168;
  --sn-form-error: #9d3027;
  --sn-form-success: #276548;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row input.input-text,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row textarea,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row select,
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="text"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="email"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="tel"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="number"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="password"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form textarea,
body:not(.login):not(.woocommerce-checkout) .woocommerce form select,
body:not(.login) .sn-contact-form input:not([type="checkbox"]):not([type="radio"]),
body:not(.login) .sn-contact-form textarea,
body:not(.login) .sn-contact-form select {
  box-sizing: border-box;
  width: 100%;
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid var(--sn-form-border);
  border-radius: 12px;
  background: var(--sn-form-bg);
  color: var(--sn-form-text);
  font: inherit;
  line-height: 1.35;
  outline: 0;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

/* Classic checkout: style customer/address fields only. Payment/CHIP fields are intentionally outside this scope. */
body.woocommerce-checkout form.checkout :is(#customer_details, .woocommerce-additional-fields) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
  box-sizing: border-box;
  width: 100%;
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid var(--sn-form-border);
  border-radius: 12px;
  background: var(--sn-form-bg);
  color: var(--sn-form-text);
  font: inherit;
  line-height: 1.35;
  outline: 0;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
body.woocommerce-checkout form.checkout :is(#customer_details, .woocommerce-additional-fields) textarea { min-height: 150px; resize: vertical; }
body.woocommerce-checkout form.checkout :is(#customer_details, .woocommerce-additional-fields) :is(input, select, textarea):focus { border-color: var(--sn-form-border-focus); box-shadow: 0 0 0 3px rgba(169, 130, 69, .18); }
body.woocommerce-checkout form.checkout :is(#customer_details, .woocommerce-additional-fields) .woocommerce-invalid :is(input, select, textarea) { border-color: var(--sn-form-error); box-shadow: 0 0 0 2px rgba(157, 48, 39, .12); }
body.woocommerce-checkout form.checkout :is(#customer_details, .woocommerce-additional-fields) :is(input, select, textarea):disabled { background: #eee9e1; color: #857a70; cursor: not-allowed; opacity: .8; }

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row textarea,
body:not(.login) .sn-contact-form textarea {
  min-height: 150px;
  resize: vertical;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row input::placeholder,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row textarea::placeholder,
body:not(.login) .sn-contact-form input::placeholder,
body:not(.login) .sn-contact-form textarea::placeholder {
  color: var(--sn-form-muted);
  opacity: .85;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row input:focus,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row textarea:focus,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row select:focus,
body:not(.login) .sn-contact-form input:focus,
body:not(.login) .sn-contact-form textarea:focus,
body:not(.login) .sn-contact-form select:focus {
  border-color: var(--sn-form-border-focus);
  box-shadow: 0 0 0 3px rgba(169, 130, 69, .18);
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row > label,
body:not(.login):not(.woocommerce-checkout) .woocommerce form label,
body:not(.login) .sn-contact-form label {
  display: block;
  margin: 0 0 7px;
  color: var(--sn-form-text);
  font-weight: 600;
  line-height: 1.4;
}

/* Shared logical row rhythm for registration, account, address and checkout forms. */
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row {
  margin-bottom: 14px;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row:last-child {
  margin-bottom: 0;
}

/* The block checkout address fields use the same shared rhythm. */
body:not(.login) .wc-block-components-address-form > .wc-block-components-text-input,
body:not(.login) .wc-block-components-address-form > .wc-block-components-combobox,
body:not(.login) .wc-block-components-address-form > [class*="address-form__"] {
  margin-bottom: 14px;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .required,
body:not(.login):not(.woocommerce-checkout) .woocommerce form abbr.required {
  color: var(--sn-form-error);
  text-decoration: none;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="checkbox"],
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[type="radio"],
body:not(.login) .sn-contact-form input[type="checkbox"],
body:not(.login) .sn-contact-form input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  accent-color: var(--sn-form-border-focus);
  vertical-align: middle;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form input:disabled,
body:not(.login):not(.woocommerce-checkout) .woocommerce form select:disabled,
body:not(.login):not(.woocommerce-checkout) .woocommerce form textarea:disabled,
body:not(.login):not(.woocommerce-checkout) .woocommerce form input[readonly],
body:not(.login):not(.woocommerce-checkout) .woocommerce form textarea[readonly] {
  background: #eee9e1 !important;
  color: #857a70 !important;
  cursor: not-allowed;
  opacity: .8;
}

body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row.woocommerce-invalid input,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row.woocommerce-invalid select,
body:not(.login):not(.woocommerce-checkout) .woocommerce form .form-row.woocommerce-invalid textarea {
  border-color: var(--sn-form-error);
  box-shadow: 0 0 0 2px rgba(157, 48, 39, .12);
}

body:not(.login) .woocommerce-error,
body:not(.login) .woocommerce-info,
body:not(.login) .woocommerce-message,
body:not(.login) .sn-form-message,
body:not(.login) .sn-password-match {
  border-radius: 10px;
  line-height: 1.5;
}

body:not(.login) .sn-password-match {
  margin: 8px 0 0;
  font-size: .9rem;
  font-weight: 600;
}

body:not(.login) .sn-password-match.is-match { color: var(--sn-form-success); }
body:not(.login) .sn-password-match.is-mismatch { color: var(--sn-form-error); }

body:not(.login) .sn-password-strength { margin: -4px 0 14px; }
body:not(.login) .sn-password-strength__bar { height: 8px; overflow: hidden; border-radius: 99px; background: #e9e0d4; }
body:not(.login) .sn-password-strength__bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--sn-form-border-focus); transition: width .18s ease, background-color .18s ease; }
body:not(.login) .sn-password-strength__label { margin: 7px 0 0; color: var(--sn-form-text); font-size: .92rem; }
body:not(.login) .sn-password-strength__hint { margin: 3px 0 0; color: var(--sn-form-muted); font-size: .88rem; line-height: 1.45; }
body:not(.login) .sn-password-strength.is-level-1 .sn-password-strength__bar span { background: var(--sn-form-error); }
body:not(.login) .sn-password-strength.is-level-3 .sn-password-strength__bar span,
body:not(.login) .sn-password-strength.is-level-4 .sn-password-strength__bar span { background: var(--sn-form-success); }

body:not(.login) .woocommerce-form-login .sn-password-input-wrap { position: relative; }
body:not(.login) .woocommerce-form-login .sn-password-input-wrap input { padding-right: 76px; }
body:not(.login) .woocommerce-form-login .sn-password-toggle { position: absolute; top: 50%; right: 9px; min-height: 32px; padding: 4px 8px; transform: translateY(-50%); border: 0; border-radius: 8px; background: transparent; color: var(--sn-form-border-focus); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
body:not(.login) .woocommerce-form-login .sn-password-toggle:focus-visible { outline: 2px solid var(--sn-form-border-focus); outline-offset: 2px; }

body:not(.login) .woocommerce .form-row-first,
body:not(.login) .woocommerce .form-row-last {
  box-sizing: border-box;
  width: calc(50% - 8px);
}

body:not(.login) .woocommerce .form-row-first { float: left; }
body:not(.login) .woocommerce .form-row-last { float: right; }
body:not(.login):not(.woocommerce-checkout) .woocommerce form::after,
body:not(.login) .woocommerce .form-row::after { content: ""; display: table; clear: both; }

/* WooCommerce country/state Select2 controls. */
body:not(.login) .woocommerce .select2-container { width: 100% !important; }
body:not(.login) .woocommerce .select2-container .select2-selection--single {
  height: 50px;
  border: 1px solid var(--sn-form-border);
  border-radius: 12px;
  background: var(--sn-form-bg);
}
body:not(.login) .woocommerce .select2-container .select2-selection__rendered {
  padding: 0 15px;
  color: var(--sn-form-text);
  line-height: 48px;
}
body:not(.login) .woocommerce .select2-container .select2-selection__arrow { height: 48px; right: 10px; }
body:not(.login) .woocommerce .select2-container--focus .select2-selection--single,
body:not(.login) .woocommerce .select2-container--open .select2-selection--single {
  border-color: var(--sn-form-border-focus);
  box-shadow: 0 0 0 3px rgba(169, 130, 69, .18);
}

@media (max-width: 640px) {
  body:not(.login) .woocommerce .form-row-first,
  body:not(.login) .woocommerce .form-row-last {
    float: none;
    width: 100%;
  }
}
