/* 1R ReStart — product.css
 * Canonical order: foundations → layout/components → states/integrations → responsive.
 */


/* ==========================================================================
   TOKENS / FOUNDATIONS
   ========================================================================== */

body.single-product .r1-store-main{background:var(--r1-bg);}

body.single-product .r1-store-main>.r1-container{max-width:var(--r1-container);}

body.single-product .woocommerce-breadcrumb{margin-bottom:24px;}

body.single-product .woocommerce-product-gallery__wrapper{margin:0;}

body.single-product .woocommerce-product-gallery__image{overflow:hidden;background:var(--r1-surface);border:1px solid var(--r1-border);border-radius:var(--r1-card-radius);box-shadow:0 4px 18px rgba(15,23,42,.035);}

body.single-product .woocommerce-product-gallery__image a{display:flex;align-items:center;justify-content:center;width:100%;min-height:0;aspect-ratio:1/1;padding:clamp(16px,2vw,28px);background:var(--r1-surface);}

body.single-product .woocommerce-product-gallery__image img{display:block;width:100%;height:100%;margin:0;object-fit:contain;object-position:center;background:transparent;border-radius:0;}

body.single-product div.product .summary{padding:clamp(22px,2.3vw,32px);background:var(--r1-surface);border:1px solid var(--r1-border);border-radius:var(--r1-card-radius);box-shadow:0 6px 24px rgba(15,23,42,.045);}

body.single-product div.product .product_title{margin:0 0 16px;color:var(--r1-text);font-size:1.25rem;font-weight:600;line-height:1.18;letter-spacing:-.025em;}

body.single-product div.product .woocommerce-product-rating{margin:0 0 14px;}

body.single-product div.product p.price del{color:var(--r1-muted);opacity:.7;font-size:.78em;font-weight:500;}

body.single-product .woocommerce-product-details__short-description{margin:0 0 20px;color:var(--r1-text);}

body.single-product .woocommerce-product-details__short-description>:last-child{margin-bottom:0;}

body.single-product div.product form.cart{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px;}

body.single-product div.product form.cart .qty{width:72px;min-height:48px;padding:0 10px;border:1px solid var(--r1-border);border-radius:var(--r1-control-radius);background:var(--r1-bg);color:var(--r1-text);text-align:center;box-shadow:none;}

body.single-product div.product form.cart .single_add_to_cart_button{min-height:48px;padding:12px 22px;border-radius:var(--r1-button-radius);background:var(--r1-primary);color:#fff;}

body.single-product div.product form.cart .single_add_to_cart_button:hover{background:var(--r1-hover);}
/* Loading must remain a calm theme-color button. WooCommerce's spinner
   animation and inherited purple/opacity must never replace our CTA. */
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button,
body.single-product div.product form.cart .single_add_to_cart_button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--r1-primary,#0A95AE);border:1px solid var(--r1-primary,#0A95AE);
  color:#fff;box-shadow:none;transform:none;transition:background-color .15s ease,border-color .15s ease;
}
/* The loader can be represented by WooCommerce or an AJAX integration as
   .loading, .is-loading, :disabled, [aria-busy] or [data-loading]. Keep the
   entire busy state in a muted PRIMARY shade, never a plugin's purple. */
body.single-product div.product form.cart .single_add_to_cart_button:is(
  .loading,.is-loading,.processing,.disabled,:disabled,[aria-busy="true"],[data-loading="true"]
){
  position:relative;
  background:color-mix(in srgb,var(--r1-primary,#0A95AE) 75%,white)!important;
  background-image:none!important;
  border-color:color-mix(in srgb,var(--r1-primary,#0A95AE) 75%,white)!important;
  color:#fff!important;opacity:1!important;filter:none!important;
  box-shadow:none!important;transform:none!important;animation:none!important;
  cursor:progress;
}
/* WooCommerce appends an animated :after spinner, often also via ::before. */
body.single-product div.product form.cart .single_add_to_cart_button:is(
  .loading,.is-loading,.processing,[aria-busy="true"],[data-loading="true"]
)::before,
body.single-product div.product form.cart .single_add_to_cart_button:is(
  .loading,.is-loading,.processing,[aria-busy="true"],[data-loading="true"]
)::after{
  content:none!important;display:none!important;animation:none!important;
}
body.single-product div.product form.cart .single_add_to_cart_button:is(
  .loading,.is-loading,.processing,[aria-busy="true"],[data-loading="true"]
) :is(.spinner,.loading-icon,.wc-block-components-spinner){display:none!important;}

body.single-product div.product form.cart .single_add_to_cart_button:is(:hover,:focus-visible):not(:disabled){
  background:var(--r1-hover,#087F95);border-color:var(--r1-hover,#087F95);color:#fff;
}


body.single-product div.product .product_meta>span{display:block;margin:0 0 7px;}

body.single-product div.product .product_meta a{color:var(--r1-text);text-decoration:none;}

body.single-product div.product .product_meta a:hover{color:var(--r1-link-hover);}

body.single-product .r1-product-meta-label{color:var(--r1-muted);}

body.single-product div.product .summary .woocommerce-tabs{grid-column:auto;clear:none;width:100%;margin:var(--r1-element-gap) 0 0;padding-top:4px;}

body.single-product div.product .summary .woocommerce-tabs ul.tabs{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:0;padding:0;overflow:visible;border-bottom:1px solid var(--r1-border);list-style:none;}

body.single-product div.product .summary .woocommerce-tabs ul.tabs li{float:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;}

body.single-product div.product .summary .woocommerce-tabs ul.tabs li a{display:block;padding:11px 0;border-bottom:2px solid transparent;color:var(--r1-muted);font-size:.95rem;font-weight:500;line-height:1.2;text-decoration:none;}

body.single-product div.product .summary .woocommerce-tabs ul.tabs li.active a{border-bottom-color:var(--r1-primary);color:var(--r1-text);}

body.single-product div.product .summary .woocommerce-Tabs-panel{margin:0;padding:20px 0 0;background:transparent;border:0;box-shadow:none;color:var(--r1-text);}

body.single-product div.product .summary .woocommerce-Tabs-panel>h2:first-child{display:none;}

body.single-product div.product .summary .woocommerce-Tabs-panel>:first-child{margin-top:0;}

body.single-product div.product .summary .woocommerce-Tabs-panel>:last-child{margin-bottom:0;}

body.single-product div.product .summary table.shop_attributes{width:100%;margin:0;border:0;border-collapse:collapse;}

body.single-product div.product .summary table.shop_attributes th{width:42%;padding-right:16px;color:var(--r1-muted);font-weight:500;}

body.single-product div.product .summary table.shop_attributes td{color:var(--r1-text);}

body.single-product div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--r1-column-gap);align-items:start;}

body.single-product div.product>.woocommerce-product-gallery{grid-column:1;min-width:0;width:100%;max-width:none;float:none;margin:0;}

body.single-product div.product form.cart .quantity{display:inline-grid;grid-template-columns:44px 58px 44px;align-items:stretch;gap:0;width:auto;min-width:146px;margin:0;padding:0;overflow:hidden;background:var(--r1-surface);border:1px solid var(--r1-border);border-radius:var(--r1-control-radius);box-shadow:none;}

body.single-product div.product form.cart .quantity .qty{appearance:textfield;-webkit-appearance:none;-moz-appearance:textfield;dis:block;position:static;width:58px;min-width:58px;max-width:58px;height:46px;min-height:46px;margin:0;padding:0 5px;border:0;border-left:1px solid var(--r1-border);border-right:1px solid var(--r1-border);border-radius:0;background:var(--r1-surface);color:var(--r1-text);font-size:16px;font-weight:600;line-height:46px;text-align:center;box-shadow:none;}

body.single-product div.product .product_meta{color:var(--r1-muted);font-size:.9rem;line-height:1.45;display:block;width:100%;margin:var(--r1-element-gap) 0 0;padding-top:16px;border-top:1px solid var(--r1-border);}

body.single-product div.product .product_meta>span:last-child{margin-bottom:0;}

body.single-product .woocommerce-product-gallery{background:transparent;min-width:0;max-width:100%;overflow:visible;}

body.single-product .woocommerce-product-gallery .flex-viewport{position:relative;display:block;width:100%;max-width:100%;overflow:hidden;clip-path:inset(0 round var(--r1-card-radius));-webkit-clip-path:inset(0 round var(--r1-card-radius));background:var(--r1-surface);border:1px solid var(--r1-border);border-radius:var(--r1-card-radius);box-shadow:0 4px 18px rgba(15,23,42,.035);box-sizing:border-box;}



/* ==========================================================================
   PRODUCTS / CATALOG
   ========================================================================== */

.woocommerce div.product{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:52px;}

.woocommerce div.product .woocommerce-product-gallery,.woocommerce div.product .summary{float:none;width:auto;}

.woocommerce div.product .product_title{font-size:1.25rem;line-height:1.1;letter-spacing:-.03em;}

.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--r1-text);font-size:1.5rem;font-weight:750;}

.woocommerce div.product form.cart .button{min-height:48px;}

.woocommerce div.product .woocommerce-tabs{grid-column:1/-1;}

body.single-product div.product .woocommerce-product-gallery,body.single-product div.product .summary{float:none;width:auto;min-width:0;margin:0;}

body.single-product div.product .woocommerce-product-gallery.images .flex-control-thumbs,body.single-product .woocommerce-product-gallery .thumbnails{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:10px 0 0;padding:0;list-style:none;}

body.single-product div.product .woocommerce-product-gallery.images .flex-control-thumbs > li,body.single-product .woocommerce-product-gallery .thumbnails a{float:none;width:100%;height:auto;margin:0;overflow:hidden;aspect-ratio:1/1;background:var(--r1-surface);border:1px solid var(--r1-border);border-radius:min(var(--r1-card-radius),16px);box-sizing:border-box;cursor:pointer;}

body.single-product .woocommerce-product-gallery .flex-control-thumbs img,body.single-product .woocommerce-product-gallery .thumbnails img{display:block;box-sizing:border-box;width:100%;height:100%;padding:7px;object-fit:contain;object-position:center;background:var(--r1-surface);opacity:.72;transition:opacity .18s ease,border-color .18s ease;}

body.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover,body.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active{opacity:1;}

body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger{top:14px;right:14px;border-radius:999px;background:var(--r1-surface);box-shadow:0 4px 16px rgba(15,23,42,.08);}

body.single-product div.product p.price,body.single-product div.product span.price{margin:0 0 18px;color:var(--r1-text);font-size:clamp(1.45rem,2vw,1.9rem);font-weight:700;line-height:1.15;}

body.single-product div.product p.price ins,body.single-product div.product span.price ins{color:#e5484d;text-decoration:none;font-weight:700;}

body.single-product .woocommerce-product-details__short-description>:first-child{margin-top:0;}

body.single-product div.product .summary .woocommerce-tabs ul.tabs::before,body.single-product div.product .summary .woocommerce-tabs ul.tabs li::before,body.single-product div.product .summary .woocommerce-tabs ul.tabs li::after{display:none!important;content:none;}

body.single-product div.product .summary table.shop_attributes th,body.single-product div.product .summary table.shop_attributes td{padding:9px 0;border:0;border-bottom:1px solid var(--r1-border);background:transparent;font-size:.9rem;line-height:1.4;text-align:left;vertical-align:top;}

body.single-product div.product>.summary,body.single-product div.product>.entry-summary{grid-column:2;min-width:0;width:100%;max-width:none;float:none;margin:0;}

body.single-product div.product form.cart .quantity .minus,body.single-product div.product form.cart .quantity .plus{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;position:static;width:44px;min-width:44px;height:46px;min-height:46px;margin:0;padding:0;border:0;border-radius:0;background:var(--r1-bg);color:var(--r1-text);font-size:20px;font-weight:500;line-height:1;box-shadow:none;cursor:pointer;}

body.single-product div.product form.cart .quantity .minus:hover,body.single-product div.product form.cart .quantity .plus:hover{background:color-mix(in srgb,var(--r1-hover) 9%,var(--r1-surface));color:var(--r1-hover);opacity:1;}

body.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,body.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;}

body.single-product div.product .product_meta>span,body.single-product div.product .product_meta .sku_wrapper,body.single-product div.product .product_meta .posted_in,body.single-product div.product .product_meta .tagged_as,body.single-product div.product .product_meta .r1-product-brand{display:block;float:none;clear:both;width:100%;margin:0 0 7px;}

body.single-product div.product .summary .woocommerce-tabs,body.single-product div.product .entry-summary .woocommerce-tabs{display:block;width:100%;margin:var(--r1-element-gap) 0 0;padding-top:0;clear:both;}

body.single-product div.product>.related,body.single-product div.product>.upsells{grid-column:1/-1;width:100%;min-width:0;margin-top:var(--r1-section-gap);}

body.single-product div.product>.related ul.products,body.single-product div.product>.upsells ul.products{display:grid;grid-template-columns:repeat(var(--r1-shop-columns,4),minmax(0,1fr));gap:var(--r1-column-gap);}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper{gap:0;margin:0;padding:0;}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image{margin:0;border:0;border-radius:0;box-shadow:none;box-sizing:border-box;}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image>a{box-sizing:border-box;width:100%;max-width:100%;margin:0;}

body.single-product .woocommerce-product-gallery:not(.woocommerce-product-gallery--with-images) .flex-viewport{clip-path:none;-webkit-clip-path:none;}


/* One visual tabs component for both WooCommerce tab mount positions.
 * The layout mode only moves the tabs; it must never change gallery or summary columns.
 */
body.single-product div.product > .woocommerce-tabs{grid-column:1/-1;min-width:0;width:100%;margin:0;padding:0;clear:none;}
body.single-product div.product .woocommerce-tabs ul.tabs{
  display:flex;align-items:flex-end;flex-wrap:wrap;gap:20px;margin:0;padding:0;
  border:0;border-bottom:1px solid var(--r1-border);border-radius:0;background:none;overflow:visible;list-style:none;
}
body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs::after,
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after{display:none;content:none;box-shadow:none;}
body.single-product div.product .woocommerce-tabs ul.tabs li,
body.single-product div.product .woocommerce-tabs ul.tabs li.active{
  position:relative;display:block;float:none;margin:0;padding:0;border:0;border-radius:0;
  background:transparent;box-shadow:none;
}
body.single-product div.product .woocommerce-tabs ul.tabs li a,
body.single-product div.product .woocommerce-tabs ul.tabs li.active a{
  display:block;padding:11px 0;margin:0;border:0;border-bottom:2px solid transparent;
  border-radius:0;background:transparent;color:var(--r1-muted);font-size:14px;font-weight:500;
  line-height:1.4;text-decoration:none;box-shadow:none;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active a{
  border-bottom-color:var(--r1-primary);color:var(--r1-text);font-weight:600;
}
body.single-product div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--r1-primary);}
body.single-product div.product .woocommerce-tabs ul.tabs li a:focus-visible{
  outline:2px solid var(--r1-primary);outline-offset:2px;
}
body.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel{
  width:100%;margin:0;padding:24px 0 0;border:0;border-radius:0;background:transparent;
  color:var(--r1-text);box-shadow:none;
}
body.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child{display:none;}

/* ==========================================================================
   RESPONSIVE / CONDITIONAL
   ========================================================================== */

@media (max-width:1100px){
.woocommerce div.product{gap:32px;}
}

@media (max-width:800px){
.woocommerce div.product{grid-template-columns:1fr;}
.woocommerce div.product .woocommerce-tabs{grid-column:1;}
}

@media (max-width:900px){
body.single-product div.product .woocommerce-product-gallery.images .flex-control-thumbs,body.single-product .woocommerce-product-gallery .thumbnails{grid-template-columns:repeat(5,minmax(0,1fr));}
body.single-product div.product>.related,body.single-product div.product>.upsells{grid-column:1;}
}

@media (max-width:640px){
body.single-product div.product .summary{padding:18px;}
body.single-product div.product .woocommerce-product-gallery.images .flex-control-thumbs,body.single-product .woocommerce-product-gallery .thumbnails{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
body.single-product div.product .summary .woocommerce-tabs ul.tabs{gap:14px;}
body.single-product div.product .summary .woocommerce-tabs ul.tabs li a{font-size:.88rem;}
}

@media (prefers-reduced-motion:reduce){
body.single-product .woocommerce-product-gallery .flex-control-thumbs img{transition:none;}
}

@media (max-width:900px){
body.single-product div.product{grid-template-columns:1fr;}
body.single-product div.product>.woocommerce-product-gallery,body.single-product div.product>.summary,body.single-product div.product>.entry-summary,body.single-product div.product>.related,body.single-product div.product>.upsells{grid-column:1;}
}

@media (max-width:800px){
body.single-product div.product>.related ul.products,body.single-product div.product>.upsells ul.products{grid-template-columns:repeat(2,minmax(0,1fr));}
}

