/* Shared storefront fixes, after the legacy theme and landing-page styles. */
#site-nav .nav-inner { position:relative; }
#site-nav .nav-links.open {
  display:flex;
  position:absolute;
  top:calc(100% + 8px) !important;
  right:0 !important;
  left:auto !important;
  width:min(250px,calc(100vw - 40px));
  min-width:0;
  max-height:calc(100vh - var(--rw-menu-offset,112px));
  max-height:calc(100dvh - var(--rw-menu-offset,112px));
  padding:10px;
  flex-direction:column;
  align-items:stretch;
  gap:2px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  border:0 !important;
  border-radius:18px;
  background:#fff !important;
  border:1px solid #e4e4df !important;
  box-shadow:0 12px 32px rgba(17,17,17,.09) !important;
}
#site-nav .nav-links.open a,
#site-nav .nav-links.open a:hover,
#site-nav .nav-links.open a:focus-visible {
  display:flex;
  align-items:center;
  min-height:48px;
  padding:12px 14px;
  border-radius:10px;
  color:#111 !important;
  font-size:14px;
  line-height:1.4;
}
#site-nav .nav-links.open a:hover,
#site-nav .nav-links.open a:focus-visible { background:#f4f4f1; }
#site-nav .nav-toggle {
  min-width:76px !important;
  min-height:44px !important;
  padding:0 !important;
  border:1px solid #deded8 !important;
  border-radius:999px;
  background:#fff !important;
  color:#111 !important;
}
#site-nav .nav-toggle::before { content:"Menu"; font:500 14px/1.2 "DM Sans",Inter,sans-serif; }
#site-nav .nav-toggle span { display:none; }
#site-nav .nav-toggle:hover, #site-nav .nav-toggle.active { background:#efefeb !important; }
#site-nav .nav-cart { min-width:44px !important; min-height:44px !important; }
#site-nav button:focus-visible { outline:2px solid #111; outline-offset:3px; }

.rw-cart-feedback { margin:16px; padding:12px; border:1px solid #e5b4ac; border-radius:12px; background:#fff1ee; color:#8a3026; font-size:14px; line-height:1.5; }
.rw-cart-feedback[hidden] { display:none; }
.rw-minicart-checkout { background:#111 !important; color:#fff !important; }
.rw-minicart-checkout:hover { background:#333 !important; }

/* Restore full-sized login controls after removal of WooCommerce's stylesheet. */
body.rw-account-guest .woocommerce { display:block; max-width:520px; margin-inline:auto; }
body.rw-account-guest .woocommerce > h2,
body.rw-account-guest .woocommerce .u-column1 > h2,
body.rw-account-guest .woocommerce .u-column2 > h2 { margin-bottom:24px; font-size:28px; line-height:1.2; letter-spacing:-.02em; }
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce form.lost_reset_password { padding:24px; border:1px solid var(--rw-rule); border-radius:20px; background:#fff; }
.woocommerce .woocommerce-form-login__submit,
.woocommerce .woocommerce-form-register__submit,
.woocommerce .lost_reset_password button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  padding:12px 24px;
  border:1px solid #111;
  border-radius:999px;
  background:#111;
  color:#fff;
  font:500 16px/1.4 "DM Sans",Inter,sans-serif;
  cursor:pointer;
}
.woocommerce .woocommerce-form-login__rememberme { display:flex !important; align-items:center; gap:10px; min-height:44px; text-transform:none !important; letter-spacing:0 !important; font-size:14px !important; }
.woocommerce .woocommerce-form-login__rememberme input { width:20px; height:20px; accent-color:#111; }
.woocommerce .password-input { display:block; position:relative; }
.woocommerce .password-input input { padding-right:56px !important; }
.woocommerce .show-password-input {
  position:absolute;
  top:50%;
  right:3px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  min-width:44px;
  padding:0;
  transform:translateY(-50%);
  border:0;
  border-radius:8px;
  background:transparent;
  cursor:pointer;
}
.woocommerce .show-password-input::before {
  content:"";
  display:block;
  width:22px;
  height:22px;
  background:center/22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555550' stroke-width='1.6'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
.woocommerce .show-password-input:hover { background:#f3f3f0; }
.woocommerce .woocommerce-LostPassword a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; text-underline-offset:3px; }
.woocommerce button:focus-visible { outline:2px solid #111; outline-offset:3px; }

/* Keep card-entry text legible; Stripe reads the native appearance bridge too. */
#wc-stripe-hidden-style-input, #wc-stripe-hidden-input, #wc-stripe-hidden-div input { font-size:16px !important; }
.checkout-section .woocommerce-billing-fields > h3 { display:none; }
.woocommerce-checkout #place_order { background:#111 !important; color:#fff !important; min-height:48px; }
.woocommerce-checkout #place_order:hover { background:#333 !important; }

@media (max-width:900px) {
  .woocommerce-checkout form.checkout { padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; }
  .checkout-columns { grid-template-columns:minmax(0,1fr); gap:24px; }
  .checkout-col-left, .checkout-col-right { min-width:0; }
  .checkout-col-right { position:static; }
  .checkout-section { padding:20px; border-radius:20px; }
  #payment .payment_box { padding:0; margin-top:14px; background:transparent; }
  #payment .payment_box fieldset { margin:0; padding:0; }
  #payment ul.payment_methods { padding:0; }
  #payment .payment_box .testmode-info { line-height:1.5; overflow-wrap:anywhere; }
  .woocommerce-checkout #order_review { border-radius:20px !important; }
}

@media (max-width:768px) {
  #site-nav .nav-right .btn-primary { display:none !important; }
  #site-nav .nav-toggle { display:flex; align-items:center; justify-content:center; }
  #site-nav .nav-logo { padding:0 !important; }
  #site-nav .nav-logo-image { width:132px !important; height:52px !important; flex-basis:132px !important; }
  body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-page-wrap > .container { width:calc(100% - 24px); padding-inline:0; }
  body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-page-wrap { padding-top:116px; padding-bottom:64px; }
  .woocommerce-cart h1, .woocommerce-checkout h1, .woocommerce-account h1 { font-size:32px; line-height:1.15; margin-bottom:28px; letter-spacing:-.02em; }
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row select,
  .woocommerce form .form-row textarea { min-height:48px; font-size:16px; padding:12px; }
  .woocommerce form .form-row label { color:#555550; letter-spacing:0; text-transform:none; font-size:14px; line-height:1.4; }
  .checkout-section { padding:16px; }
  .checkout-section-title { margin-bottom:18px; font-size:18px; line-height:1.4; }
  #order_review table { margin-bottom:0; }
  #order_review table tbody td { display:table-cell; padding:12px; }
  #order_review table tbody td::before { display:none; }
  #order_review table tbody td.product-thumb { display:none; }
  #order_review table tfoot th, #order_review table tfoot td { display:table-cell; padding:12px; }
  #order_review table tfoot td::before { display:none; }
  #order_review .checkout-section-title { padding:16px; }
  .woocommerce form.woocommerce-form-login,
  .woocommerce form.woocommerce-form-register,
  .woocommerce form.lost_reset_password { padding:16px; }
  .woocommerce .woocommerce-form-login__submit,
  .woocommerce .woocommerce-form-register__submit,
  .woocommerce .lost_reset_password button { width:100%; }
  .woocommerce .cart_totals { padding:20px; border-radius:20px; }
  .woocommerce .cart_totals .amount, .woocommerce .product-price, .woocommerce .product-subtotal { color:#111 !important; }
  .woocommerce .actions button { min-height:48px; }
  .rw-minicart-item { padding:16px; gap:12px; }
  .rw-minicart-thumb { width:48px; height:48px; }
  .rw-minicart-name { white-space:normal; line-height:1.4; }
  .rw-minicart-quantity-btn { width:44px; min-width:44px; height:44px; }
  .rw-minicart-footer { padding:20px 16px; }
  .site-footer .footer-col ul a { display:inline-flex; align-items:center; min-height:44px; }
  .site-footer .footer-col ul li { margin-bottom:0; }
}

/* The full cart uses the same accessible up/down control as the product. */
.woocommerce-cart form.woocommerce-cart-form .quantity { display:inline-flex; align-items:stretch; width:max-content; border:1px solid var(--rw-rule); border-radius:12px; overflow:hidden; }
.woocommerce-cart form.woocommerce-cart-form .quantity input.qty { width:64px; border:0; border-radius:0; appearance:textfield; }
.woocommerce-cart form.woocommerce-cart-form .quantity input.qty::-webkit-inner-spin-button,
.woocommerce-cart form.woocommerce-cart-form .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.woocommerce-cart .rw-quantity-step { color:#555550; }
.woocommerce-cart .rw-quantity-step:disabled { color:#b7b7b0; }
@media (max-width:768px) {
  .woocommerce-cart form.woocommerce-cart-form .quantity { min-height:88px; }
  .woocommerce-cart form.woocommerce-cart-form .quantity input.qty { height:88px; padding:12px 8px; }
  .woocommerce-cart .rw-quantity-stepper { width:44px; }
  .woocommerce-cart .rw-quantity-step { min-width:44px; min-height:44px; }
}

/* Preserve the approved October 18 photograph when applying the mobile work. */
.rw-one .rw-one-hero-image.rw-one-hero-image--photo {
  display:block; width:min(88%,920px); height:auto; aspect-ratio:1672 / 941;
  margin:24px auto 20px; overflow:hidden; border-radius:20px; background:#343434;
}
.rw-one .rw-one-hero-image.rw-one-hero-image--photo img {
  display:block; width:100%; height:100%; max-width:100%; aspect-ratio:auto;
  object-fit:cover; object-position:50% 50%; border-radius:0;
}

/* The image must not consume 100% of the figure plus a caption outside it. */
.rw-one .rw-one-storygrid { align-items:start; }
.rw-one .rw-one-storygrid figure { display:flex; flex-direction:column; min-width:0; }
.rw-one .rw-one-storygrid figure img {
  display:block; width:100%; height:auto; min-height:0; aspect-ratio:1 / 1.08;
  object-fit:cover;
}
.rw-one .rw-one-storygrid figcaption {
  position:static; margin:12px 4px 0; font-size:11px; line-height:1.55;
  overflow-wrap:break-word;
}
body.rw-robot-landing .rw-one h2 { line-height:1.13; letter-spacing:-.025em; }
.rw-one .rw-one-storygrid > div { min-width:0; }

/* Visible, 48px arrow buttons on the light theme, independent of OS spinners.
 * Use a single row instead of an 88px-high stacked spinner on phones. */
.single-product-page form.cart .quantity,
.woocommerce-cart form.woocommerce-cart-form .quantity {
  display:inline-grid; grid-template-columns:48px 64px 48px; grid-template-rows:48px;
  align-items:stretch; width:max-content; min-height:48px; height:auto;
  background:#fff !important; border:1px solid #d8d8d1; border-radius:12px;
  box-shadow:none; overflow:hidden;
}
.single-product-page form.cart .quantity input.qty,
.woocommerce-cart form.woocommerce-cart-form .quantity input.qty {
  grid-column:2; grid-row:1; width:64px; min-width:0; height:48px;
  padding:8px; border:0; color:#111 !important; font-size:16px; text-align:center;
}
.single-product-page .rw-quantity-stepper,
.woocommerce-cart .rw-quantity-stepper { display:contents; }
.quantity .screen-reader-text {
  position:absolute !important; width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important; overflow:hidden !important;
  clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0 !important;
}
.single-product-page .rw-quantity-step,
.woocommerce-cart .rw-quantity-step {
  grid-row:1; width:48px; min-width:48px; min-height:48px; height:48px;
  padding:0; border:0; background:#f6f6f3; color:#111;
}
.single-product-page .rw-quantity-step-up,
.woocommerce-cart .rw-quantity-step-up { grid-column:3; border-left:1px solid #e4e4df; }
.single-product-page .rw-quantity-step-down,
.woocommerce-cart .rw-quantity-step-down { grid-column:1; border-right:1px solid #e4e4df; }
.single-product-page .rw-quantity-step svg,
.woocommerce-cart .rw-quantity-step svg { width:16px; height:16px; stroke:currentColor; stroke-width:2; }
.single-product-page .rw-quantity-step:hover,
.woocommerce-cart .rw-quantity-step:hover { color:#111; background:#e8e8e1; }
.single-product-page .rw-quantity-step:disabled,
.woocommerce-cart .rw-quantity-step:disabled { color:#76766f; background:#f6f6f3; opacity:.65; }
.single-product-page .rw-quantity-step:focus-visible,
.woocommerce-cart .rw-quantity-step:focus-visible { outline:2px solid #111; outline-offset:-4px; }
.single-product-page #wc-stripe-express-checkout-element { max-width:100%; min-height:0; margin-top:16px !important; }
.single-product-page #wc-stripe-express-checkout-element::before { content:none !important; }
.single-product-page #wc-stripe-express-checkout-element > div { min-height:0; }
.single-product-page #wc-stripe-express-checkout-element iframe { max-width:100%; }

@media(max-width:700px) {
  .rw-one .rw-one-hero-image.rw-one-hero-image--photo { width:100%; aspect-ratio:4 / 3; margin:20px 0 22px; border-radius:16px; }
  body.rw-robot-landing .rw-one h2 { font-size:clamp(32px,9.4vw,42px); line-height:1.16; }
  .rw-one .rw-one-storygrid > div { padding:28px 18px 26px; }
  #site-nav .nav-inner { min-height:64px; }
  #site-nav .nav-logo-image { width:118px !important; height:48px !important; flex-basis:118px !important; }
  #site-nav .nav-links.open { width:min(280px,calc(100vw - 40px)); border-radius:16px; }
  #site-nav .nav-links.open a { padding:12px 14px; font-size:15px; }
  .single-product-page form.cart { gap:14px; }
  .single-product-page .product-details .product-description { overflow-wrap:break-word; }
}
