/* ONYVEL WooCommerce v1.3 — full-width, AJAX-ready, fashion-first. */

/* Kill legacy sidebar/widget output on commerce screens, including plugin fallbacks. */
.woocommerce-page #secondary,
.woocommerce-page .widget-area:not(.onyvel-footer__links):not(.onyvel-footer__meta),
.woocommerce-page .woocommerce-sidebar { display:none!important; }

.onyvel-shop-shell,
.onyvel-commerce-shell { width:min(100%,var(--ov-max)); margin:auto; min-height:68svh; padding:calc(var(--ov-header) + 62px) var(--ov-pad) clamp(80px,8vw,130px); }
.onyvel-shop-dynamic { transition:opacity .2s var(--ov-ease); }

.woocommerce .woocommerce-breadcrumb { margin:0 0 24px; color:var(--ov-muted); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.woocommerce-products-header { margin-bottom:34px; }
.woocommerce-products-header__title.page-title { margin:0; font-size:clamp(54px,7vw,112px); font-weight:600; line-height:.88; letter-spacing:-.065em; }
.woocommerce-products-header .term-description { max-width:680px; margin-top:20px; color:var(--ov-muted); font-size:15px; }

/* Catalogue toolbar */
.onyvel-catalog-toolbar { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:18px 0; margin:10px 0 30px; border-top:1px solid var(--ov-line); border-bottom:1px solid var(--ov-line); }
.onyvel-catalog-toolbar__count { color:var(--ov-muted); font-size:10px; font-weight:650; letter-spacing:.12em; text-transform:uppercase; }
.onyvel-catalog-toolbar__actions { display:flex; align-items:center; gap:28px; }
.onyvel-catalog-action { border:0; background:transparent; padding:8px 0; color:inherit; cursor:pointer; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.onyvel-catalog-action span { display:inline-block; margin-left:8px; font-size:15px; transition:transform .25s var(--ov-ease); }
.onyvel-catalog-action:hover span { transform:rotate(90deg); }
.onyvel-sort select { appearance:none; border:0; background:transparent; color:inherit; padding:8px 24px 8px 0; cursor:pointer; font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%); background-position:calc(100% - 8px) 50%,calc(100% - 4px) 50%; background-size:4px 4px,4px 4px; background-repeat:no-repeat; }

/* Product grid */
.woocommerce ul.products { display:grid; grid-template-columns:repeat(var(--ov-shop-columns,4),minmax(0,1fr)); gap:clamp(10px,1.25vw,22px); row-gap:clamp(38px,4vw,66px); margin:0; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto!important; margin:0!important; float:none!important; position:relative; }
.woocommerce ul.products li.product a.woocommerce-loop-product__link { display:block; }
.woocommerce ul.products li.product a img { width:100%; margin:0 0 13px; aspect-ratio:4/5; object-fit:cover; background:#dedad2; transition:transform .65s var(--ov-ease), filter .4s var(--ov-ease); }
.woocommerce ul.products li.product:hover a img { transform:scale(1.018); filter:contrast(1.02); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding:3px 0 0; margin:0; font-size:13px; line-height:1.35; font-weight:500; }
.woocommerce ul.products li.product .price { margin-top:5px; color:var(--ov-black); font-size:12px; }
.woocommerce ul.products li.product .button { margin-top:12px; background:transparent; color:var(--ov-black); padding:0 0 3px; border-radius:0; border:0; border-bottom:1px solid currentColor; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.woocommerce ul.products li.product .button.loading { opacity:.45; }
.woocommerce span.onsale { min-width:0; min-height:0; line-height:1; border-radius:0; padding:8px 10px; top:10px; left:10px; background:var(--ov-black); color:#fff; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.woocommerce nav.woocommerce-pagination { margin-top:70px; }
.woocommerce nav.woocommerce-pagination ul { border:0; display:flex; gap:8px; }
.woocommerce nav.woocommerce-pagination ul li { border:0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { min-width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--ov-line); background:transparent; color:var(--ov-black); }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--ov-black); color:#fff; }

/* Empty / pre-launch catalogue */
.onyvel-catalog-empty { min-height:50svh; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; border-top:1px solid var(--ov-line); padding:clamp(60px,8vw,130px) 0; }
.onyvel-catalog-empty h2 { max-width:1050px; margin:0; font-family:var(--ov-heading-font); font-size:clamp(50px,7vw,110px); line-height:.88; letter-spacing:-.065em; font-weight:600; }
.onyvel-catalog-empty > p:not(.onyvel-kicker) { max-width:560px; margin:26px 0; color:var(--ov-muted); font-size:clamp(16px,1.5vw,22px); }

/* Filter drawer */
.onyvel-filter-drawer { position:fixed; z-index:2001; top:0; left:0; bottom:0; width:min(440px,92vw); background:var(--ov-bone); color:var(--ov-black); transform:translateX(-102%); transition:transform .38s var(--ov-ease); box-shadow:20px 0 60px rgba(0,0,0,.12); overflow:auto; }
.onyvel-filter-drawer.is-open { transform:none; }
.onyvel-filter-form { padding:6px 24px 34px; }
.onyvel-filter-group { border:0; margin:0; padding:25px 0; border-bottom:1px solid var(--ov-line); }
.onyvel-filter-group legend { width:100%; margin-bottom:16px; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.onyvel-filter-group > label { display:flex; gap:10px; align-items:center; margin:10px 0; font-size:13px; cursor:pointer; }
.onyvel-filter-group input[type="radio"], .onyvel-filter-group input[type="checkbox"] { accent-color:var(--ov-black); }
.onyvel-filter-chips { display:flex; flex-wrap:wrap; gap:8px; }
.onyvel-filter-chip input { position:absolute; opacity:0; pointer-events:none; }
.onyvel-filter-chip span { min-width:42px; height:38px; padding:0 13px; display:grid; place-items:center; border:1px solid var(--ov-line); font-size:11px; cursor:pointer; transition:background .18s,color .18s,border-color .18s; }
.onyvel-filter-chip input:checked + span { background:var(--ov-black); color:#fff; border-color:var(--ov-black); }
.onyvel-filter-actions { display:flex; align-items:center; gap:18px; padding-top:26px; }
.onyvel-filter-actions .onyvel-button { flex:1; }
.onyvel-text-button { border:0; background:transparent; padding:10px 0; border-bottom:1px solid currentColor; cursor:pointer; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }

/* Single product */
.single-product .onyvel-commerce-shell { padding-top:calc(var(--ov-header) + 48px); }
.single-product div.product { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(330px,.7fr); gap:clamp(34px,5vw,90px); align-items:start; }
.single-product div.product .woocommerce-product-gallery { width:100%!important; float:none!important; margin:0!important; }
.single-product div.product .summary { width:100%!important; float:none!important; margin:0!important; position:sticky; top:calc(var(--ov-header) + 32px); padding-top:18px; }
.single-product .product_title { margin:0 0 12px; font-size:clamp(32px,3.5vw,58px); line-height:.95; letter-spacing:-.045em; font-weight:600; }
.single-product div.product p.price,
.single-product div.product span.price { color:var(--ov-black); font-size:16px; }
.single-product .woocommerce-product-details__short-description { color:#4d4a46; margin:26px 0; max-width:520px; }
.single-product form.cart { margin-top:30px!important; }
.single-product form.cart .variations { margin-bottom:22px; }
.single-product form.cart .variations th,
.single-product form.cart .variations td { display:block; width:100%; text-align:left; padding:0 0 8px; }
.single-product form.cart .variations label { font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.single-product form.cart .variations select { width:100%; min-height:48px; border:1px solid var(--ov-line); background:transparent; padding:0 13px; }
.woocommerce div.product form.cart .button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt { min-height:52px; border-radius:0; background:var(--ov-black); color:#fff; padding:0 24px; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:700; transition:background .2s,opacity .2s; }
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background:var(--ov-oxblood); color:#fff; }
.woocommerce div.product form.cart .button.loading { opacity:.45; }
.woocommerce div.product form.cart .button.added::after { content:" ✓"; }
.woocommerce div.product .quantity .qty { min-height:52px; border:1px solid var(--ov-line); background:transparent; }
.single-product .product_meta { border-top:1px solid var(--ov-line); margin-top:32px; padding-top:20px; color:var(--ov-muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.single-product .woocommerce-tabs { grid-column:1/-1; margin-top:60px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding:0; margin:0 0 30px; border-bottom:1px solid var(--ov-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:transparent; border:0; margin:0 30px 0 0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding:14px 0; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.related.products { grid-column:1/-1; padding-top:60px; }
.related.products > h2 { font-size:clamp(28px,3vw,48px); font-weight:600; letter-spacing:-.04em; }

/* Cart drawer */
.onyvel-cart-drawer { position:fixed; z-index:2002; top:0; right:0; bottom:0; width:min(500px,94vw); background:var(--ov-bone); color:var(--ov-black); transform:translateX(102%); transition:transform .4s var(--ov-ease); box-shadow:-20px 0 60px rgba(0,0,0,.13); display:grid; grid-template-rows:auto 1fr auto; }
.onyvel-cart-drawer.is-open { transform:none; }
.onyvel-cart-drawer__body { overflow:auto; padding:0 24px; }
.onyvel-cart-loading { min-height:240px; display:grid; place-content:center; gap:14px; color:var(--ov-muted); text-align:center; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.onyvel-cart-loading span { width:26px; height:26px; margin:auto; border:1px solid var(--ov-line); border-top-color:var(--ov-black); border-radius:50%; animation:ov-spin .7s linear infinite; }
@keyframes ov-spin { to { transform:rotate(360deg); } }
.onyvel-cart-drawer__body.is-loading { opacity:.62; }
.onyvel-cart-item { display:grid; grid-template-columns:105px 1fr; gap:16px; padding:22px 0; border-bottom:1px solid var(--ov-line); transition:opacity .2s; }
.onyvel-cart-item.is-updating { opacity:.4; pointer-events:none; }
.onyvel-cart-item__image { aspect-ratio:4/5; background:#dedad2; overflow:hidden; }
.onyvel-cart-item__image img { width:100%; height:100%; object-fit:cover; }
.onyvel-cart-item__name { font-size:14px; font-weight:600; }
.onyvel-cart-item__variation { display:flex; flex-wrap:wrap; gap:4px 10px; margin-top:7px; color:var(--ov-muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.onyvel-cart-item__bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:20px; }
.onyvel-cart-item__bottom strong { font-size:12px; }
.onyvel-qty { display:inline-grid; grid-template-columns:30px 32px 30px; height:34px; border:1px solid var(--ov-line); }
.onyvel-qty button { border:0; background:transparent; cursor:pointer; }
.onyvel-qty span { display:grid; place-items:center; font-size:11px; }
.onyvel-cart-remove { border:0; background:transparent; padding:0 0 2px; margin-top:14px; color:var(--ov-muted); border-bottom:1px solid currentColor; cursor:pointer; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.onyvel-cart-drawer__footer { padding:20px 24px 26px; border-top:1px solid var(--ov-line); background:var(--ov-bone); }
.onyvel-cart-subtotal { display:flex; justify-content:space-between; margin-bottom:16px; font-size:13px; }
.onyvel-cart-checkout { width:100%; }
.onyvel-cart-view { display:table; margin:15px auto 0; }
.onyvel-cart-empty { min-height:55vh; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.onyvel-cart-empty h3 { margin:0; font-size:clamp(34px,5vw,54px); line-height:.95; letter-spacing:-.04em; }
.onyvel-cart-empty > p:not(.onyvel-kicker) { color:var(--ov-muted); }
.onyvel-cart-error { padding:40px 0; }

/* Cart / Checkout — classic and Blocks */
.woocommerce table.shop_table { border:0; border-radius:0; border-collapse:collapse; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-bottom:1px solid var(--ov-line); padding:18px 10px; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review { background:#ece8e0; padding:clamp(22px,3vw,42px); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { min-height:48px; background:transparent; border:1px solid var(--ov-line); border-radius:0; padding:10px 12px; }
.woocommerce form .form-row textarea { min-height:120px; }
.woocommerce form .form-row label { font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error { background:#ece8e0; color:var(--ov-black); border-top:0; border-left:3px solid var(--ov-oxblood); }

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { max-width:1400px; margin:0 auto; }
.wc-block-cart__main,
.wc-block-checkout__main { padding-right:clamp(20px,4vw,70px)!important; }
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar { background:#ece8e0; padding:clamp(20px,2.8vw,38px)!important; }
.wc-block-components-button { border-radius:0!important; min-height:52px!important; background:var(--ov-black)!important; color:#fff!important; font-size:11px!important; font-weight:700!important; letter-spacing:.12em!important; text-transform:uppercase!important; box-shadow:none!important; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input { border-radius:0!important; }

/* My Account */
.woocommerce-cart .onyvel-content-shell,
.woocommerce-checkout .onyvel-content-shell,
.woocommerce-account .onyvel-content-shell { width:min(100%,var(--ov-max)); }
.woocommerce-account .onyvel-commerce-shell { max-width:1400px; }
.woocommerce-account.logged-in .woocommerce { display:grid; grid-template-columns:240px minmax(0,1fr); gap:clamp(30px,5vw,80px); align-items:start; }
.woocommerce-account .woocommerce-MyAccount-navigation { width:auto; float:none; position:sticky; top:calc(var(--ov-header) + 32px); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0; border-top:1px solid var(--ov-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom:1px solid var(--ov-line); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display:block; padding:14px 0; font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { color:var(--ov-oxblood); }
.woocommerce-account .woocommerce-MyAccount-content { width:auto; float:none; min-width:0; }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { font-family:var(--ov-heading-font); letter-spacing:-.03em; }
.woocommerce-account .woocommerce-Address { width:calc(50% - 12px)!important; padding:24px; border:1px solid var(--ov-line); }

@media (max-width: 900px) {
  .onyvel-shop-shell,.onyvel-commerce-shell { padding-top:calc(var(--ov-header) + 38px); }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:36px; }
  .single-product div.product { display:block; }
  .single-product div.product .summary { position:static; padding-top:34px; }
  .single-product .woocommerce-tabs { margin-top:50px; }
  .woocommerce-account.logged-in .woocommerce { display:block; }
  .woocommerce-account .woocommerce-MyAccount-navigation { position:static; margin-bottom:34px; overflow:auto; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { display:flex; width:max-content; border-top:0; gap:20px; }
  .woocommerce-account .woocommerce-MyAccount-navigation li { border:0; }
  .woocommerce-account .woocommerce-Address { width:100%!important; float:none!important; margin-bottom:14px; }
}

@media (max-width: 560px) {
  .onyvel-catalog-toolbar { align-items:flex-end; }
  .onyvel-catalog-toolbar__count { display:none; }
  .onyvel-catalog-toolbar__actions { width:100%; justify-content:space-between; gap:15px; }
  .onyvel-sort { max-width:58%; }
  .onyvel-sort select { max-width:100%; }
  .onyvel-catalog-empty { min-height:52svh; }
  .onyvel-cart-item { grid-template-columns:88px 1fr; }
  .wc-block-cart__main,.wc-block-checkout__main { padding-right:0!important; }
}


/* v1.3.1 branded empty cart */
.onyvel-empty-cart-page {
  min-height: clamp(440px, 58vh, 720px);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  max-width:760px;
  padding:clamp(48px,7vw,110px) 0;
}
.onyvel-empty-cart-page h2 {
  margin:14px 0 18px;
  max-width:720px;
  font-size:clamp(56px,7vw,108px);
  line-height:.9;
  letter-spacing:-.06em;
  font-weight:600;
}
.onyvel-empty-cart-page > p:not(.onyvel-kicker) {
  max-width:560px;
  margin:0 0 30px;
  color:var(--ov-muted);
  font-size:clamp(15px,1.25vw,18px);
  line-height:1.55;
}
.onyvel-empty-cart-page .onyvel-button { min-width:190px; text-align:center; }

@media (max-width: 767px) {
  .onyvel-empty-cart-page { min-height:52vh; padding:56px 0 72px; }
  .onyvel-empty-cart-page h2 { font-size:clamp(48px,15vw,72px); }
}


/* v1.3.2 — Account / Cart / Checkout polish */
.woocommerce-account .onyvel-entry__content,
.woocommerce-cart .onyvel-entry__content,
.woocommerce-checkout .onyvel-entry__content {
  max-width:none;
  width:100%;
  font-size:inherit;
}

.woocommerce-account .onyvel-entry__title,
.woocommerce-cart .onyvel-entry__title,
.woocommerce-checkout .onyvel-entry__title {
  margin-bottom:clamp(46px,5vw,78px);
}

/* My Account: true two-column shell instead of Woo floats inside the generic page width. */
.woocommerce-account.logged-in .onyvel-entry__content > .woocommerce {
  display:grid;
  grid-template-columns:minmax(190px,260px) minmax(0,1fr);
  grid-template-areas:'nav content';
  gap:clamp(42px,6vw,96px);
  align-items:start;
  width:100%;
}
/* Explicit grid areas make this layout independent of WooCommerce template DOM order. */
.woocommerce-account .woocommerce-MyAccount-navigation {
  grid-area:nav;
  width:100%!important;
  float:none!important;
  margin:0!important;
  min-width:0;
}
.woocommerce-account .woocommerce-MyAccount-content {
  grid-area:content;
  width:100%!important;
  float:none!important;
  margin:0!important;
  max-width:960px;
  min-width:0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  border-top:1px solid var(--ov-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
  position:relative;
  padding:16px 22px 16px 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation a::after {
  content:'↗';
  position:absolute;
  right:2px;
  top:50%;
  transform:translateY(-50%);
  opacity:0;
  transition:opacity .2s var(--ov-ease), transform .2s var(--ov-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:hover a::after,
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a::after {
  opacity:1;
  transform:translateY(-50%) translateX(2px);
}

/* Hide Woo's generic dashboard prose only on the Overview endpoint. */
.onyvel-account-dashboard .woocommerce-MyAccount-content > p {
  display:none;
}
.onyvel-account-overview {
  width:100%;
}
.onyvel-account-overview h2 {
  margin:8px 0 18px;
  max-width:900px;
  font-size:clamp(44px,5.6vw,82px);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:600;
}
.onyvel-account-overview__intro {
  max-width:620px;
  margin:0 0 clamp(34px,4vw,58px)!important;
  color:var(--ov-muted);
  font-size:clamp(15px,1.25vw,18px);
  line-height:1.55;
}
.onyvel-account-overview__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--ov-line);
  border-left:1px solid var(--ov-line);
}
.onyvel-account-card {
  min-height:210px;
  display:flex;
  flex-direction:column;
  padding:22px;
  border-right:1px solid var(--ov-line);
  border-bottom:1px solid var(--ov-line);
  transition:background .25s var(--ov-ease), color .25s var(--ov-ease);
}
.onyvel-account-card > span {
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.onyvel-account-card > strong {
  margin:auto 0 14px;
  font-family:var(--ov-heading-font);
  font-size:clamp(42px,4vw,64px);
  line-height:1;
  font-weight:500;
  letter-spacing:-.055em;
}
.onyvel-account-card > small {
  color:var(--ov-muted);
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.onyvel-account-card:hover {
  background:var(--ov-black);
  color:#fff;
}
.onyvel-account-card:hover > small { color:rgba(255,255,255,.65); }
.onyvel-account-zero {
  margin-top:clamp(54px,6vw,88px);
  padding:clamp(30px,4vw,52px);
  background:#ece8e0;
}
.onyvel-account-zero h3 {
  max-width:720px;
  margin:10px 0 26px;
  font-size:clamp(34px,4.5vw,68px);
  line-height:.94;
  letter-spacing:-.05em;
  font-weight:600;
}

/* Account endpoint content */
.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h3,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  margin-top:0;
  font-size:clamp(30px,3.4vw,50px);
  line-height:.98;
  letter-spacing:-.045em;
}
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-details {
  width:100%;
  background:transparent;
}
.woocommerce-account .woocommerce-orders-table a.button {
  background:transparent;
  color:var(--ov-black);
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  padding:0 0 3px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.woocommerce-account .woocommerce-Addresses {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.woocommerce-account .woocommerce-Address {
  width:auto!important;
  float:none!important;
  margin:0!important;
  padding:clamp(22px,3vw,34px);
  background:#ece8e0;
  border:0;
}
.woocommerce-account .woocommerce-Address address {
  margin-top:24px;
  color:#4d4a46;
  font-style:normal;
  line-height:1.7;
}
.woocommerce-account .woocommerce-Address-title a,
.woocommerce-account .edit {
  color:var(--ov-black);
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-bottom:1px solid currentColor;
}

/* Logged-out account: keep login/register deliberately editorial. */
.onyvel-account-guest .onyvel-entry__content > .woocommerce {
  max-width:980px;
}
.woocommerce-account #customer_login {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(30px,6vw,90px);
}
.woocommerce-account #customer_login > .u-column1,
.woocommerce-account #customer_login > .u-column2 {
  width:auto!important;
  float:none!important;
}
.woocommerce-account #customer_login h2 {
  font-size:clamp(32px,4vw,56px);
  letter-spacing:-.045em;
}
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.edit-account,
.woocommerce-account form.woocommerce-EditAccountForm {
  border:0;
  border-radius:0;
  margin:0;
  padding:0;
}

/* Cart / Checkout block details */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
  max-width:none;
  width:100%;
}
.woocommerce-cart .wc-block-cart,
.woocommerce-checkout .wc-block-checkout {
  column-gap:clamp(34px,5vw,80px);
}
.wc-block-cart-items__row,
.wc-block-components-order-summary-item {
  border-color:var(--ov-line)!important;
}
.wc-block-cart-item__product .wc-block-components-product-name,
.wc-block-components-order-summary-item__description .wc-block-components-product-name {
  font-family:var(--ov-heading-font);
  font-size:clamp(18px,1.7vw,24px)!important;
  line-height:1.1;
  letter-spacing:-.03em;
}
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
  background:#ece8e0!important;
  border:0!important;
  align-self:start;
  position:sticky;
  top:calc(var(--ov-header) + 28px);
}
.wc-block-components-totals-wrapper {
  border-color:var(--ov-line)!important;
}
.wc-block-components-checkout-step__heading h2,
.wc-block-components-title.wc-block-components-title {
  font-family:var(--ov-heading-font)!important;
  letter-spacing:-.035em!important;
}
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-address-form__country .wc-blocks-components-select__select,
.wc-block-components-combobox-control input {
  border-radius:0!important;
  background:transparent!important;
}
.wc-block-components-order-summary .wc-block-components-panel__button {
  border-radius:0!important;
}
.wc-block-components-button:hover {
  background:var(--ov-oxblood)!important;
}

/* Order received / notices */
.woocommerce-order-received .woocommerce-order-overview {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin:28px 0 50px;
  padding:0;
  border-top:1px solid var(--ov-line);
  border-left:1px solid var(--ov-line);
}
.woocommerce-order-received .woocommerce-order-overview li {
  float:none;
  margin:0;
  padding:20px;
  border-right:1px solid var(--ov-line);
  border-bottom:1px solid var(--ov-line);
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

@media (max-width: 900px) {
  .woocommerce-account.logged-in .onyvel-entry__content > .woocommerce {
    display:block;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    grid-area:auto;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation {
    position:static;
    margin-bottom:36px!important;
    overflow:auto;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display:flex;
    width:max-content;
    gap:22px;
    border-top:0;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation li { border:0; }
  .woocommerce-account .woocommerce-MyAccount-navigation a { padding:10px 0; }
  .woocommerce-account .woocommerce-MyAccount-navigation a::after { display:none; }
  .onyvel-account-overview__grid { grid-template-columns:1fr; }
  .onyvel-account-card { min-height:150px; }
  .woocommerce-account .woocommerce-Addresses { grid-template-columns:1fr; }
  .woocommerce-account #customer_login { grid-template-columns:1fr; }
  .wc-block-cart__sidebar,
  .wc-block-checkout__sidebar { position:static; }
  .woocommerce-order-received .woocommerce-order-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .woocommerce-account .onyvel-entry__title,
  .woocommerce-cart .onyvel-entry__title,
  .woocommerce-checkout .onyvel-entry__title { margin-bottom:38px; }
  .onyvel-account-overview h2 { font-size:clamp(42px,13vw,64px); }
  .woocommerce-order-received .woocommerce-order-overview { grid-template-columns:1fr; }
}


/* v1.3.7 — optional PayPal trust messaging */
.onyvel-cart-trust { margin:14px 0 0; padding-top:14px; border-top:1px solid var(--ov-line); color:var(--ov-muted); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; text-align:center; }
.onyvel-product-trust { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:16px; padding-top:16px; border-top:1px solid var(--ov-line); }
.onyvel-product-trust span { color:var(--ov-muted); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }


/* v1.3.9 — real-product experience pass */

/* Printful supplies square product renders; never crop the garment just to fill
 * a fashion-card ratio. Keep the card ratio, but contain the product cleanly. */
.woocommerce ul.products li.product a img {
  object-fit:contain;
  background:#fff;
  padding:clamp(6px,.75vw,13px);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-transform:uppercase;
}

/* Single product: more editorial balance and less title wrapping. */
.single-product div.product {
  grid-template-columns:minmax(0,1.22fr) minmax(390px,.78fr);
  gap:clamp(38px,5.5vw,96px);
}
.single-product div.product .summary { padding-top:8px; }
.single-product .product_title {
  max-width:620px;
  font-size:clamp(30px,2.55vw,46px);
  line-height:.98;
  letter-spacing:-.04em;
}
.single-product div.product p.price,
.single-product div.product span.price { margin:14px 0 0; font-size:15px; }
.single-product div.product .woocommerce-product-gallery__wrapper,
.single-product div.product .woocommerce-product-gallery__image { background:#fff; }
.single-product div.product .woocommerce-product-gallery__image > a { display:block; }
.single-product div.product .woocommerce-product-gallery__image img {
  width:100%!important;
  height:auto!important;
  object-fit:contain;
}
.single-product .flex-control-thumbs {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:8px!important;
}
.single-product .flex-control-thumbs li { width:auto!important; float:none!important; margin:0!important; background:#fff; }
.single-product .flex-control-thumbs img { aspect-ratio:1/1; object-fit:contain; padding:4px; }

/* Size selection: native Woo select stays as the source of truth, enhanced into
 * buttons by JS so Printful/Woo variation resolution remains untouched. */
.single-product .variations tr.onyvel-size-enhanced select { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.single-product form.cart .variations th.onyvel-size-label-row { display:flex!important; align-items:center; justify-content:space-between; gap:18px; padding:0 0 12px!important; }
.single-product form.cart .variations th.onyvel-size-label-row label { margin:0; }
.onyvel-size-guide { color:var(--ov-muted); font-size:9px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; border-bottom:1px solid currentColor; padding-bottom:3px; }
.onyvel-size-options { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:2px; }
.onyvel-size-option { min-width:48px; height:44px; padding:0 14px; border:1px solid var(--ov-line); background:transparent; color:var(--ov-black); cursor:pointer; font-size:11px; font-weight:700; transition:background .18s,color .18s,border-color .18s; }
.onyvel-size-option:hover,
.onyvel-size-option.is-selected { background:var(--ov-black); color:#fff; border-color:var(--ov-black); }
.onyvel-size-option:disabled { opacity:.28; cursor:not-allowed; text-decoration:line-through; }

.single-product .woocommerce-variation-add-to-cart { display:flex; align-items:stretch; gap:8px; }
.single-product .woocommerce-variation-add-to-cart .quantity { flex:0 0 62px; }
.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex:1 1 auto; }
.single-product .single_add_to_cart_button { min-width:190px; }
.single-product .reset_variations { color:var(--ov-muted); font-size:9px!important; letter-spacing:.1em; text-transform:uppercase; }

.onyvel-product-trust { justify-content:space-between; gap:10px 16px; }
.onyvel-product-trust span { white-space:nowrap; }
.onyvel-cart-shipping-note { margin:7px 0 16px; color:var(--ov-muted); font-size:10px; }

/* Woo data panels become accessible ONYVEL accordions in JS. */
.single-product .woocommerce-tabs.is-onyvel-accordion { border-top:1px solid var(--ov-line); }
.single-product .woocommerce-tabs.is-onyvel-accordion > ul.tabs { display:none!important; }
.onyvel-product-accordions { width:100%; }
.onyvel-product-accordion { border-bottom:1px solid var(--ov-line); }
.onyvel-product-accordion__button { width:100%; min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:18px; border:0; background:transparent; color:var(--ov-black); padding:0; cursor:pointer; text-align:left; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.onyvel-product-accordion__icon { width:20px; height:20px; position:relative; flex:0 0 20px; }
.onyvel-product-accordion__icon::before,
.onyvel-product-accordion__icon::after { content:''; position:absolute; left:3px; right:3px; top:50%; height:1px; background:currentColor; transition:transform .25s var(--ov-ease); }
.onyvel-product-accordion__icon::after { transform:rotate(90deg); }
.onyvel-product-accordion__button[aria-expanded="true"] .onyvel-product-accordion__icon::after { transform:rotate(0); }
.onyvel-product-accordion__panel { padding:0 0 34px; max-width:980px; color:#383632; font-size:14px; line-height:1.65; }
.onyvel-product-accordion__panel[hidden] { display:none!important; }
.onyvel-product-accordion__panel h2 { display:none; }
.onyvel-product-accordion__panel p:first-child { margin-top:0; }
.onyvel-product-accordion__panel table.shop_attributes { border:0; margin:0; }
.onyvel-product-accordion__panel table.shop_attributes th,
.onyvel-product-accordion__panel table.shop_attributes td { border-color:var(--ov-line); background:transparent!important; padding:12px 0; font-size:12px; }
.onyvel-product-policy-links { display:flex; flex-wrap:wrap; gap:20px; margin-top:24px!important; }
.onyvel-product-safety-copy { color:var(--ov-muted); font-size:12px; }

@media (max-width: 900px) {
  .single-product div.product { display:block; }
  .single-product div.product .summary { position:static; padding-top:30px; }
  .single-product .product_title { max-width:720px; font-size:clamp(32px,8vw,48px); }
  .single-product .flex-control-thumbs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .onyvel-product-trust { justify-content:flex-start; }
}

@media (max-width: 560px) {
  .single-product .woocommerce-variation-add-to-cart { display:grid; grid-template-columns:62px 1fr; }
  .single-product .single_add_to_cart_button { min-width:0; width:100%; }
  .onyvel-size-option { min-width:44px; height:42px; padding:0 11px; }
  .single-product .flex-control-thumbs { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
}

/* v1.3.10 — product UX stability + size guide modal */

/* The purchase panel must stay in normal document flow. Sticky summary can
 * overlap the full-width accordion row once the gallery finishes. */
.single-product div.product .summary {
  position:static!important;
  top:auto!important;
  align-self:start;
}

/* WooCommerce's native .panel rule uses display:none. Explicitly override it
 * after the native panels have been moved into ONYVEL accordions. */
.woocommerce div.product .woocommerce-tabs .onyvel-product-accordion__panel:not([hidden]) {
  display:block!important;
}
.woocommerce div.product .woocommerce-tabs .onyvel-product-accordion__panel[hidden] {
  display:none!important;
}

/* Size guide trigger is a button when a product-specific guide exists. */
button.onyvel-size-guide,
button.onyvel-size-guide-inline {
  appearance:none;
  -webkit-appearance:none;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  background:transparent;
  color:var(--ov-muted);
  padding:0 0 3px;
  cursor:pointer;
  font:inherit;
}
button.onyvel-size-guide {
  font-size:9px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.onyvel-size-guide-backdrop {
  position:fixed;
  inset:0;
  z-index:100020;
  background:rgba(10,10,10,.52);
  opacity:0;
  transition:opacity .28s var(--ov-ease);
}
.onyvel-size-guide-backdrop.is-open { opacity:1; }
.onyvel-size-guide-modal {
  position:fixed;
  z-index:100021;
  left:50%;
  top:50%;
  width:min(900px,calc(100vw - 40px));
  max-height:min(760px,calc(100vh - 54px));
  overflow:auto;
  background:var(--ov-cream,#f4f1eb);
  color:var(--ov-black,#0a0a0a);
  border:1px solid var(--ov-line);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,-47%);
  transition:opacity .25s var(--ov-ease),transform .32s var(--ov-ease),visibility .25s;
  box-shadow:0 30px 90px rgba(0,0,0,.22);
}
.onyvel-size-guide-modal.is-open {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%);
}
.onyvel-size-guide-modal__header {
  position:sticky;
  top:0;
  z-index:2;
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 28px;
  border-bottom:1px solid var(--ov-line);
  background:var(--ov-cream,#f4f1eb);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.onyvel-size-guide-modal__body { padding:clamp(28px,4vw,58px); }
.onyvel-size-guide-content { max-width:100%; }
.onyvel-size-guide-content > h2 {
  margin:6px 0 24px;
  max-width:760px;
  font-size:clamp(34px,5vw,72px);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:600;
}
.onyvel-size-guide-content > p:not(.onyvel-kicker):not(.onyvel-size-note) {
  max-width:720px;
  color:#4f4c47;
  line-height:1.65;
}
.onyvel-size-guide-content.is-compact > p:first-of-type { margin-top:0; }
.onyvel-size-units {
  display:flex;
  gap:0;
  margin:28px 0 14px;
}
.onyvel-size-units button {
  min-width:54px;
  height:38px;
  border:1px solid var(--ov-line);
  background:transparent;
  color:var(--ov-black);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  cursor:pointer;
}
.onyvel-size-units button + button { margin-left:-1px; }
.onyvel-size-units button.is-active { background:var(--ov-black); color:#fff; border-color:var(--ov-black); }
.onyvel-size-table-wrap { overflow-x:auto; border-top:1px solid var(--ov-line); }
.onyvel-size-table {
  width:100%;
  min-width:650px;
  border-collapse:collapse;
  table-layout:fixed;
}
.onyvel-size-table th,
.onyvel-size-table td {
  padding:16px 12px;
  border-bottom:1px solid var(--ov-line);
  text-align:center;
  font-size:12px;
  font-weight:500;
}
.onyvel-size-table thead th {
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.onyvel-size-table th:first-child {
  width:170px;
  padding-left:0;
  text-align:left;
  font-weight:700;
}
.onyvel-size-note {
  margin:16px 0 26px;
  color:var(--ov-muted);
  font-size:10px;
  line-height:1.5;
}
html.onyvel-size-guide-open { overflow:hidden; }

/* The compact chart inside FIT & SIZE keeps the same source data without
 * making the accordion excessively tall. */
.onyvel-product-accordion__panel .onyvel-size-guide-content.is-compact {
  max-width:900px;
}
.onyvel-product-accordion__panel .onyvel-size-guide-content.is-compact .onyvel-kicker { display:none; }

@media (max-width:700px) {
  .onyvel-size-guide-modal {
    left:0;
    right:0;
    top:auto;
    bottom:0;
    width:100%;
    max-height:88vh;
    transform:translateY(24px);
    border-left:0;
    border-right:0;
    border-bottom:0;
  }
  .onyvel-size-guide-modal.is-open { transform:translateY(0); }
  .onyvel-size-guide-modal__header { padding:0 18px; }
  .onyvel-size-guide-modal__body { padding:28px 18px 38px; }
  .onyvel-size-guide-content > h2 { font-size:clamp(34px,12vw,54px); }
  .onyvel-size-table th:first-child { width:130px; }
}

/* v1.3.11 — deterministic single-product structure.
 * Media + purchase panel live in a dedicated wrapper; all product information
 * is rendered below it, so no sticky/grid/float rule can make them collide. */
body.single-product.woocommerce div.product {
  display:block!important;
  width:100%;
}
body.single-product.woocommerce div.product::before,
body.single-product.woocommerce div.product::after {
  content:none!important;
  display:none!important;
}
.single-product .onyvel-single-product-top {
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(390px,.78fr);
  gap:clamp(38px,5.5vw,96px);
  align-items:start;
  width:100%;
}
.single-product .onyvel-single-product-top > .woocommerce-product-gallery {
  width:100%!important;
  float:none!important;
  margin:0!important;
  min-width:0;
}
body.single-product.woocommerce .onyvel-single-product-top > .summary.entry-summary {
  width:100%!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  transform:none!important;
  align-self:start!important;
  min-width:0;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.single-product .onyvel-single-product-after {
  display:block;
  width:100%;
  clear:both;
  margin-top:clamp(52px,6vw,92px);
}
.single-product .onyvel-product-information {
  display:block;
  width:100%;
  border-top:1px solid var(--ov-line);
}
.single-product .onyvel-single-product-after .onyvel-product-accordions {
  width:100%;
}
.single-product .onyvel-single-product-after .onyvel-product-accordion__panel {
  display:block;
  width:100%;
  max-width:980px;
  padding:0 0 34px;
}
.single-product .onyvel-single-product-after .onyvel-product-accordion__panel[hidden] {
  display:none!important;
}
/* Default Woo tab container should not exist in 1.3.11, but hide it if an
 * extension re-injects one to prevent duplicate/competing product information. */
.single-product .onyvel-single-product-after > .woocommerce-tabs {
  display:none!important;
}
.single-product .related.products,
.single-product .upsells.products {
  width:100%;
  clear:both;
  padding-top:clamp(54px,6vw,90px);
}

@media (max-width:900px) {
  .single-product .onyvel-single-product-top {
    display:block;
  }
  body.single-product.woocommerce .onyvel-single-product-top > .summary.entry-summary {
    padding-top:30px;
  }
  .single-product .onyvel-single-product-after {
    margin-top:50px;
  }
}

/* v1.3.12 — editorial product layout
 * The product page becomes a fashion lookbook rather than a marketplace gallery.
 * Woo's underlying product/variation data stays untouched. */

/* Desktop media wall: all Printful views are visible in a balanced two-column grid. */
.single-product .onyvel-single-product-top {
  grid-template-columns:minmax(0,1.58fr) minmax(360px,.72fr);
  gap:clamp(44px,5vw,88px);
}
.single-product .woocommerce-product-gallery {
  overflow:visible!important;
}
.single-product .woocommerce-product-gallery .flex-viewport {
  height:auto!important;
  overflow:visible!important;
}
.single-product .woocommerce-product-gallery__wrapper {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  transform:none!important;
  width:100%!important;
  margin:0!important;
}
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image.flex-active-slide {
  float:none!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  background:#fff;
  aspect-ratio:1/1;
  overflow:hidden;
}
.single-product .woocommerce-product-gallery__image > a {
  width:100%;
  height:100%;
  display:grid!important;
  place-items:center;
}
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery__image img.wp-post-image {
  display:block;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  padding:clamp(8px,1vw,16px);
  background:#fff;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
  display:none!important;
}
.single-product .woocommerce-product-gallery__trigger {
  top:14px!important;
  right:14px!important;
  width:34px!important;
  height:34px!important;
  border-radius:0!important;
  background:rgba(244,241,235,.92)!important;
}

/* Purchase panel: compact, editorial and deliberately non-sticky. */
body.single-product.woocommerce .onyvel-single-product-top > .summary.entry-summary {
  padding-top:10px!important;
}
.onyvel-product-heading {
  padding-bottom:4px;
}
.onyvel-product-heading__kicker {
  margin:0 0 14px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.single-product .onyvel-product-heading .product_title {
  max-width:540px;
  margin:0;
  font-size:clamp(36px,3.15vw,62px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:600;
  text-transform:uppercase;
  text-wrap:balance;
}
.onyvel-product-heading__subtitle {
  margin:14px 0 0;
  color:var(--ov-muted);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.single-product div.product p.price,
.single-product div.product span.price {
  margin-top:22px;
  font-size:16px;
}
.single-product form.cart {
  margin-top:38px!important;
}
.single-product .product_meta {
  margin-top:26px;
}
.single-product .product_meta .sku_wrapper {
  display:none!important;
}

/* Editorial bridge before the practical product information. */
.single-product .onyvel-product-story {
  margin:0 0 clamp(40px,5vw,72px);
  padding:clamp(40px,5vw,72px) 0;
  border-top:1px solid var(--ov-line);
  border-bottom:1px solid var(--ov-line);
}
.single-product .onyvel-product-story .onyvel-kicker {
  margin:0 0 18px;
}
.single-product .onyvel-product-story__grid {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);
  gap:clamp(36px,7vw,120px);
  align-items:end;
}
.single-product .onyvel-product-story h2 {
  margin:0;
  max-width:900px;
  font-size:clamp(42px,6vw,94px);
  line-height:.86;
  letter-spacing:-.06em;
  font-weight:600;
}
.single-product .onyvel-product-story p:last-child {
  margin:0 0 5px;
  max-width:420px;
  color:var(--ov-muted);
  font-size:14px;
  line-height:1.65;
}
.single-product .onyvel-single-product-after {
  margin-top:clamp(58px,7vw,105px);
}

@media (max-width: 1100px) and (min-width: 901px) {
  .single-product .onyvel-single-product-top {
    grid-template-columns:minmax(0,1.35fr) minmax(340px,.75fr);
    gap:38px;
  }
  .single-product .onyvel-product-heading .product_title {
    font-size:clamp(34px,4vw,48px);
  }
}

@media (max-width: 900px) {
  /* Mobile/tablet becomes a touch-native horizontal lookbook. */
  .single-product .woocommerce-product-gallery,
  .single-product .woocommerce-product-gallery .flex-viewport {
    overflow:hidden!important;
  }
  .single-product .woocommerce-product-gallery__wrapper {
    display:flex!important;
    grid-template-columns:none;
    gap:6px;
    overflow-x:auto!important;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:0 7vw 8px 0;
  }
  .single-product .woocommerce-product-gallery__wrapper::-webkit-scrollbar {
    display:none;
  }
  .single-product .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery__image.flex-active-slide {
    flex:0 0 min(86vw,620px)!important;
    width:min(86vw,620px)!important;
    scroll-snap-align:start;
    aspect-ratio:1/1;
  }
  .single-product .woocommerce-product-gallery__trigger {
    display:none!important;
  }
  body.single-product.woocommerce .onyvel-single-product-top > .summary.entry-summary {
    padding-top:38px!important;
  }
  .single-product .onyvel-product-heading .product_title {
    max-width:760px;
    font-size:clamp(42px,10.5vw,68px);
  }
  .single-product .onyvel-product-story__grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .single-product .onyvel-product-story h2 {
    font-size:clamp(42px,12vw,72px);
  }
}

@media (max-width: 560px) {
  .single-product .onyvel-commerce-shell {
    padding-top:calc(var(--ov-header) + 24px);
  }
  .single-product .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery__image.flex-active-slide {
    flex-basis:88vw!important;
    width:88vw!important;
  }
  .single-product .onyvel-product-heading__kicker {
    margin-bottom:12px;
  }
  .single-product .onyvel-product-heading .product_title {
    font-size:clamp(38px,12vw,58px);
  }
  .single-product form.cart {
    margin-top:30px!important;
  }
  .single-product .onyvel-product-story {
    padding:38px 0;
  }
}
