/* R&R single product: DTC layout (10 Rebuild Mockups/02 product-sunscreen-dtc.html) applied to WooCommerce block markup. */
.rr-pdp {
  --ink:#1f2a33; --ink-2:#4a5560; --muted:#7a858f; --line:#e3e7eb; --soft:#f5f7f9; --soft-2:#eef2f5;
  --brand:#2d5c88; --brand-dark:#1f4566; --brand-tint:#e8eff6; --sun:#f4b324; --sun-tint:#fff6df; --ok:#2f7d4f;
  --radius:12px; --radius-sm:8px;
  color: var(--ink); font-size: 15px; line-height: 1.6;
}
.rr-pdp *, .rr-pdp *::before, .rr-pdp *::after { box-sizing: border-box; }
.rr-pdp h1, .rr-pdp h2, .rr-pdp h3 { color: var(--ink); line-height: 1.2; margin: 0; }
.rr-pdp a { color: var(--brand); }
.rr-pdp .rr-wrap { max-width: 1310px; margin: 0 auto; padding: 0 50px; }
.rr-pdp > .rr-wrap { padding-top: 18px; }
.rr-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* breadcrumbs */
.rr-crumbs, .rr-crumbs a { font-size: 12px; color: var(--muted) !important; }
.rr-crumbs { margin: 0 0 18px; }

/* hero */
.rr-hero { gap: 56px !important; align-items: flex-start !important; margin: 0 0 56px !important; }
.rr-gallery { position: sticky; top: 20px; min-width: 0; }
.rr-buy { min-width: 0; }
.rr-gallery .woocommerce-product-gallery, .rr-gallery .flex-viewport { overflow: hidden; }
.rr-gallery .woocommerce-product-gallery { margin: 0 !important; width: 100% !important; float: none !important; opacity: 1 !important; }
.rr-gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.rr-gallery .woocommerce-product-gallery__image:first-child, .rr-gallery .flex-viewport {
  border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff;
}
.rr-gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.rr-gallery .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; margin: 10px 0 0 !important; padding: 0; list-style: none; }
.rr-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.rr-gallery .flex-control-thumbs img { border: 1px solid var(--line); border-radius: var(--radius-sm); opacity: 1 !important; aspect-ratio: 1/1; object-fit: cover; cursor: pointer; }
.rr-gallery .flex-control-thumbs img.flex-active { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.rr-gallery .woocommerce-product-gallery__trigger { z-index: 5; }

.rr-buy > * { margin-block-start: 0 !important; }
.rr-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin: 0 0 10px !important; }
.rr-eyebrow a { color: var(--brand) !important; text-decoration: none; }
.rr-eyebrow::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--sun); margin-right: 8px; vertical-align: 1px; }
.rr-title { font-size: 36px !important; font-weight: 700 !important; letter-spacing: -.3px; margin: 0 0 8px !important; }
.rr-rating { margin: 0 0 4px !important; font-size: 13px; color: var(--ink-2); }
.rr-rating .star-rating { color: var(--sun); }
.rr-price, .rr-price .wc-block-components-product-price { font-size: 30px !important; font-weight: 800; color: var(--ink); margin: 12px 0 2px !important; }
.rr-price del { font-size: 16px; font-weight: 400; color: var(--muted); }
.rr-price ins { text-decoration: none; }
.rr-price-note { font-size: 12.5px; color: var(--muted); margin: 0 0 14px; }
.rr-lede { font-size: 16px; color: var(--ink-2); margin: 10px 0 18px !important; }
.rr-lede p { margin: 0; }

/* add to cart form */
.rr-atc form.cart { margin: 0 !important; }
.rr-atc .variations_form .single_variation_wrap .woocommerce-variation-price > .price,
.rr-atc .reset_variations { display: none !important; }
/* Subscribe & Save purchase options (WooCommerce Subscriptions) */
.rr-price .wcsatt-options-wrapper { display: none !important; }
.rr-atc .wcsatt-options-wrapper { font: 400 14px/1.4 'Open Sans', sans-serif; color: var(--ink); margin: 0 0 14px; }
.rr-atc .wcsatt-options-prompt-radios { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rr-atc .wcsatt-options-prompt-label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 11px 14px; cursor: pointer; font-weight: 600; }
.rr-atc .wcsatt-options-prompt-label:has(input:checked) { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); background: var(--brand-tint); }
.rr-atc .wcsatt-options-prompt-label .price, .rr-atc .wcsatt-options-prompt-label .amount { font: inherit !important; font-weight: 700 !important; }
.rr-atc .wcsatt-options-prompt-label del, .rr-atc .wcsatt-options-prompt-label del .amount { font-weight: 400 !important; color: var(--muted); }
.rr-atc .wcsatt-options-product-wrapper { margin: 8px 0 0; font-size: 13px; color: var(--ink-2); }
.rr-atc .wcsatt-options-product-wrapper select { font: inherit; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.rr-atc .woocommerce-variation-availability p { font-size: 13px; margin: 6px 0 10px; color: var(--ok); }
.rr-atc .woocommerce-variation-availability .out-of-stock { color: #b3261e; }
.rr-sizes { margin: 0 0 18px; }
.rr-step-label { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--ink); margin: 0 0 4px; }
.rr-sizes__group { font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--muted); margin: 12px 0 8px; }
.rr-sizes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rr-size { text-align: left; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; padding: 10px 12px; cursor: pointer; font: inherit; color: var(--ink); }
.rr-size b { display: block; font-size: 14px; overflow-wrap: anywhere; }
.rr-size span { display: block; font-size: 12.5px; color: var(--ink-2); }
.rr-size:hover { border-color: #b9c4cf; }
.rr-size.is-active { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); background: var(--brand-tint); }
.rr-size[disabled] { opacity: .45; cursor: not-allowed; background: var(--soft); }
.rr-size[disabled] span::after { content: ' · out of stock'; }

.rr-atc .woocommerce-variation-add-to-cart, .rr-atc form.cart:not(.variations_form) { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 10px; align-items: stretch; }
.rr-atc .quantity { display: flex !important; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; height: 54px; margin: 0 !important; }
.rr-atc .quantity .rr-step { width: 40px; border: 0; background: var(--soft); font-size: 20px; cursor: pointer; color: var(--ink); padding: 0; }
.rr-atc .quantity input.qty { width: 100% !important; min-width: 0; border: 0 !important; text-align: center; font: 700 16px 'Open Sans', sans-serif; -moz-appearance: textfield; background: #fff; }
.rr-atc .quantity input.qty::-webkit-outer-spin-button, .rr-atc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rr-atc .single_add_to_cart_button { height: 54px; border-radius: var(--radius-sm) !important; background: var(--brand) !important; color: #fff !important; font: 700 15px 'Open Sans', sans-serif !important; letter-spacing: .3px; border: 0 !important; width: 100%; margin: 0 !important; }
.rr-atc .single_add_to_cart_button:hover { background: var(--brand-dark) !important; }
.rr-atc .single_add_to_cart_button.disabled { opacity: .55; }

.rr-btn { display: inline-flex; justify-content: center; align-items: center; height: 46px; border-radius: var(--radius-sm); font: 700 13.5px 'Open Sans', sans-serif; text-decoration: none !important; }
.rr-btn--ghost { background: #fff; color: var(--brand) !important; border: 1px solid var(--brand); }
.rr-btn--ghost:hover { background: var(--brand-tint); }
.rr-subctas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0 0; }

.rr-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 22px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); list-style: none; }
.rr-trust li { display: flex; gap: 10px; align-items: center; font-size: 12.5px; line-height: 1.35; color: var(--ink-2); }
.rr-trust svg { flex: 0 0 28px; color: var(--brand); }
.rr-trust b { display: block; color: var(--ink); font-size: 13px; }
.rr-sku { font-size: 12px; color: var(--muted); margin-top: 14px !important; }

/* plugin slots (filled by rr-product.js when the plugin output exists) */
.rr-slot[data-rr-slot="tiers"] { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; margin: 0 0 18px; }
.rr-slot__head { display: flex; justify-content: space-between; padding: 12px 14px; background: var(--soft); font-size: 13px; font-weight: 700; }
.rr-slot__head small { font-weight: 500; color: var(--muted); }
.rr-slot table { width: 100%; border-collapse: collapse; margin: 0 !important; font-size: 13px; }
.rr-slot th, .rr-slot td { padding: 9px 12px !important; border: 0 !important; border-top: 1px solid var(--line) !important; text-align: left; }
.rr-slot[data-rr-slot="fbt"] { background: var(--soft); padding: 56px 0; }
.rr-slot[data-rr-slot="fbt"] .yith-wfbt-section { max-width: 1210px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }

/* bands */
.rr-band { padding: 64px 0; margin: 0 !important; }
.rr-band--soft { background: var(--soft); }
.rr-kicker { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--brand); margin: 0 0 8px; }
.rr-band h2 { font-size: 28px; font-weight: 700; margin: 0 0 8px; }
.rr-intro { color: var(--ink-2); max-width: 720px; margin: 0 0 30px; }

/* product details (tabs/accordion from WooCommerce) */
.rr-details .woocommerce-tabs ul.tabs, .rr-details .wc-tabs { display: flex; gap: 6px; padding: 0 !important; margin: 10px 0 18px !important; border: 0 !important; list-style: none; }
.rr-details .wc-tabs li { border: 1px solid var(--line) !important; border-radius: 999px !important; background: #fff !important; margin: 0 !important; padding: 0 !important; }
.rr-details .wc-tabs li::before, .rr-details .wc-tabs li::after { display: none !important; }
.rr-details .wc-tabs li a { display: block; padding: 8px 16px !important; font-weight: 700; font-size: 14px; color: var(--ink) !important; }
.rr-details .wc-tabs li.active { background: var(--brand) !important; border-color: var(--brand) !important; }
.rr-details .wc-tabs li.active a { color: #fff !important; }
.rr-details .woocommerce-Tabs-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; color: var(--ink-2); font-size: 14.5px; }
.rr-details .woocommerce-Tabs-panel h2 { font-size: 20px; margin: 0 0 12px; }

/* documents (WooCommerce Product Documents output) */
.rr-docs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rr-docs li { margin: 0; }
.rr-docs a { display: flex; gap: 12px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px; color: var(--ink) !important; font-weight: 700; font-size: 13.5px; text-decoration: none !important; }
.rr-docs a::before { content: 'PDF'; flex: 0 0 38px; height: 46px; border-radius: 6px; background: #fbe9e7; color: #b3261e; font-size: 10px; font-weight: 800; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 6px; }
.rr-docs a:hover { border-color: var(--brand); }
.rr-docs h2, .rr-docs h3 { display: none; }

/* up-sells (WooCommerce loop markup) */
.rr-ups section.up-sells > h2 { font-size: 28px; margin: 0 0 24px; }
.rr-ups ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0 !important; padding: 0; list-style: none; }
.rr-ups ul.products::before, .rr-ups ul.products::after { display: none !important; }
.rr-ups ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; padding: 0 0 16px !important; text-align: left; }
.rr-ups li.product img { width: 100%; aspect-ratio: 1/1; object-fit: cover; margin: 0 0 12px !important; }
.rr-ups li.product .woocommerce-loop-product__title { font-size: 14.5px !important; padding: 0 16px !important; color: var(--ink); }
.rr-ups li.product .price { display: block; padding: 0 16px; font-size: 13.5px; color: var(--ink-2) !important; }
.rr-ups li.product .button { margin: 10px 16px 0 !important; background: none !important; color: var(--brand) !important; padding: 0 !important; font-weight: 700; font-size: 13px; }

/* sticky add-to-cart */
.rr-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 800; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 18px rgba(20, 40, 60, .08); transform: translateY(110%); transition: transform .25s ease-out; }
.rr-sticky.is-visible { transform: none; }
.rr-sticky .rr-wrap { display: flex; align-items: center; gap: 14px; height: 72px; }
.rr-sticky img { width: 46px; height: 46px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.rr-sticky .rr-s-name { flex: 1; min-width: 0; }
.rr-sticky .rr-s-name b { display: block; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-sticky .rr-s-name span { font-size: 12.5px; color: var(--ink-2); }
.rr-sticky button { height: 48px; padding: 0 26px; border: 0; border-radius: var(--radius-sm); background: var(--brand); color: #fff; font: 700 15px 'Open Sans', sans-serif; cursor: pointer; }

@media (max-width: 1024px) {
  .rr-docs ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rr-ups ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .rr-hero { flex-wrap: wrap !important; gap: 18px !important; }
  .rr-hero > .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 767px) {
  .rr-pdp { font-size: 14.5px; }
  .rr-pdp .rr-wrap { padding: 0 16px; }
  .rr-gallery { position: static; }
  .rr-gallery .flex-control-thumbs { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 56px; overflow-x: auto; }
  .rr-title { font-size: 26px !important; }
  .rr-sizes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rr-atc .woocommerce-variation-add-to-cart, .rr-atc form.cart:not(.variations_form) { grid-template-columns: 118px minmax(0, 1fr); }
  .rr-subctas { grid-template-columns: 1fr; }
  .rr-trust { grid-template-columns: 1fr; gap: 12px; }
  .rr-band { padding: 42px 0; }
  .rr-band h2 { font-size: 22px; }
  .rr-docs ul { grid-template-columns: 1fr; }
  .rr-ups ul.products { gap: 12px; }
  .rr-sticky .rr-wrap { height: 68px; gap: 10px; }
  .rr-sticky button { padding: 0 18px; }
  body.rr-has-sticky { padding-bottom: 68px; }
}

/* 0.1.3: nothing inside the product area may widen the page on phones */
.rr-pdp { overflow-x: clip; }
.rr-details table, .rr-pdp .woocommerce-Tabs-panel table { display: block; max-width: 100%; overflow-x: auto; }
.rr-details img, .rr-details iframe { max-width: 100%; height: auto; }
@media (max-width: 767px) {
  .rr-details .wc-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px !important; }
  .rr-details .wc-tabs li { flex: 0 0 auto; }
  .rr-details .wc-tabs li a { white-space: nowrap; padding: 8px 14px !important; font-size: 13px; }
  .rr-details .woocommerce-Tabs-panel { padding: 18px; }
}