/* WooCommerce surfaces restyled to Ensemble. Payment method markup is untouched. */
.woocommerce .shell,
.woocommerce-page .shell { max-width: 960px; }

.woocommerce-checkout .col2-set {
  display: block;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

.ensemble-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  gap: 22px;
  align-items: start;
}
@media (max-width: 860px) {
  .ensemble-checkout { grid-template-columns: 1fr; }
}
.ensemble-checkout-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px;
}
.ensemble-checkout-card table.shop_table {
  border: 0 !important;
  background: transparent !important;
  border-radius: 0;
}
.ensemble-checkout-card table.shop_table th,
.ensemble-checkout-card table.shop_table td {
  border-color: var(--line);
  color: var(--ink);
}
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px;
}
.ensemble-checkout-card h3,
.ensemble-checkout-card .woocommerce-billing-fields h3,
#order_review_heading {
  font-family: "Schibsted Grotesk", Helvetica, sans-serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  letter-spacing: -.03em;
  color: var(--ink) !important;
  background: none !important;
  margin: 0 0 18px !important;
}
#customer_details,
#order_review,
form.checkout #payment {
  background: transparent;
  border: 0;
  padding: 0;
  border-radius: 0;
}
form.checkout #payment {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
body.woocommerce-checkout form .form-row {
  float: none !important;
  width: 100% !important;
}
.woocommerce-billing-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 12px;
}
.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-billing-fields__field-wrapper .address-field,
.woocommerce-billing-fields__field-wrapper #billing_email_field,
.woocommerce-billing-fields__field-wrapper #billing_country_field,
.woocommerce-billing-fields__field-wrapper #billing_phone_field {
  grid-column: 1 / -1;
}
body.woocommerce-checkout form .form-row input.input-text,
body.woocommerce-checkout form .form-row select,
body.woocommerce-checkout form .form-row textarea {
  width: 100%;
  max-width: none;
}
#payment ul.payment_methods {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}
#payment .wc_payment_method > label {
  font-weight: 700;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
#payment .payment_box,
#payment .payment_box.payment_method_hugo {
  background: var(--paper) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  color: var(--dim) !important;
  font-size: 14px;
  margin: 10px 0 0 !important;
}
#payment .payment_box p {
  margin: 0;
  color: var(--dim);
}
.woocommerce-privacy-policy-text {
  font-size: 13px;
  color: var(--dim);
  line-height: 1.5;
  margin: 12px 0 16px;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .checkout_coupon,
body.woocommerce-checkout .woocommerce-info .button.wc-forward {
  display: none !important;
}
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 14px;
}

/* Admin-only Blocks incompatibility banner */
.wc-block-checkout__incompatible-extensions-notice,
.wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-warning,
.wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-info {
  display: none !important;
}

.woocommerce form .form-row {
  display: grid;
  gap: 6px;
  margin: 0 0 14px;
}
.woocommerce form .form-row label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-2, #2A2E36);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  font-family: Inter, sans-serif;
  font-size: 15.5px;
  padding: 12px 14px;
  border: 1px solid var(--line, #E4E2DA);
  border-radius: 11px;
  background: var(--white, #fff);
  min-height: 46px;
  color: var(--ink, #14161A);
  width: 100%;
}

.ensemble-checkout #order_review,
.ensemble-checkout #customer_details,
.ensemble-checkout #payment {
  background: transparent;
  border: 0;
  padding: 0;
  border-radius: 0;
}

#payment ul.payment_methods {
  list-style: none;
  margin: 0;
  padding: 0;
}
#payment .payment_box {
  background: var(--paper, #FCFCFA);
  border: 1px dashed var(--line, #E4E2DA);
  border-radius: 11px;
  padding: 14px 16px;
  font-size: 14px;
  color: var(--dim, #696E78);
}

.woocommerce #place_order,
.woocommerce-page button.button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--royal, #0F3DDB) !important;
  color: #fff !important;
  border: 0;
  border-radius: 11px;
  padding: 16px 28px;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 8px 22px -10px rgba(15, 61, 219, .7);
}
.woocommerce #place_order:hover,
.woocommerce button.button.alt:hover {
  background: var(--royal-d, #0A2FA8) !important;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 11px;
  border: 1px solid var(--line, #E4E2DA);
  background: var(--white, #fff);
  padding: 14px 16px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  width: auto !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 11px 12px;
  border-radius: 11px;
  text-decoration: none;
  color: var(--dim);
  font-weight: 500;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  color: var(--ink);
  background: var(--paper);
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  background: #14161a;
  color: #fff;
}
html[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  background: #f2f3f5;
  color: #14161a;
}
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
  min-width: 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 28px 24px;
  color: var(--ink);
}
.woocommerce-account .woocommerce-MyAccount-content a {
  color: var(--royal);
}
body.woocommerce-account.logged-in main.shell {
  max-width: 1080px !important;
}
body.woocommerce-account.logged-in .woocommerce {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px 32px;
  align-items: start;
  width: 100%;
}
body.woocommerce-account.logged-in .woocommerce::before,
body.woocommerce-account.logged-in .woocommerce::after {
  display: none !important;
  content: none !important;
}
body.woocommerce-account.logged-in .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}
@media (max-width: 720px) {
  body.woocommerce-account.logged-in .woocommerce {
    grid-template-columns: 1fr;
  }
}

.woocommerce table.shop_table {
  width: 100%;
  border: 1px solid var(--line, #E4E2DA);
  border-radius: 18px;
  overflow: hidden;
  border-collapse: collapse;
  background: var(--white, #fff);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line-2, #EFEDE6);
  font-size: 15px;
}

.woocommerce-thankyou-order-received {
  font-family: "Schibsted Grotesk", sans-serif;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.03em;
}

/* Guest My Account — compact login + register card */
body.woocommerce-account:not(.logged-in) main.shell {
  max-width: 440px !important;
  padding-top: 40px !important;
  padding-bottom: 72px !important;
}
body.woocommerce-account:not(.logged-in) .u-columns,
body.woocommerce-account:not(.logged-in) .col2-set {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}
body.woocommerce-account:not(.logged-in) .u-column1,
body.woocommerce-account:not(.logged-in) .u-column2,
body.woocommerce-account:not(.logged-in) .col-1,
body.woocommerce-account:not(.logged-in) .col-2 {
  width: 100% !important;
  float: none !important;
  max-width: none !important;
}
body.woocommerce-account:not(.logged-in) h2 {
  font-family: "Schibsted Grotesk", sans-serif;
  font-size: 28px;
  letter-spacing: -0.03em;
  margin: 0 0 16px;
}
.ensemble-auth {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px 22px 22px;
}
.ensemble-auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  margin: 0 0 18px;
  border-radius: 12px;
  background: var(--paper);
  border: 1px solid var(--line);
}
.ensemble-auth-tabs button {
  border: 0;
  background: transparent;
  color: var(--dim);
  font: 600 14px/1.2 Inter, sans-serif;
  padding: 10px 8px;
  border-radius: 9px;
  cursor: pointer;
}
.ensemble-auth-tabs button.is-active {
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 1px 4px rgba(20, 22, 26, .08);
}
html[data-theme="dark"] .ensemble-auth-tabs button.is-active {
  background: #1c1e24;
  color: #f4f5f7;
  box-shadow: none;
}
.ensemble-auth .ensemble-oauth {
  margin: 0 0 16px;
}
.ensemble-auth-title {
  font-family: "Schibsted Grotesk", Helvetica, sans-serif;
  font-size: 22px !important;
  font-weight: 800;
  letter-spacing: -.03em;
  margin: 0 0 8px !important;
  color: var(--ink) !important;
  background: none !important;
}
.ensemble-auth-lede {
  margin: 0 0 18px;
  color: var(--dim);
  font-size: 14.5px;
  line-height: 1.5;
}
.ensemble-auth-back {
  margin: 16px 0 0 !important;
  text-align: center;
}
body.woocommerce-account:not(.logged-in) .lost_reset_password,
body.woocommerce-account:not(.logged-in) .woocommerce-ResetPassword {
  margin: 0;
}
body.woocommerce-account:not(.logged-in) .lost_reset_password .form-row,
body.woocommerce-account:not(.logged-in) .lost_reset_password .form-row-first,
body.woocommerce-account:not(.logged-in) .lost_reset_password .form-row-last,
body.woocommerce-account:not(.logged-in) .form-row-first,
body.woocommerce-account:not(.logged-in) .form-row-last {
  float: none !important;
  width: 100% !important;
  display: grid !important;
  gap: 6px;
  margin: 0 0 14px !important;
}
body.woocommerce-account:not(.logged-in) .lost_reset_password .input-text,
body.woocommerce-account:not(.logged-in) .lost_reset_password input[type="text"],
body.woocommerce-account:not(.logged-in) .lost_reset_password input[type="password"] {
  width: 100% !important;
  max-width: none !important;
  min-height: 48px;
}
body.woocommerce-account:not(.logged-in) .lost_reset_password button.button,
body.woocommerce-account:not(.logged-in) .lost_reset_password .woocommerce-Button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  float: none !important;
  margin: 4px 0 0 !important;
  min-height: 48px;
  background: var(--royal, #0F3DDB) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 11px !important;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 8px 22px -10px rgba(15, 61, 219, .7);
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register .form-row {
  width: 100% !important;
  float: none !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login button.button,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register button.button,
.woocommerce-form-login__submit,
.woocommerce-form-register__submit {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  float: none !important;
  margin: 8px 0 0 !important;
  min-height: 48px;
  background: var(--royal, #0F3DDB) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 11px !important;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 8px 22px -10px rgba(15, 61, 219, .7);
  opacity: 1 !important;
}
body.woocommerce-account:not(.logged-in) .lost_password {
  margin: 14px 0 0;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 10px;
}

/* Checkout Blocks + classic — compact dark-aware form */
body.woocommerce-checkout main.shell {
  max-width: 1080px !important;
}
.wc-block-checkout,
.wp-block-woocommerce-checkout {
  color: var(--ink);
}
.wc-block-components-checkout-step {
  padding: 0 0 20px !important;
  margin: 0 !important;
  border: 0 !important;
}
.wc-block-components-checkout-step__title,
.wc-block-components-title,
body.woocommerce-checkout h2 {
  font-family: "Schibsted Grotesk", Helvetica, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -.03em;
  font-size: 22px !important;
  color: var(--ink) !important;
}
.wc-block-components-text-input input,
.wc-block-components-combobox-control input,
.wc-block-components-combobox input,
.wc-block-components-state-input select,
.wc-block-components-country-input select,
.wc-block-checkout select,
.wc-block-checkout textarea,
body.woocommerce-checkout form .form-row input.input-text,
body.woocommerce-checkout form .form-row select,
body.woocommerce-checkout form .form-row textarea {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  min-height: 48px !important;
  box-shadow: none !important;
  font-family: Inter, sans-serif !important;
  font-size: 15px !important;
}
.wc-block-components-country-input,
.wc-block-components-state-input,
.wc-block-components-combobox,
.wc-blocks-components-select,
.wc-blocks-components-select__container,
.wc-block-components-combobox-control,
.wc-block-components-combobox .components-form-token-field__input-container {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
.wc-block-components-country-input .wc-blocks-components-select__container,
.wc-block-components-country-input .wc-block-components-combobox-control,
.wc-block-components-state-input .wc-blocks-components-select__container {
  background: var(--paper) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  overflow: hidden;
}
.wc-block-components-country-input input,
.wc-block-components-country-input select,
.wc-block-components-state-input input,
.wc-block-components-state-input select,
.wc-block-components-combobox input {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 12px !important;
}
.wc-block-components-country-input svg,
.wc-blocks-components-select__expandable {
  color: var(--dim) !important;
  fill: var(--dim) !important;
}
.wc-block-components-text-input label,
.wc-block-components-combobox label {
  color: var(--dim) !important;
}
.wc-block-components-checkbox span {
  color: var(--dim);
  font-size: 14px;
}
.wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-totals-block,
.wc-block-checkout__sidebar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.wc-block-components-order-summary,
.wc-block-checkout__sidebar .wc-block-components-panel {
  background: var(--white) !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  overflow: hidden;
  color: var(--ink);
}
.wc-block-components-order-summary-item__quantity {
  background: var(--royal) !important;
  color: #fff !important;
  border: 2px solid var(--white) !important;
  box-shadow: none !important;
  font-weight: 700 !important;
}
.wc-block-components-order-summary-item__quantity span {
  color: #fff !important;
}
.wc-block-components-product-name,
.wc-block-components-product-price,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-order-summary-item__description {
  color: var(--ink) !important;
}
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained {
  background: var(--royal) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 12px !important;
  min-height: 50px !important;
  font-weight: 600 !important;
}
.wc-block-components-checkout-place-order-button:disabled {
  opacity: .45 !important;
}
.wc-block-components-notice-banner.is-error {
  border-radius: 12px !important;
}
html[data-theme="dark"] .wc-block-components-notice-banner.is-error {
  background: #2a1619 !important;
  border-color: #5a3036 !important;
  color: #f3d0d4 !important;
}
html[data-theme="dark"] .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content {
  color: #f3d0d4 !important;
}
body.ensemble-virtual-checkout .wc-block-components-address-form__address_1,
body.ensemble-virtual-checkout .wc-block-components-address-form__address_2,
body.ensemble-virtual-checkout .wc-block-components-address-form__city,
body.ensemble-virtual-checkout .wc-block-components-address-form__state,
body.ensemble-virtual-checkout .wc-block-components-address-form__postcode,
body.ensemble-virtual-checkout .wc-block-checkout__add-note,
body.ensemble-virtual-checkout .wc-block-checkout__actions .wc-block-checkout__add-note,
body.ensemble-virtual-checkout #order_comments_field,
body.ensemble-virtual-checkout .woocommerce-additional-fields {
  display: none !important;
}
body.woocommerce-checkout a {
  color: var(--royal);
}
body.woocommerce-checkout a.btn,
body.woocommerce-checkout a.btn-p,
body.woocommerce-checkout a.nav-cta,
body.woocommerce-checkout .site-header a.btn-p {
  color: #fff !important;
}
body.woocommerce-checkout a.btn-g {
  color: var(--ink) !important;
  background: var(--white);
}
.wc-block-components-order-summary-item__image img,
.wc-block-components-product-image img,
.woocommerce-cart-form .product-thumbnail img,
.woocommerce-checkout-review-order-table .product-thumbnail img {
  border-radius: 10px !important;
  background: transparent !important;
}
html[data-theme="dark"] .wc-block-components-order-summary-item__image img,
html[data-theme="dark"] .wc-block-components-product-image img {
  background: transparent !important;
}
.woocommerce-Address-title h2,
.woocommerce-Addresses h2,
.u-column h2 {
  font-family: "Schibsted Grotesk", Helvetica, sans-serif !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -.03em;
  color: var(--ink) !important;
  background: none !important;
}
.woocommerce-Address-title {
  background: none !important;
}

/* Account addresses — one billing card, no float junk */
.woocommerce-MyAccount-content .col2-set,
.woocommerce-MyAccount-content .u-columns,
.woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px;
  float: none !important;
  width: 100% !important;
}
.woocommerce-MyAccount-content .col-1,
.woocommerce-MyAccount-content .col-2,
.woocommerce-MyAccount-content .u-column1,
.woocommerce-MyAccount-content .u-column2,
.woocommerce-Address {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.woocommerce-Address .woocommerce-Address-title,
.ensemble-address-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 8px;
  background: none !important;
}
.ensemble-addr-intro {
  margin: 0 0 18px;
  color: var(--dim);
  font-size: 15px;
  line-height: 1.5;
}
.ensemble-address,
.woocommerce-Address {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 20px;
}
.ensemble-address-head h2,
.woocommerce-Address-title h2 {
  font-family: "Schibsted Grotesk", Helvetica, sans-serif;
  font-size: 18px !important;
  font-weight: 800;
  letter-spacing: -.03em;
  margin: 0 !important;
  color: var(--ink) !important;
}
.ensemble-address address,
.woocommerce-Address address {
  font-style: normal;
  color: var(--dim);
  line-height: 1.55;
  margin: 0;
}
.woocommerce-MyAccount-content .woocommerce-address-fields .form-row {
  max-width: 520px;
}
