/* One checkout surface. The ID and targeted !important rules protect it from merchant theme overrides. */
body.ruo-access-page { margin: 0 !important; padding: 0 !important; background: #f5f4ed !important; color: #171817 !important; }
body.ruo-access-page::before { height: 5px; background: #dcff00; }
body.ruo-access-page #rs-checkout {
  --ruo-ink: #171817; --ruo-muted: #5b6462; --ruo-link: #176763; --ruo-line: #c8ceca;
  --ruo-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  display: block; width: 100% !important; max-width: 1200px !important; margin: 0 auto !important;
  padding: 0 36px 40px !important; border: 0 !important; border-radius: 0 !important;
  background: #f5f4ed !important; box-shadow: none !important; color: var(--ruo-ink) !important;
  font: 400 15px/1.5 var(--ruo-font) !important; letter-spacing: 0 !important;
}
#rs-checkout *, #rs-checkout *::before, #rs-checkout *::after { box-sizing: border-box; }
#rs-checkout [hidden] { display: none !important; }
#rs-checkout .ruo-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; margin: 0 0 30px; border: 0; border-bottom: 1px solid var(--ruo-line); }
#rs-checkout .ruo-brand { font: 700 25px/1.2 "ResearchSentry Display", var(--ruo-font) !important; letter-spacing: -0.7px; text-transform: uppercase; }
#rs-checkout .ruo-header a { color: var(--ruo-ink) !important; font-size: 13px; text-decoration: none; white-space: nowrap; }
#rs-checkout .ruo-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,1fr); gap: 34px; align-items: start; }
#rs-checkout .ruo-main { grid-column: 1; grid-row: 1; min-width: 0; }
#rs-checkout :is(h1,h2,h3,h4) { color: var(--ruo-ink) !important; font-family: "ResearchSentry Display", var(--ruo-font) !important; font-weight: 700 !important; font-style: normal !important; text-transform: none !important; letter-spacing: -0.7px !important; line-height: 1.2 !important; padding: 0 !important; }
#rs-checkout h1 { font-size: 36px !important; margin: 0 0 18px !important; }
#rs-checkout h2 { font-size: 26px !important; margin: 26px 0 10px !important; }
#rs-checkout h3 { font-size: 21px !important; margin: 0 0 22px !important; }
#rs-checkout h4 { font-family: var(--ruo-font) !important; font-size: 17px !important; letter-spacing: -0.2px !important; margin: 0 0 8px !important; }
#rs-checkout p { font: inherit; color: inherit !important; margin: 0 0 12px; }
#rs-checkout a { color: var(--ruo-link) !important; text-decoration: underline; text-underline-offset: 3px; }
#rs-checkout .ruo-steps { display: flex; list-style: none !important; padding: 0 !important; margin: 0 0 24px !important; gap: 14px; justify-content: space-between; font-size: 13px; }
#rs-checkout .ruo-steps li { display: flex; align-items: center; gap: 9px; color: var(--ruo-muted); white-space: nowrap; font-weight: 400; }
#rs-checkout .ruo-steps li:not(:last-child) { flex: 1; }
#rs-checkout .ruo-steps li:not(:last-child)::after { content: ""; height: 1px; background: var(--ruo-line); flex: 1; margin-left: 5px; }
#rs-checkout .ruo-steps span { display: inline-flex; align-items: center; justify-content: center; width: 31px; height: 31px; flex: none; border: 1px solid #87928b; border-radius: 50% !important; font-weight: 650; color: var(--ruo-ink); }
#rs-checkout .ruo-steps .is-current { font-weight: 700; color: var(--ruo-ink); }
#rs-checkout .ruo-steps .is-current span { background: #dcff00; border-color: #dcff00; }
#rs-checkout .ruo-steps .is-complete span { background: #176763; color: #fff; border-color: #176763; }
#rs-checkout .ruo-contact { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 18px; padding: 11px 14px; margin: 0 0 22px; background: #e8eee7; font-size: 12px; }
#rs-checkout .ruo-contact strong { font-weight: 400; overflow-wrap: anywhere; }
#rs-checkout .ruo-contact a { margin-left: auto; }
#rs-checkout :is(.ruo-form, .ruo-native-heading) label { color: var(--ruo-ink) !important; }
#rs-checkout .ruo-form { display: grid; gap: 16px; margin: 24px 0 0; }
#rs-checkout .ruo-form label { display: grid; gap: 6px; font: 600 14px/1.5 var(--ruo-font); }
#rs-checkout :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  font: 400 15px/1.4 var(--ruo-font) !important; letter-spacing: 0 !important; color: var(--ruo-ink) !important;
  background: #fff !important; border: 1px solid #b6c0c2 !important; border-radius: 3px !important; box-shadow: none !important;
  width: 100%; min-width: 0; max-width: 100%; min-height: 42px; padding: 10px 12px !important;
}
#rs-checkout textarea { min-height: 80px; resize: vertical; }
#rs-checkout input:is([type="checkbox"],[type="radio"]) { appearance: auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #176763 !important; flex: none; }
#rs-checkout .ruo-form .ruo-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
#rs-checkout :is(button, .ruo-button, a.button, input[type="submit"]) {
  font: 650 15px/1.4 var(--ruo-font) !important; letter-spacing: 0 !important; text-transform: none !important;
  background: #171817 !important; color: #fff !important; border: 1px solid #171817 !important; border-radius: 3px !important;
  box-shadow: none !important; min-height: 46px; padding: 12px 18px !important; cursor: pointer; text-decoration: none !important;
}
#rs-checkout :is(button, .ruo-button, a.button):hover { background: #303b31 !important; color: #fff !important; }
#rs-checkout .ruo-form > button, #rs-checkout #place_order { width: 100%; text-align: left; }
#rs-checkout :is(button:disabled, input:disabled) { opacity: 0.6; cursor: wait; }
#rs-checkout :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #176763 !important; outline-offset: 3px !important; }
#rs-checkout .ruo-agreement { padding: 18px 0 0; border: 0; border-top: 1px solid var(--ruo-line); margin: 2px 0 0; font-size: 14px; }
#rs-checkout .ruo-agreement ul { padding-left: 20px !important; margin: 0 0 8px !important; }
#rs-checkout .ruo-agreement summary { font-size: 13px; color: var(--ruo-link); }
#rs-checkout .ruo-agreement details p { font-size: 13px; line-height: 1.6; }
#rs-checkout .ruo-signature { margin: 0; padding: 0; border: 0; min-width: 0; }
#rs-checkout .ruo-signature legend { font: 600 14px/1.5 var(--ruo-font); margin: 0 0 8px; padding: 0; }
#rs-checkout .ruo-signature canvas { height: 86px; border: 1px solid #b6c0c2; border-radius: 3px; }
#rs-checkout .ruo-signature-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
#rs-checkout .ruo-signature-tools .ruo-signature-caption { flex: 1; margin: 0; font-size: 12px; }
#rs-checkout .ruo-signature .ruo-signature-tool, #rs-checkout .ruo-secondary {
  background: transparent !important; color: var(--ruo-link) !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; min-height: 44px; padding: 8px 4px !important; font: 400 13px/1.4 var(--ruo-font) !important; text-decoration: underline !important; width: auto;
}
#rs-checkout .ruo-signature .ruo-signature-tool:hover { color: #104e4b !important; background: transparent !important; }
#rs-checkout .ruo-links { gap: 14px; font-size: 12px; margin: 0 !important; }
#rs-checkout .ruo-powered { font-size: 12px; margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--ruo-line); color: var(--ruo-muted); }
#rs-checkout .ruo-powered a { color: var(--ruo-muted) !important; }
#rs-checkout .ruo-summary { grid-column: 2; grid-row: 1; padding: 48px 0 0 32px; border-left: 1px solid var(--ruo-line); min-width: 0; align-self: stretch; }
#rs-checkout .ruo-summary-disclosure > summary { display: none; }
#rs-checkout .ruo-summary-item { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; }
#rs-checkout .ruo-summary-item img { width: 72px; height: 78px; object-fit: contain; border-radius: 2px; }
#rs-checkout .ruo-summary-item > div { flex: 1; min-width: 0; }
#rs-checkout .ruo-summary-item strong { font-weight: 550; font-size: 14px; }
#rs-checkout .ruo-summary-item span { font-size: 13px; }
#rs-checkout .ruo-summary-item > span { white-space: nowrap; flex: none; }
#rs-checkout .woocommerce-Price-amount, #rs-checkout .woocommerce-Price-currencySymbol { display: inline !important; white-space: nowrap; }
#rs-checkout .ruo-total { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--ruo-line); padding: 18px 0; margin: 12px 0; font-size: 16px; }
#rs-checkout .ruo-muted { color: var(--ruo-muted) !important; font-size: 13px; }
#rs-checkout :is(.ruo-success,.ruo-warning,.ruo-status) { padding: 16px 18px; margin: 20px 0; border-radius: 3px !important; font-size: 14px; }
#rs-checkout :is(.ruo-status,.ruo-warning,.ruo-success) h2 { font-size: 22px !important; margin: 0 0 10px !important; }
#rs-checkout .ruo-account { margin: 28px 0 0; padding-top: 16px; font-size: 13px; }
#rs-checkout .ruo-details { padding: 14px 0; margin-top: 18px; }
/* Keep the real WooCommerce form, fragments, validation, shipping and payment elements. */
#rs-checkout .woocommerce { font: inherit; }
#rs-checkout form.checkout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,1fr); grid-template-areas: "notice notice" "heading review" "details review"; column-gap: 34px; row-gap: 0; margin: 0; }
#rs-checkout form.checkout::before, #rs-checkout form.checkout::after { display: none; }
#rs-checkout .ruo-native-heading { grid-area: heading; min-width: 0; }
#rs-checkout #customer_details { grid-area: details; width: 100%; min-width: 0; }
#rs-checkout .woocommerce-NoticeGroup-checkout { grid-area: notice; }
#rs-checkout #customer_details :is(.col-1,.col-2) { float: none; width: 100%; }
#rs-checkout #customer_details h3 { font-size: 23px !important; margin: 20px 0 18px !important; }
#rs-checkout #order_review_heading { display: none !important; }
#rs-checkout #order_review { grid-area: review; padding: 48px 0 0 32px; border-left: 1px solid var(--ruo-line); min-width: 0; }
#rs-checkout .ruo-review-title { font-size: 21px !important; margin: 0 0 22px !important; }
#rs-checkout .woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
#rs-checkout .woocommerce form .form-row label { font: 600 14px/1.5 var(--ruo-font); margin-bottom: 6px; color: var(--ruo-ink) !important; }
#rs-checkout .woocommerce .form-row-first, #rs-checkout .woocommerce .form-row-last { width: 48.5%; }
#rs-checkout .woocommerce form .form-row .optional { color: var(--ruo-muted); font-size: 12px; font-weight: 400; }
#rs-checkout .woocommerce form .form-row .required { color: #8d3023; }
#rs-checkout .select2-container { width: 100% !important; }
#rs-checkout .select2-container .select2-selection--single { min-height: 42px; border: 1px solid #b6c0c2; border-radius: 3px; background: #fff; font: 400 15px/1.4 var(--ruo-font); }
#rs-checkout .select2-container .select2-selection__rendered { padding: 10px 30px 10px 12px; line-height: 20px; color: var(--ruo-ink); }
#rs-checkout .select2-container .select2-selection__arrow { top: 8px; }
#rs-checkout table.shop_table { width: 100%; border-collapse: collapse; border: 0; border-radius: 0; font: 400 14px/1.5 var(--ruo-font); margin: 0 0 20px; background: transparent; }
#rs-checkout table.shop_table :is(th,td) { padding: 14px 0; border: 0; border-bottom: 1px solid var(--ruo-line); background: transparent; vertical-align: top; }
#rs-checkout table.shop_table th { font-weight: 600; }
#rs-checkout table.shop_table :is(td:last-child,th:last-child) { text-align: right; }
#rs-checkout table.shop_table .product-name { text-align: left; padding-right: 12px; }
#rs-checkout table.shop_table tfoot .order-total :is(th,td) { font-size: 18px; font-weight: 700; padding-top: 18px; }
#rs-checkout .woocommerce-checkout #payment { background: transparent; border-radius: 0; }
#rs-checkout .woocommerce-checkout #payment :is(ul.payment_methods,div.form-row) { padding: 16px 0; }
#rs-checkout #payment .payment_box { background: #e8eee7; color: var(--ruo-ink); border-radius: 3px; }
#rs-checkout #payment .payment_box::before { border-bottom-color: #e8eee7; }
#rs-checkout .woocommerce-privacy-policy-text { font-size: 12px; color: var(--ruo-muted); }
#rs-checkout #ship-to-different-address { font-family: var(--ruo-font) !important; font-size: 15px !important; letter-spacing: 0 !important; }
#rs-checkout :is(.woocommerce-error,.woocommerce-info,.woocommerce-message) { background: #e8eee7; border: 1px solid #b7c8ba; border-radius: 3px; box-shadow: none; font-size: 14px; padding: 15px 18px; margin-bottom: 22px; color: var(--ruo-ink); }
#rs-checkout .woocommerce-error { border-color: #bd867c; background: #fff1ec; }
#rs-checkout :is(.woocommerce-error,.woocommerce-info,.woocommerce-message)::before { display: none; }
#rs-checkout .woocommerce-form-coupon-toggle { font-size: 13px; }
#rs-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner { border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 0 20px !important; font: 400 13px/1.5 var(--ruo-font) !important; box-shadow: none !important; }
#rs-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner > svg { display: none; }
#rs-checkout .ruo-checkout-item-image { float: left; margin: 0 12px 4px 0; }
#rs-checkout .ruo-checkout-item-image img { width: 52px; height: 60px; object-fit: contain; border-radius: 2px; }
#rs-checkout .product-name .product-quantity { display: block; font-size: 12px; font-weight: 400; color: var(--ruo-muted); }
#rs-checkout form.checkout_coupon { max-width: 640px; border: 1px solid var(--ruo-line); padding: 18px; }
#rs-checkout .ruo-receipt-heading { max-width: 650px; margin-bottom: 30px; }
#rs-checkout .woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 18px 28px; padding: 20px 0; margin: 12px 0 28px; border-bottom: 1px solid var(--ruo-line); }
#rs-checkout .woocommerce ul.order_details li { float: none; border-right: 0; margin: 0; padding: 0; font: 400 12px/1.5 var(--ruo-font); text-transform: none; }
#rs-checkout .woocommerce ul.order_details li strong { font-size: 15px; }
#rs-checkout .woocommerce-customer-details address { border: 1px solid var(--ruo-line); border-radius: 3px; padding: 18px; font-size: 14px; }
@media (max-width: 760px) {
  body.ruo-access-page #rs-checkout { padding: 0 22px 28px !important; }
  #rs-checkout .ruo-header { padding: 20px 0; margin-bottom: 0; gap: 16px; }
  #rs-checkout .ruo-brand { font-size: 20px !important; letter-spacing: -0.5px; overflow-wrap: anywhere; }
  #rs-checkout .ruo-header a { font-size: 12px; }
  #rs-checkout .ruo-layout { display: flex; flex-direction: column; gap: 0; }
  #rs-checkout .ruo-main { width: 100%; padding-top: 24px; }
  #rs-checkout h1 { font-size: 29px !important; margin-bottom: 18px !important; }
  #rs-checkout .ruo-main > h1, #rs-checkout .ruo-native-heading > h1 { position: absolute; width: 1px; height: 1px; margin: -1px !important; padding: 0 !important; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  #rs-checkout h2 { font-size: 24px !important; margin-top: 22px !important; }
  #rs-checkout .ruo-steps { gap: 8px; font-size: 12px; }
  #rs-checkout .ruo-steps li { gap: 6px; }
  #rs-checkout .ruo-steps li:not(:last-child)::after { margin-left: 1px; min-width: 4px; }
  #rs-checkout .ruo-steps span { width: 27px; height: 27px; }
  #rs-checkout .ruo-contact { gap: 5px 10px; font-size: 12px; }
  #rs-checkout .ruo-contact strong { flex-basis: 100%; order: 3; }
  #rs-checkout :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-size: 16px !important; min-height: 46px; }
  #rs-checkout .ruo-summary { order: -1; width: 100%; border-left: 0; border-top: 0; border-bottom: 1px solid var(--ruo-line); padding: 0; }
  #rs-checkout .ruo-summary-disclosure > summary { display: list-item; padding: 16px 0; font-weight: 600; font-size: 14px; cursor: pointer; }
  #rs-checkout .ruo-summary-body { padding: 6px 0 16px; }
  #rs-checkout .ruo-summary-body h3 { display: none; }
  #rs-checkout .ruo-summary-item { margin-bottom: 16px; }
  #rs-checkout .ruo-summary-item img { width: 58px; height: 62px; }
  #rs-checkout .ruo-signature canvas { height: 108px; }
  #rs-checkout .ruo-signature-tools .ruo-signature-caption { flex-basis: 100%; }
  #rs-checkout .ruo-signature .ruo-signature-tool { padding-left: 0 !important; }
  #rs-checkout .ruo-powered { text-align: center; margin-top: 22px; }
  #rs-checkout form.checkout { display: block; }
  #rs-checkout .ruo-native-heading { padding-top: 24px; }
  #rs-checkout #order_review { margin-top: 28px; padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--ruo-line); }
  #rs-checkout .woocommerce .form-row-first, #rs-checkout .woocommerce .form-row-last { width: 100%; float: none; }
  #rs-checkout .ruo-receipt-heading { padding-top: 24px; }
}
@media (prefers-reduced-motion: reduce) { #rs-checkout * { scroll-behavior: auto !important; } }
/* Entry acknowledgment is a distinct store entrance, before the checkout journey. */
.ruo-gate-preview { position: fixed; inset: 5px 0 0; overflow: hidden; background: #f5f4ed; color: #171817; font: 15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; pointer-events: none; }
.ruo-gate-preview > header { display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; padding: 32px 36px; border-bottom: 1px solid #c8ceca; }
.ruo-gate-preview > header strong { font-size: 24px; text-transform: uppercase; }
.ruo-gate-preview-content { max-width: 1200px; margin: 50px auto; padding: 0 36px; }
.ruo-gate-preview-content h2 { font: 700 34px/1.2 "ResearchSentry Display",Arial,sans-serif !important; text-transform: none !important; margin-bottom: 30px; }
.ruo-gate-preview-products { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.ruo-gate-preview-products article { border: 1px solid #c8ceca; padding: 24px; background: #fff; }
.ruo-gate-preview-products img { width: 100%; height: 200px; object-fit: contain; }
.ruo-gate-preview-products h3 { font: 600 17px/1.4 Arial,sans-serif !important; text-transform: none !important; }
.ruo-gate-stage { position: fixed; inset: 5px 0 0; z-index: 9999; display: grid; place-items: center; padding: 28px; background: rgba(27,34,29,.42); backdrop-filter: blur(5px); overflow-y: auto; }
body.ruo-access-page #rs-checkout.ruo-gate-surface { width: 100% !important; max-width: 590px !important; margin: auto !important; padding: 30px 34px 24px !important; border: 1px solid #d0d5ce !important; border-radius: 8px !important; box-shadow: 0 18px 70px rgba(0,0,0,.16) !important; max-height: calc(100svh - 61px); overflow-y: auto; }
#rs-checkout.ruo-gate-surface:focus { outline: none; }
#rs-checkout .ruo-gate-brand { font: 700 19px/1.3 "ResearchSentry Display",Arial,sans-serif; text-transform: uppercase; letter-spacing: -.4px; padding: 0 0 20px; margin-bottom: 22px; border-bottom: 1px solid var(--ruo-line); }
#rs-checkout.ruo-gate-surface h1 { font-size: 29px !important; margin-bottom: 12px !important; }
#rs-checkout.ruo-gate-surface .ruo-form { margin: 24px 0 16px; gap: 18px; }
#rs-checkout.ruo-gate-surface .ruo-check { font-size: 14px; line-height: 1.55; }
#rs-checkout.ruo-gate-surface .ruo-links { display: flex; gap: 16px; }
#rs-checkout.ruo-gate-surface .ruo-gate-exit { margin: 12px 0 18px; font-size: 13px; }
#rs-checkout.ruo-gate-surface .ruo-muted { font-size: 12px; line-height: 1.5; }
#rs-checkout.ruo-gate-surface .ruo-powered { margin-top: 20px; font-size: 11px; }
@media (max-width: 600px) {
  .ruo-gate-preview { display: none; }
  .ruo-gate-stage { display: block; padding: 0; background: #f5f4ed; backdrop-filter: none; }
  body.ruo-access-page #rs-checkout.ruo-gate-surface { max-width: none !important; min-height: calc(100svh - 5px); max-height: none; margin: 0 !important; padding: 26px 22px !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow-y: visible; }
  #rs-checkout.ruo-gate-surface .ruo-powered { text-align: left; }
}
