/* Targeted additions for the custom RR-3D theme. */
body.woocommerce .site-main,
body.woocommerce-page .site-main {
  overflow: visible;
  overflow-x: clip;
}

.home .rr-hero h1 {
  font-size: clamp(2.1rem, 5.2vw, 4.25rem);
  line-height: 1.04;
  max-width: 18ch;
  text-wrap: balance;
}

.rr-nav .rr3d-cart-link,
.rr3d-cart-link {
  align-items: center;
  background: #083b78;
  border: 1px solid #39d7ee;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-weight: 700;
  gap: .4rem;
  justify-content: center;
  line-height: 1.2;
  min-height: 44px;
  padding: .55rem .8rem;
  text-decoration: none;
}

.rr3d-cart-link__icon,
.rr3d-cart-link__icon svg {
  display: block;
  height: 1.2rem;
  width: 1.2rem;
}

.rr3d-cart-link__icon svg {
  fill: currentColor;
  overflow: visible;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.rr3d-cart-link__icon circle {
  stroke: none;
}

.rr3d-cart-link__icon path {
  fill: none;
}

.rr3d-cart-link:hover,
.rr3d-cart-link:focus-visible {
  background: #052c5b;
  border-color: #82ecfb;
  color: #fff;
}

.rr3d-cart-link {
  bottom: 1rem;
  box-shadow: 0 8px 26px rgba(0, 0, 0, .32);
  position: fixed;
  right: 1rem;
  z-index: 9999;
}

.rr-nav .rr3d-cart-link {
  bottom: auto;
  box-shadow: none;
  position: static;
  right: auto;
}

.rr3d-cart-link__count {
  align-items: center;
  background: #fff;
  border-radius: 999px;
  color: #052c5b;
  display: inline-flex;
  font-size: .78rem;
  justify-content: center;
  min-height: 1.4rem;
  min-width: 1.4rem;
  padding: 0 .25rem;
}

.rr-nav-cta,
.rr-button-primary,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button:not(.is-link) {
  background: #0758c8 !important;
  color: #fff !important;
}

.rr-nav-cta:hover,
.rr-nav-cta:focus-visible,
.rr-button-primary:hover,
.rr-button-primary:focus-visible,
.woocommerce a.button:hover,
.woocommerce a.button:focus-visible,
.woocommerce button.button:hover,
.woocommerce button.button:focus-visible,
.woocommerce input.button:hover,
.woocommerce input.button:focus-visible,
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible {
  background: #043f91 !important;
  color: #fff !important;
}

.woocommerce ul.products li.product,
.wc-block-grid__product {
  display: flex;
  flex-direction: column;
}

.woocommerce ul.products li.product .button,
.wc-block-grid__product .wc-block-grid__product-add-to-cart {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  margin-top: auto !important;
  min-height: 46px;
  text-align: center;
  width: 100%;
}

.woocommerce ul.products li.product .button:focus-visible,
.wc-block-grid__product .wc-block-grid__product-add-to-cart:focus-visible {
  outline: 3px solid #39d7ee;
  outline-offset: -3px;
}

.woocommerce ul.products li.product a img.attachment-woocommerce_thumbnail,
.wc-block-grid__product-image img {
  aspect-ratio: 1 / 1;
  background: #fff;
  box-sizing: border-box;
  height: auto;
  object-fit: contain;
  padding: .5rem;
  width: 100%;
}

.rr3d-made-to-order-badge {
  align-items: center;
  align-self: flex-start;
  background: rgba(57, 215, 238, .11);
  border: 1px solid rgba(57, 215, 238, .5);
  border-radius: 999px;
  color: #c7f8ff;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 700;
  gap: .4rem;
  line-height: 1.2;
  margin: .45rem 0 .65rem;
  max-width: 100%;
  padding: .32rem .58rem;
  width: max-content;
}

.rr3d-made-to-order-badge::before {
  background: #39d7ee;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(57, 215, 238, .18);
  content: '';
  flex: 0 0 auto;
  height: .45rem;
  width: .45rem;
}

.rr3d-personalization {
  border: 1px solid rgba(57, 215, 238, .52);
  border-radius: 14px;
  margin: 1rem 0;
  padding: 1rem;
}

.rr3d-personalization legend {
  color: #fff;
  font-weight: 700;
  padding: 0 .35rem;
}

.rr3d-personalization label,
.rr3d-personalization small {
  display: block;
}

.rr3d-personalization input[type='text'] {
  background: #fff;
  border: 2px solid #8bb9e9;
  border-radius: 8px;
  box-sizing: border-box;
  color: #111827;
  font-size: 1rem;
  margin: .35rem 0;
  min-height: 44px;
  padding: .65rem .75rem;
  width: 100%;
}

.rr3d-personalization input[type='text']:focus-visible {
  border-color: #39d7ee;
  outline: 3px solid rgba(57, 215, 238, .3);
}

/* Woo Blocks renders the order summary on #eee. The theme's inherited light
   text was nearly invisible there, so keep the panel light and use explicit
   dark foregrounds for every inheriting summary value. */
body.woocommerce-checkout .wc-block-components-order-summary {
  background-color: #eeeeee;
  color: #111827 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary__content,
body.woocommerce-checkout .wc-block-components-order-summary-item,
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-formatted-money-amount {
  color: #111827 !important;
}

body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata p,
body.woocommerce-checkout .wc-block-components-product-metadata *,
body.woocommerce-checkout .wc-block-components-product-details,
body.woocommerce-checkout .wc-block-components-product-details * {
  color: #334155 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description a,
body.woocommerce-checkout .wc-block-components-order-summary-item__description a:visited {
  color: #0b3e75 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  background: #fff !important;
  border-color: #94a3b8 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity,
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity * {
  color: #111827 !important;
}

/* Woo Blocks places floating field labels inside white controls. Keep those
   labels dark without changing the light text used on the checkout canvas. */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-blocks-components-select__label {
  color: #334155 !important;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-blocks-components-select__select {
  color: #111827 !important;
}

/* Monetary values outside the light product panel sit on the dark checkout
   canvas. Scope them explicitly so totals and the shipping price stay legible. */
body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-formatted-money-amount,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title-price,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item-tax-value {
  color: #f8fbff !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-gzd-additional-info.small-business-info {
  color: #cbd5e1 !important;
}

/* PayPal renders this optional pay-later advert in a cross-origin iframe with
   fixed black text. It cannot inherit the dark theme and is not a payment
   method, so suppress it while keeping both standard PayPal buttons active. */
body.woocommerce-checkout .wc-block-checkout__sidebar .ppcp-messages {
  display: none !important;
}

/* The visible checkbox remains compact, while its complete label row provides
   the 44px mobile touch target used throughout the shop. */
body.woocommerce-checkout .wc-block-components-checkbox label {
  align-items: center;
  min-height: 44px;
}

@media (max-width: 1023px) {
  .rr-header__inner {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  .rr-header__inner > .rr3d-cart-link {
    bottom: auto;
    box-shadow: none;
    justify-self: end;
    min-width: 44px;
    padding: .55rem .6rem;
    position: static;
    right: auto;
  }

  .rr-header__inner > .rr3d-cart-link .rr3d-cart-link__label {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
}

/* 1.0.11: Website und Shop sind zwei dauerhaft sichtbare, ausdrücklich
   benannte Bereiche. Konto, Kontakt und Inhaltsseiten bleiben davon als
   Sekundärnavigation getrennt. */
.rr-nav {
  align-items: center;
  gap: 14px;
}

.rr3d-destinations {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(max-content, 1fr);
  flex: 0 0 auto;
  gap: 3px;
  padding: 3px;
  border: 1px solid #405873;
  border-radius: 14px;
  background: #0b1726;
}

.rr-nav .rr3d-destination,
.rr-nav .rr3d-menu-links a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #c6d2df;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.2;
  padding: 9px 13px;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}

.rr-nav .rr3d-destination:hover,
.rr-nav .rr3d-destination:focus-visible,
.rr-nav .rr3d-menu-links a:hover,
.rr-nav .rr3d-menu-links a:focus-visible {
  border-color: #547493;
  background: #14253a;
  color: #fff;
}

.rr-nav .rr3d-destination[aria-current="location"] {
  border-color: #63ddff !important;
  background: #0758c8 !important;
  color: #fff !important;
  box-shadow: inset 0 -2px 0 #63ddff;
}

.rr-nav .rr3d-menu-links a[aria-current="page"] {
  border-color: #63ddff !important;
  background: #0758c8 !important;
  color: #fff !important;
  box-shadow: inset 0 -2px 0 #63ddff;
}

.rr-nav .rr3d-destination.rr3d-area-change::after {
  content: "→";
  margin-left: 6px;
  color: #82ecfb;
  font-size: .9em;
}

.rr-nav .rr3d-menu-links .rr3d-area-change:not(.rr-nav-cta)::after {
  content: "↗";
  margin-left: .25rem;
  color: #82ecfb;
  font-size: .8em;
}

.rr3d-menu-links,
.rr3d-nav-section {
  display: flex;
  align-items: center;
  gap: 4px;
}

.rr3d-menu-links {
  min-width: 0;
  padding-left: 14px;
  border-left: 1px solid #405873;
}

.rr3d-menu-heading,
.rr3d-nav-section__label {
  display: none;
}

.rr-nav .rr3d-menu-links .rr-nav-cta {
  margin-left: 6px;
  border-color: #3c94ff;
  background: #101d2f !important;
  color: #fff !important;
  box-shadow: none;
}

.rr-nav .rr3d-menu-links .rr-nav-cta:hover,
.rr-nav .rr3d-menu-links .rr-nav-cta:focus-visible {
  border-color: #63ddff;
  background: #17314f !important;
}

@media (max-width: 1240px) {
  body.rr-navigation-open {
    overflow: hidden;
    overscroll-behavior: none;
  }

  .rr-header__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px 10px;
    padding: 8px 0 10px;
  }

  .rr-brand {
    justify-self: start;
  }

  .rr-nav-toggle {
    display: inline-flex;
    justify-self: end;
    min-width: 44px;
    min-height: 44px;
    padding-inline: 11px;
  }

  .rr-nav-toggle__label {
    font-size: 12px;
    white-space: nowrap;
  }

  .rr-nav {
    position: static;
    grid-column: 1 / -1;
    display: block;
    width: 100%;
    min-width: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
  }

  .rr-nav[hidden] {
    display: block !important;
  }

  .rr3d-destinations {
    grid-auto-flow: initial;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .rr-nav .rr3d-destination {
    width: 100%;
    min-width: 0;
  }

  .rr3d-menu-links {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    z-index: 120;
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 10px;
    max-height: calc(100dvh - 128px);
    margin: 0;
    padding: 16px;
    border: 1px solid #405873;
    border-top-color: #63ddff;
    border-radius: 0 0 18px 18px;
    background: #071321;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .42);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .rr3d-menu-links[hidden] {
    display: none !important;
  }

  .rr3d-menu-heading,
  .rr3d-nav-section__label {
    display: block;
    color: #91a9c2;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .rr3d-menu-heading {
    padding-bottom: 8px;
    border-bottom: 1px solid #314861;
    color: #dce7f5;
    font-size: 12px;
  }

  .rr3d-nav-section {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 5px;
  }

  .rr3d-nav-section + .rr3d-nav-section {
    padding-top: 10px;
    border-top: 1px solid #314861;
  }

  .rr-nav .rr3d-menu-links a {
    justify-content: flex-start;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 10px 13px;
    text-align: left;
    white-space: normal;
  }

  .rr-nav .rr3d-menu-links .rr-nav-cta {
    justify-content: center;
    margin: 5px 0 0;
    text-align: center;
  }

  .rr-header__inner > .rr3d-cart-link {
    bottom: auto;
    box-shadow: none;
    justify-self: end;
    min-width: 44px;
    padding: .55rem .6rem;
    position: static;
    right: auto;
  }

  .rr-header__inner > .rr3d-cart-link .rr3d-cart-link__label {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
}

@media (max-width: 620px) {
  .rr-header__inner {
    gap: 7px;
  }

  .rr-nav-toggle {
    padding-inline: 9px;
  }

  .rr-nav-toggle__label {
    font-size: 11px;
  }

  .rr-nav .rr3d-destination {
    padding-inline: 8px;
    font-size: 13px;
  }

  .rr3d-menu-links {
    max-height: calc(100dvh - 118px);
    padding: 14px;
  }
}

@media (max-width: 380px) {
  .rr-nav-toggle__label {
    position: static;
    clip: auto;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    white-space: nowrap;
    font-size: 0;
  }

  .rr-nav-toggle__label::after {
    content: "Seiten";
    font-size: 11px;
  }
}

/* 1.0.8: Keep the primary purchase controls at the same reliable touch-target
   size on desktop and mobile. The earlier rule only covered narrow screens. */
body.single-product .summary form.cart .quantity,
body.single-product .summary form.cart input.qty,
body.single-product .summary form.cart button.single_add_to_cart_button {
  box-sizing: border-box;
  min-height: 44px !important;
}

body.single-product .summary form.cart .quantity,
body.single-product .summary form.cart button.single_add_to_cart_button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}

/* Woo Blocks currently computes the final checkout action at 43px. Pin the
   action to the shop-wide 44px minimum without changing PayPal behaviour. */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  box-sizing: border-box;
  min-height: 44px !important;
}

/* 1.0.10: Woo Blocks ships the cart stepper and remove action below the
   shop-wide 44px touch-target minimum. Scope the correction to the cart so
   product quantity and checkout payment behaviour remain unchanged. */
body.woocommerce-cart .wc-block-components-quantity-selector {
  box-sizing: border-box;
  display: inline-flex;
  min-height: 44px !important;
  min-width: 134px;
  width: auto !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button,
body.woocommerce-cart .wc-block-components-quantity-selector__input {
  box-sizing: border-box;
  flex: 0 0 44px;
  height: 44px !important;
  min-height: 44px !important;
  min-width: 44px !important;
  width: 44px !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}

body.woocommerce-cart .wc-block-cart-item__remove-link {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex !important;
  justify-content: center;
  min-height: 44px !important;
  min-width: 44px !important;
}

@media (max-width: 620px) {
  .woocommerce ul.products li.product {
    padding: 14px;
  }

  .rr3d-personalization {
    padding: .75rem;
  }

  body.single-product .summary form.cart {
    align-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product,
  .wc-block-grid__product {
    transition: none;
  }

  .woocommerce ul.products li.product:hover,
  .wc-block-grid__product:hover {
    transform: none;
  }
}

/* 1.0.7: Orientierung und einheitliche Oberflächen. */
.rr-nav > a[aria-current="page"] {
  background: #0758c8 !important;
  border-color: #63ddff !important;
  color: #fff !important;
  box-shadow: inset 0 -2px 0 #63ddff;
}

.rr-nav > .rr3d-area-change:not(.rr-nav-cta)::after {
  content: "↗";
  margin-left: .22rem;
  color: #82ecfb;
  font-size: .8em;
}

.rr3d-location {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
  margin: 0 0 1.4rem !important;
  color: #aebbd0 !important;
  font-size: .88rem;
}

.rr3d-location a,
.rr3d-location a:visited {
  color: #69c6ff !important;
  font-weight: 700;
}

.rr3d-location [aria-current="page"] {
  color: #dce7f5;
}

/* Checkout und Konto verwenden dieselben dunklen Flächen wie Katalog,
   Produktseite und Warenkorb. Technische Produktbilder bleiben auf einer
   klar begrenzten weißen Bildfläche, damit schwarze Bauteile erkennbar sind. */
body.woocommerce-checkout,
body.woocommerce-account {
  --rr3d-control-bg: #0b1626;
  --rr3d-control-text: #f5f8fd;
  --rr3d-control-muted: #aebbd0;
  --rr3d-control-line: #5b718d;
  --rr3d-summary-bg: #101d2f;
  --rr3d-summary-text: #f5f8fd;
  color-scheme: dark;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout textarea,
body.woocommerce-account .woocommerce-form-login input[type="text"],
body.woocommerce-account .woocommerce-form-login input[type="email"],
body.woocommerce-account .woocommerce-form-login input[type="password"],
body.woocommerce-account .woocommerce-form-register input[type="text"],
body.woocommerce-account .woocommerce-form-register input[type="email"],
body.woocommerce-account .woocommerce-form-register input[type="password"] {
  border-color: var(--rr3d-control-line) !important;
  background: var(--rr3d-control-bg) !important;
  color: var(--rr3d-control-text) !important;
  caret-color: #63ddff;
}

body.woocommerce-checkout .wc-block-components-text-input input::placeholder,
body.woocommerce-checkout textarea::placeholder,
body.woocommerce-account .woocommerce-form-login input::placeholder,
body.woocommerce-account .woocommerce-form-register input::placeholder {
  color: var(--rr3d-control-muted) !important;
  opacity: 1;
}

body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-components-checkout-step__description,
body.woocommerce-checkout .wc-block-components-checkbox label,
body.woocommerce-checkout .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-content,
body.woocommerce-account .woocommerce-form-login label,
body.woocommerce-account .woocommerce-form-register label {
  color: var(--rr3d-control-muted) !important;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-blocks-components-select__select:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-account .woocommerce-form-login input:focus,
body.woocommerce-account .woocommerce-form-register input:focus {
  border-color: #63ddff !important;
  outline: 3px solid rgba(99, 221, 255, .22) !important;
  outline-offset: 1px;
}

body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-components-order-summary__content,
body.woocommerce-checkout .wc-block-components-order-summary-item,
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-content {
  border-color: rgba(182, 204, 235, .22) !important;
  background: var(--rr3d-summary-bg) !important;
  color: var(--rr3d-summary-text) !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description a,
body.woocommerce-checkout .wc-block-components-order-summary-item__description a:visited,
body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata p,
body.woocommerce-checkout .wc-block-components-product-metadata *,
body.woocommerce-checkout .wc-block-components-product-details,
body.woocommerce-checkout .wc-block-components-product-details * {
  color: #c8d6e8 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image,
body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 6px;
  background: #fff !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  border-color: #7890ad !important;
  background: #f8fbff !important;
  color: #111827 !important;
}

body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-formatted-money-amount,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title-price,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item-tax-value,
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  color: #f8fbff !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-gzd-additional-info.small-business-info {
  color: #b9c8dc !important;
}

body.woocommerce-checkout input:-webkit-autofill,
body.woocommerce-account input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--rr3d-control-bg) inset !important;
  -webkit-text-fill-color: var(--rr3d-control-text) !important;
  caret-color: var(--rr3d-control-text) !important;
}

/* Classic WooCommerce account forms otherwise inherit narrow inline inputs
   and sub-44px actions from the base theme. Make login and future registration
   predictable, readable and keyboard/touch friendly on every breakpoint. */
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register {
  box-sizing: border-box;
  max-width: 720px;
  width: 100%;
}

body.woocommerce-account form.woocommerce-form-login .woocommerce-form-row,
body.woocommerce-account form.woocommerce-form-register .woocommerce-form-row {
  box-sizing: border-box;
  display: flex;
  float: none;
  flex-direction: column;
  gap: .4rem;
  width: 100%;
}

body.woocommerce-account form.woocommerce-form-login .woocommerce-form-row > label,
body.woocommerce-account form.woocommerce-form-register .woocommerce-form-row > label,
body.woocommerce-account form.woocommerce-form-login .password-input,
body.woocommerce-account form.woocommerce-form-register .password-input {
  box-sizing: border-box;
  display: block;
  position: relative;
  width: 100%;
}

body.woocommerce-account form.woocommerce-form-login input[type="text"],
body.woocommerce-account form.woocommerce-form-login input[type="email"],
body.woocommerce-account form.woocommerce-form-login input[type="password"],
body.woocommerce-account form.woocommerce-form-register input[type="text"],
body.woocommerce-account form.woocommerce-form-register input[type="email"],
body.woocommerce-account form.woocommerce-form-register input[type="password"] {
  box-sizing: border-box;
  min-height: 44px;
  width: 100% !important;
}

body.woocommerce-account form.woocommerce-form-login .password-input input,
body.woocommerce-account form.woocommerce-form-register .password-input input {
  padding-right: 52px;
}

body.woocommerce-account form.woocommerce-form-login .show-password-input,
body.woocommerce-account form.woocommerce-form-register .show-password-input {
  align-items: center;
  background: transparent;
  border: 0;
  bottom: 0;
  box-sizing: border-box;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 44px;
}

body.woocommerce-account form.woocommerce-form-login > .form-row,
body.woocommerce-account form.woocommerce-form-register > .form-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
}

body.woocommerce-account .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form-register__rememberme,
body.woocommerce-account .woocommerce-LostPassword a,
body.woocommerce-account form.woocommerce-form-login button[type="submit"],
body.woocommerce-account form.woocommerce-form-register button[type="submit"] {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  min-height: 44px;
}

/* Germanized's online-withdrawal form inherits inline fields and floating
   first/last rows from the base theme. That caused overlaps and hid the
   required repeated e-mail input. Use an explicit responsive form grid. */
body.woocommerce-page form.woocommerce-form-order-withdrawal-request {
  box-sizing: border-box;
  width: 100%;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request .eu-owb-form-fields {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 720px;
  width: 100%;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request .form-row {
  box-sizing: border-box;
  display: flex;
  float: none;
  flex-direction: column;
  gap: .4rem;
  margin: 0;
  width: 100%;
}

/* Germanized visually hides the repeated e-mail row itself with an absolute
   1 x 1 pixel clipping pattern. Restoring only its input leaves the label
   absent and the input overlapping another row, so normalize the container. */
body.woocommerce-page form.woocommerce-form-order-withdrawal-request .form-row-email-repeat {
  clip: auto !important;
  clip-path: none !important;
  display: flex !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  position: static !important;
  white-space: normal !important;
  width: 100% !important;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request .form-row-full {
  grid-column: 1 / -1;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request .woocommerce-input-wrapper,
body.woocommerce-page form.woocommerce-form-order-withdrawal-request input.input-text {
  box-sizing: border-box;
  display: block;
  min-height: 44px;
  visibility: visible !important;
  width: 100% !important;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request .form-row-submit {
  margin-top: 1rem;
}

body.woocommerce-page form.woocommerce-form-order-withdrawal-request button[type="submit"] {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
}

@media (max-width: 620px) {
  body.woocommerce-page form.woocommerce-form-order-withdrawal-request .eu-owb-form-fields {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1023px) {
  .rr-header__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 9px 12px;
    padding: 9px 0;
  }

  .rr-nav-toggle {
    display: inline-flex;
    justify-self: end;
  }

  .rr-nav {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    max-height: calc(100dvh - 88px);
    margin: 0;
    padding: 8px 0 3px;
    gap: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    border-top: 1px solid rgba(182, 204, 235, .18);
  }

  .rr-nav[hidden] {
    display: none !important;
  }

  .rr-nav > a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: .65rem .85rem;
    white-space: normal;
    border: 1px solid transparent;
  }
}
