/* WooCommerce surfaces: block cart, block checkout, classic My Account, notices. Tokens only; keeps the gallery voice without fighting the blocks. */

/* Page frame for the WooCommerce pages (they render inside our header/footer parts) */
.soho-wc { padding: clamp(24px, 4vw, 56px) 0 clamp(96px, 11vw, 160px); }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .woocommerce-account .woocommerce { max-width: var(--soho-container-max); margin: 0 auto; padding: 0 clamp(20px, 3vw, 40px); }
/* WooCommerce renders cart/checkout through its own page-content-wrapper, which already carries the global padding */
.has-global-padding .wp-block-woocommerce-cart, .has-global-padding .wp-block-woocommerce-checkout, .soho-page .wp-block-woocommerce-cart, .soho-page .wp-block-woocommerce-checkout { padding-left: 0; padding-right: 0; }

/* Typography inside the blocks */
.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title, .wc-block-components-product-name, .woocommerce-account h2, .woocommerce-account h3 { font-family: var(--soho-font-display); font-weight: 400; color: var(--soho-color-iron); letter-spacing: -.01em; }
.wc-block-components-product-name { font-size: 1.25rem; }
.wc-block-components-product-metadata, .wc-block-components-product-details, .wc-block-components-order-summary-item__description { font-family: var(--soho-font-mono); font-size: 12px; color: var(--soho-color-mute); }
.wc-block-components-product-price, .wc-block-components-totals-item__value, .wc-block-formatted-money-amount { font-family: var(--soho-font-mono); color: var(--soho-color-iron); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.4rem; }

/* Fields */
.wc-block-components-text-input input, .wc-block-components-select .components-custom-select-control__button, .wc-block-components-textarea, .woocommerce-account .woocommerce-Input, .woocommerce-account .input-text, .wc-block-components-quantity-selector input { border: 1px solid var(--soho-color-plaster) !important; border-radius: 0 !important; background: var(--soho-color-gallery); font-family: var(--soho-font-sans); color: var(--soho-color-iron); box-shadow: none !important; }
.wc-block-components-text-input input:focus, .woocommerce-account .input-text:focus { border-color: var(--soho-color-iron) !important; outline: 2px solid var(--soho-color-red); outline-offset: 2px; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--soho-color-red); border-color: var(--soho-color-red); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { color: #fff; }

/* Buttons: iron, red on hover, square */
.wc-block-components-button, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .woocommerce-account .button, .woocommerce-account .woocommerce-Button, .wc-block-mini-cart__footer-actions .wc-block-components-button { background: var(--soho-color-iron) !important; color: var(--soho-color-gallery) !important; border: 1px solid var(--soho-color-iron) !important; border-radius: 0 !important; font: 500 13px/1 var(--soho-font-sans) !important; letter-spacing: .12em; text-transform: uppercase; min-height: 48px; box-shadow: none !important; }
.wc-block-components-button:hover, .woocommerce-account .button:hover, .wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--soho-color-red) !important; border-color: var(--soho-color-red) !important; color: #fff !important; }
.wc-block-components-button.outlined, .wc-block-components-button.contained.outlined { background: transparent !important; color: var(--soho-color-iron) !important; }

/* Cart layout */
.wc-block-cart .wc-block-cart-items { border-top: 1px solid var(--soho-color-plaster); }
.wc-block-cart-items__row, .wc-block-cart-items__header { border-bottom: 1px solid var(--soho-color-plaster); }
.wc-block-cart-item__image img { background: var(--soho-color-bone); }
.wc-block-cart__sidebar .wc-block-components-sidebar-layout, .wc-block-components-sidebar { border: 1px solid var(--soho-color-plaster); padding: 24px; }
.wc-block-components-totals-item, .wc-block-components-order-summary { border-color: var(--soho-color-plaster); }
.wc-block-components-notice-banner { border-radius: 0; border-color: var(--soho-color-plaster); }
.wc-block-components-notice-banner.is-info { background: var(--soho-color-bone); }

/* Checkout: the research-use attestation block stands out */
.wc-block-components-checkout-step { border-top: 1px solid var(--soho-color-plaster); padding-top: 24px; }
.wc-block-components-checkout-step__title { font-size: 1.5rem; }
.wc-block-components-additional-fields .wc-block-components-checkbox { padding: 16px; border: 1px solid var(--soho-color-plaster); background: var(--soho-color-bone); }
.wc-block-components-additional-fields .wc-block-components-checkbox label { font-size: 14px; line-height: 1.5; }
.wc-block-checkout__terms { font-size: 13px; color: var(--soho-color-graphite); }

/* Customer portal (D78): head, menu (left rail on desktop, swipeable pills on phones), overview cards, empty states */
.soho-account__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin: 0 0 clamp(24px, 4vw, 40px); padding-bottom: clamp(16px, 2vw, 24px); border-bottom: 1px solid var(--soho-color-plaster); }
.soho-account__head .soho-eyebrow { margin-bottom: 8px; }
.soho-account__head .soho-h2 { margin: 0; }
.soho-account__who { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0; font-size: 14px; color: var(--soho-color-mute); }
.soho-account__who span { overflow-wrap: anywhere; }
.soho-account__who a { display: inline-flex; align-items: center; min-height: 44px; color: var(--soho-color-iron); text-decoration: underline; text-underline-offset: 3px; }
.soho-account--out .soho-crumbs { margin-bottom: 16px; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
.woocommerce-account:not(.logged-in) .woocommerce { grid-template-columns: 1fr; }
.soho-account .woocommerce { padding-left: 0; padding-right: 0; }   /* the page wrap already sets the side margin; WooCommerce's own 20 px doubled it on phones */
/* WooCommerce's block-theme stylesheet centres the account area at 1000 px, pads each menu item and underlines the active one */
.woocommerce-account main .soho-account .woocommerce { max-width: none; margin: 0; }
.woocommerce-account .soho-account-nav.woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.woocommerce-account .soho-account-nav.woocommerce-MyAccount-navigation li a, .woocommerce-account .soho-account-nav.woocommerce-MyAccount-navigation li.is-active a { text-decoration: none; }
.soho-account-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.soho-account-nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 12px; border-radius: 2px; font-size: 14px; font-weight: 500; color: var(--soho-color-graphite); transition: background .2s, color .2s; }
.soho-account-nav a:hover { background: var(--soho-color-bone); color: var(--soho-color-iron); }
.soho-account-nav .is-active a { background: var(--soho-color-surface); color: var(--soho-color-iron); box-shadow: inset 2px 0 0 var(--soho-color-red); }
.soho-account-icon { flex: none; color: var(--soho-color-mute); }
.soho-account-nav .is-active .soho-account-icon, .soho-account-nav a:hover .soho-account-icon { color: var(--soho-color-red); }
.soho-account-nav .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--soho-color-plaster); }
@media (min-width: 1024px) { .soho-account-nav { position: sticky; top: calc(var(--soho-header-h, 72px) + 24px); } }
@media (max-width: 1023px) {
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
  /* phones and tablets: one swipeable row, the content starts on the first screen */
  .soho-account-nav { margin: 0 -20px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .soho-account-nav::-webkit-scrollbar { display: none; }
  .soho-account-nav ul { display: flex; gap: 8px; padding: 0 20px 4px; width: max-content; }
  .soho-account-nav a { gap: 8px; padding: 0 14px; border: 1px solid var(--soho-color-plaster); border-radius: 999px; background: var(--soho-color-surface); white-space: nowrap; }
  .soho-account-nav .is-active a { background: var(--soho-color-iron); border-color: var(--soho-color-iron); color: var(--soho-color-gallery); box-shadow: none; }
  .soho-account-nav .is-active .soho-account-icon { color: var(--soho-color-gallery); }
  .soho-account-nav .woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }
  .soho-account-icon { width: 18px; height: 18px; }
}
.woocommerce-MyAccount-content { min-width: 0; font-size: 15px; line-height: 1.6; }
.woocommerce-MyAccount-content > h2:first-child, .woocommerce-MyAccount-content > h2 { font: 400 1.5rem/1.2 var(--soho-font-display); color: var(--soho-color-iron); margin: 0 0 8px; }

/* overview cards */
.soho-dash { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.soho-dash__card { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--soho-color-plaster); border-radius: 2px; background: var(--soho-color-surface); }
.soho-dash__card--order { grid-column: 1 / -1; }
.soho-dash__head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.soho-dash__head .soho-account-icon { color: var(--soho-color-red); }
.soho-dash__head h2 { margin: 0; font: 500 12px var(--soho-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--soho-color-mute); }
.soho-dash__lead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; font: 400 1.35rem/1.25 var(--soho-font-display); color: var(--soho-color-iron); }
.soho-dash__lead a { color: inherit; }
.soho-dash__meta { margin: 0; font-size: 14px; line-height: 1.5; color: var(--soho-color-graphite); }
.soho-dash__address { margin: 0; font-style: normal; font-size: 14px; line-height: 1.6; color: var(--soho-color-graphite); }
.soho-dash__facts { margin: 0; display: grid; gap: 8px; font-size: 14px; }
.soho-dash__facts div { display: grid; gap: 2px; }   /* label above value: an email address never breaks mid-word in a narrow card */
.soho-dash__facts dt { font-size: 12px; color: var(--soho-color-mute); }
.soho-dash__facts dd { margin: 0; color: var(--soho-color-iron); overflow-wrap: anywhere; }
.soho-dash__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: auto; padding-top: 12px; }
.soho-dash__actions .soho-btn { min-height: 44px; }
.soho-dash__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; font-weight: 500; color: var(--soho-color-iron); }
.soho-dash__link .soho-arrow { transition: transform .25s var(--soho-ease-out); }
.soho-dash__link:hover .soho-arrow { transform: translateX(4px); }
.soho-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font: 500 12px/1.6 var(--soho-font-sans); background: var(--soho-color-bone); color: var(--soho-color-iron); }
.soho-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--soho-color-mute); }
.soho-status--processing::before, .soho-status--on-hold::before { background: var(--soho-color-notice); }
.soho-status--completed::before { background: var(--soho-color-verified); }
.soho-status--cancelled::before, .soho-status--failed::before, .soho-status--refunded::before { background: var(--soho-color-alert); }

/* empty states (orders) */
.soho-empty { display: grid; justify-items: start; gap: 8px; padding: clamp(24px, 4vw, 40px); border: 1px dashed var(--soho-color-plaster); border-radius: 2px; }
.soho-empty .soho-account-icon { width: 28px; height: 28px; color: var(--soho-color-red); }
.soho-empty__title { margin: 4px 0 0; font: 400 1.5rem/1.2 var(--soho-font-display); color: var(--soho-color-iron); }
.soho-empty p { margin: 0 0 8px; max-width: 52ch; font-size: 14px; color: var(--soho-color-graphite); }

/* WooCommerce notices (info, success, error): quiet bordered boxes with a coloured edge; their buttons as text links */
.woocommerce-info, .woocommerce-message, .woocommerce-error { list-style: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--soho-color-plaster); border-left: 3px solid var(--soho-color-mute); border-radius: 2px; background: var(--soho-color-surface); font-size: 14px; color: var(--soho-color-iron); }
.woocommerce-message { border-left-color: var(--soho-color-verified); }
.woocommerce-error { border-left-color: var(--soho-color-alert); }
.woocommerce-error li { margin: 0; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { content: none; }
.woocommerce-info .button, .woocommerce-message .button, .woocommerce-error .button { order: 2; display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; font: 500 13px var(--soho-font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--soho-color-iron); text-decoration: underline; text-underline-offset: 3px; }

/* password fields: WooCommerce's show/hide button (an empty square without styles) as an eye icon inside the field */
.woocommerce form .password-input, .woocommerce-page form .password-input { position: relative; display: block; }
.woocommerce form .password-input input, .woocommerce-page form .password-input input { padding-right: 48px; }
.show-password-input { position: absolute; top: 0; right: 0; width: 48px; height: 48px; padding: 0; border: 0; background: none; cursor: pointer; color: var(--soho-color-mute); }
.show-password-input::after { content: ""; position: absolute; inset: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
.show-password-input.display-password { color: var(--soho-color-red); }
.show-password-input:hover { color: var(--soho-color-iron); }
.woocommerce-password-strength { margin-top: 6px; padding: 6px 10px; border-radius: 2px; font-size: 12px; background: var(--soho-color-bone); }
.woocommerce-password-strength.strong, .woocommerce-password-strength.good { background: color-mix(in srgb, var(--soho-color-verified) 14%, transparent); }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { background: var(--soho-color-red-tint); }
.woocommerce-password-hint { display: block; margin-top: 4px; font-size: 12px; color: var(--soho-color-mute); }

/* account details and addresses */
.woocommerce-EditAccountForm, .woocommerce-address-fields { max-width: 640px; }
.woocommerce-EditAccountForm .form-row-first, .woocommerce-EditAccountForm .form-row-last, .woocommerce-address-fields .form-row-first, .woocommerce-address-fields .form-row-last { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
.woocommerce-EditAccountForm .form-row-first, .woocommerce-address-fields .form-row-first { margin-right: 16px; }
@media (max-width: 599px) { .woocommerce-EditAccountForm .form-row-first, .woocommerce-EditAccountForm .form-row-last, .woocommerce-address-fields .form-row-first, .woocommerce-address-fields .form-row-last { display: block; width: auto; margin-right: 0; } }
.woocommerce-EditAccountForm .form-row, .woocommerce-address-fields .form-row { margin: 0 0 16px; }
.woocommerce-EditAccountForm em, #account_display_name_description { display: block; margin-top: 4px; font-size: 12px; font-style: normal; color: var(--soho-color-mute); }
.woocommerce-EditAccountForm fieldset { margin: 24px 0; padding: 20px; border: 1px solid var(--soho-color-plaster); border-radius: 2px; }
.woocommerce-EditAccountForm legend { padding: 0 8px; font: 500 12px var(--soho-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--soho-color-mute); }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; margin-top: 16px; }
.woocommerce-Addresses .woocommerce-Address { padding: 20px; border: 1px solid var(--soho-color-plaster); border-radius: 2px; background: var(--soho-color-surface); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { margin: 0; font: 500 12px var(--soho-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--soho-color-mute); }
.woocommerce-Address-title .edit { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 500; color: var(--soho-color-iron); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-Address address { font-style: normal; font-size: 14px; line-height: 1.6; color: var(--soho-color-graphite); }
.woocommerce-MyAccount-content .woocommerce-Button, .woocommerce-MyAccount-content button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; }

/* orders table: stacked rows on phones */
@media (max-width: 767px) {
  .woocommerce-orders-table thead { display: none; }
  .woocommerce-orders-table, .woocommerce-orders-table tbody, .woocommerce-orders-table tr { display: block; }
  .woocommerce-orders-table tr { padding: 14px 0; border-bottom: 1px solid var(--soho-color-plaster); }
  .woocommerce-orders-table th, .woocommerce-orders-table td { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border: 0; }
  .woocommerce-orders-table [data-title]::before { content: attr(data-title); color: var(--soho-color-mute); font-size: 13px; }
  .woocommerce-orders-table__cell-order-actions::before { content: none !important; }
}
.woocommerce-MyAccount-content table { width: 100%; border-collapse: collapse; }
.woocommerce-MyAccount-content th, .woocommerce-MyAccount-content td { text-align: left; padding: 12px 8px 12px 0; border-bottom: 1px solid var(--soho-color-plaster); font-size: 14px; }
.woocommerce-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); }
.woocommerce-form-login, .woocommerce-form-register { border: 1px solid var(--soho-color-plaster); padding: clamp(24px, 3vw, 40px); }
.woocommerce-form-row label, .woocommerce-account label { font-size: 13px; font-weight: 500; letter-spacing: .04em; display: block; margin-bottom: 6px; }
.woocommerce-account .input-text { width: 100%; height: 48px; padding: 0 14px; }
.soho-attest label { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; font-weight: 400; line-height: 1.5; padding: 14px; background: var(--soho-color-bone); border: 1px solid var(--soho-color-plaster); }
.soho-attest input { margin-top: 3px; accent-color: var(--soho-color-red); }
.woocommerce-privacy-policy-text { font-size: 12px; color: var(--soho-color-mute); }
@media (max-width: 1023px) { .woocommerce-account .u-columns { grid-template-columns: 1fr; } }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 24px; padding: 14px 16px; border: 1px solid var(--soho-color-plaster); background: var(--soho-color-bone); font-size: 14px; }
.woocommerce-error { border-color: var(--soho-color-red); }

/* Phone tap targets inside the WooCommerce blocks (44 px, docs/16 §1): quantity buttons, remove, product links, address toggle, cart link */
@media (max-width: 767px) {
  .wc-block-cart .wc-block-components-quantity-selector { height: 48px; width: auto; min-width: 134px; }
  .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 44px; min-height: 44px; }
  .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { min-width: 44px; }
  .wc-block-cart-item__remove-link, .wc-block-cart-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .wc-block-components-product-name, .wc-block-components-address-form__address_2-toggle { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
  .wc-block-components-order-summary__button, .wc-block-components-panel__button { min-height: 44px; }
}

/* Cart rows on phones: image left, product details and the line total stacked on the right (nothing past the edge) */
@media (max-width: 767px) {
  .wc-block-cart .wc-block-cart-items .wc-block-cart-items__row { display: grid !important; grid-template-columns: 64px minmax(0, 1fr) !important; column-gap: 12px; }
  .wc-block-cart .wc-block-cart-items .wc-block-cart-item__image { grid-column: 1 !important; grid-row: 1 / 3 !important; width: 64px; }
  .wc-block-cart .wc-block-cart-items .wc-block-cart-item__image img { max-width: 64px; }
  .wc-block-cart .wc-block-cart-items .wc-block-cart-item__product { grid-column: 2 !important; grid-row: 1 !important; min-width: 0; }
  .wc-block-cart .wc-block-cart-items .wc-block-cart-item__total { grid-column: 2 !important; grid-row: 2 !important; justify-content: flex-start !important; text-align: left !important; padding-top: 8px; }
}

/* Research access (D61): the logged-out Account page */
.soho-access { display: grid; gap: 32px; }
.soho-access__pitch .soho-h2 { margin: 6px 0 12px; }
.soho-access__perks { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 14px; }
.soho-access__perks li { display: grid; gap: 2px; padding-left: 28px; position: relative; }
.soho-access__perks li::before { content: "✓"; position: absolute; left: 0; top: 0; font: 500 14px/1.5 var(--soho-font-sans); color: var(--soho-color-red); }
.soho-access__perks b { font-weight: 500; color: var(--soho-color-iron); }
.soho-access__perks span { font-size: 14px; line-height: 1.5; color: var(--soho-color-graphite); }
.soho-access__proof { margin: 20px 0 0; font-weight: 500; color: var(--soho-color-iron); }
.soho-access__trust { list-style: none; margin: 24px 0 0; padding: 16px 0 0; border-top: 1px solid var(--soho-color-plaster); display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; color: var(--soho-color-graphite); }
.soho-access__trust li { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.soho-access__trust svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--soho-color-red); }
.soho-access__ruo { margin: 20px 0 0; font-size: 12px; line-height: 1.5; color: var(--soho-color-mute); }
.soho-access__forms { border: 1px solid var(--soho-color-plaster); padding: 20px; background: var(--soho-color-gallery); }
.soho-tabs { display: flex; margin: -20px -20px 20px; border-bottom: 1px solid var(--soho-color-plaster); }
.soho-tabs [role="tab"] { flex: 1; min-height: 48px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font: 500 14px var(--soho-font-sans); color: var(--soho-color-mute); cursor: pointer; }
.soho-tabs [role="tab"][aria-selected="true"] { color: var(--soho-color-iron); border-bottom-color: var(--soho-color-red); }
html.js .soho-tabpanel:not(.is-active) { display: none; }
.soho-access__title { margin: 0 0 16px; font: 400 1.6rem var(--soho-font-display); color: var(--soho-color-iron); }
.soho-access .woocommerce-form-login, .soho-access .woocommerce-form-register { border: 0; padding: 0; }
.soho-access .woocommerce-form-row { margin: 0 0 14px; }
.soho-access__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 8px; }
.soho-access__row label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; min-height: 44px; }
.soho-access__row input[type="checkbox"] { accent-color: var(--soho-color-red); width: 18px; height: 18px; }
.soho-access__lost { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--soho-color-graphite); border-bottom: 1px solid var(--soho-color-plaster); }
.soho-access .soho-btn { width: 100%; justify-content: center; margin-top: 4px; }
.soho-access__switch { margin: 16px 0 0; font-size: 14px; color: var(--soho-color-graphite); }
.soho-access__link { background: none; border: 0; padding: 0; min-height: 44px; font: 500 14px var(--soho-font-sans); color: var(--soho-color-iron); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.soho-access__hint { font-size: 14px; color: var(--soho-color-graphite); }
.soho-access .soho-attest label { margin: 0; }
@media (min-width: 1024px) { .soho-access { grid-template-columns: 1.1fr .9fr; gap: clamp(40px, 6vw, 96px); align-items: start; } .soho-access__forms { padding: 28px; } .soho-tabs { margin: -28px -28px 24px; } }

/* Bag page (D61): head, free-shipping bar, volume nudge, trust at the point of purchase */
.soho-cart-head { padding-top: 8px; margin-bottom: 8px; }
.soho-cart-head .soho-h2 { margin: 4px 0 12px; }
.soho-shipbar { max-width: 560px; margin: 12px 0; }
.soho-shipbar__text { margin: 0 0 8px; font-size: 14px; color: var(--soho-color-graphite); }
.soho-cart-nudge { margin: 12px 0 0; padding: 12px 14px; max-width: 560px; border: 1px solid var(--soho-color-plaster); background: var(--soho-color-bone); font-size: 14px; color: var(--soho-color-iron); }
.soho-cart-nudge[hidden] { display: none; }
.soho-cart-trust { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--soho-color-plaster); }
.soho-cart-trust .soho-proof__list { padding: 0; }
.soho-cart-trust .soho-ruo-note { margin-top: 24px; }
@media (min-width: 1024px) { .soho-cart-trust .soho-proof__list { grid-template-columns: repeat(4, 1fr); gap: 32px; } }

/* the research-access layout needs the whole content width; WooCommerce's show-password toggle is hidden */
.soho-page .soho-prose--page:has(.soho-access) { max-width: none; }
.soho-access .show-password-input { display: none; }
.soho-access .woocommerce-form-row label { font-size: 13px; font-weight: 500; letter-spacing: .04em; display: block; margin-bottom: 6px; }

/* Review fixes (D65): one box around the totals, padded on phones; a quieter checkout (no mega nav, no footer columns) */
.wc-block-cart__sidebar .wc-block-components-sidebar-layout, .wc-block-components-sidebar { border: 0; padding: 0; }
.wc-block-cart .wc-block-cart__totals-title { padding-top: 0; }
@media (max-width: 767px) { .wc-block-components-totals-wrapper, .wc-block-components-totals-item { padding-left: 16px; padding-right: 16px; } .wc-block-cart .wc-block-components-sidebar { border: 1px solid var(--soho-color-plaster); padding: 16px 0; } }
.woocommerce-checkout .soho-nav, .woocommerce-checkout .soho-footer__mark, .woocommerce-checkout .soho-footer__cols, .woocommerce-checkout .soho-footer__trust { display: none; }
.woocommerce-checkout .soho-footer { padding-top: 32px; }
.woocommerce-checkout .wc-block-components-checkout-place-order-button { margin-bottom: 8px; }
.wc-block-checkout__actions::after { content: "SSL-encrypted checkout · Research use only · Discreet packaging"; display: block; margin-top: 12px; font: 500 11px var(--soho-font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--soho-color-mute); text-align: center; }

/* Research access over the gallery loop (round 2, docs/18 §1b.4): the hero clip at 40 % brightness behind the pitch and the
   sign-in card; the vertical cut on phones. Full-bleed band, the forms stay a light card on top. */
.soho-access--video { position: relative; isolation: isolate; margin: 0 calc(50% - 50vw); padding: clamp(32px, 5vw, 64px) calc(50vw - 50%); color: var(--soho-color-cream); background: var(--soho-color-night); }
.soho-access__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.soho-access__bg .soho-hero__poster, .soho-access__bg .soho-hero__poster img, .soho-access__bg .soho-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; }
.soho-access__bg .soho-hero__poster img, .soho-access__bg .soho-hero__video { object-fit: cover; object-position: 50% 62%; filter: brightness(.4); }
.soho-access__bg .soho-hero__video { opacity: 0; transition: opacity .8s ease; }
.soho-access__bg.is-playing .soho-hero__video { opacity: 1; }
.soho-access--video .soho-h2, .soho-access--video .soho-access__perks b, .soho-access--video .soho-access__proof { color: var(--soho-color-cream); }
.soho-access--video .soho-lead, .soho-access--video .soho-access__perks span { color: color-mix(in srgb, var(--soho-color-cream) 82%, transparent); }
.soho-access--video .soho-access__trust { border-top-color: color-mix(in srgb, var(--soho-color-cream) 25%, transparent); color: var(--soho-color-cream); }
.soho-access--video .soho-access__ruo { color: color-mix(in srgb, var(--soho-color-cream) 85%, transparent); padding: 10px 12px; border-radius: 2px; background: color-mix(in srgb, var(--soho-color-night) 62%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.soho-access--video .soho-access__forms { padding: 20px; border-radius: 2px; background: var(--soho-color-surface); color: var(--soho-color-iron); }
@media (min-width: 1024px) { .soho-access__bg .soho-hero__poster img, .soho-access__bg .soho-hero__video { object-position: 50% 50%; } .soho-access--video .soho-access__forms { padding: 28px; } }

/* checkout checkboxes (the research-use attestation and the WooCommerce ones): 24 px targets (WCAG 2.5.8) */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { width: 24px; height: 24px; min-width: 24px; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { width: 18px; height: 18px; left: 3px; top: 3px; margin: 0; }

/* registration attestation: the same 24 px box as checkout (WCAG 2.5.8) */
.soho-attest input[type="checkbox"] { width: 24px; height: 24px; flex: none; margin-top: 0; }

/* Research access on phones (D78): the sign-in and register card first, the promise and perks after it */
@media (max-width: 1023px) { .soho-access__forms { order: -1; } .soho-access--video { padding-top: 24px; } }
