@media (min-width: 701px) {
  .orbit-grid[hidden] { display: none !important; }
}

.orbit-menu{display:flex;align-items:center;gap:14px;list-style:none;margin:0;padding:0}
.orbit-menu li{margin:0}
.orbit-footer-menu{gap:15px}
body:not(.orbit-has-catalogue) .orbit-view-toggle{display:none}
.orbit-page-title{font-size:28px;line-height:1.15;margin:0 0 20px}
body:not(.woocommerce-page) .orbit-page{max-width:820px;margin:0 auto;line-height:1.6;font-size:15px}
.orbit-page .woocommerce{padding:0}
@media(max-width:700px){.orbit-nav .orbit-menu{display:none}}

/* ---- Elementor ---- */
.orbit-page--elementor{max-width:none!important;margin:0;padding-left:0;padding-right:0}
.orbit-page--elementor>.orbit-page-title{max-width:1140px;margin:0 auto 20px;padding:0 5vw}
body.elementor-editor-active .orbit-header{position:relative;inset:auto;background:var(--orbit-bg,#f7f6f2)}
body.elementor-editor-active .orbit-footer{position:static;padding:16px}

/* Phones show the Grid/Circle switch too (orbit.css and the storefront sheet used to hide it). */
@media(max-width:700px){body.orbit-has-catalogue .orbit-nav .orbit-view-toggle{display:inline-block}}

.orbit-price-qty{margin-left:4px;font-size:.8em;opacity:.65}

/* ---- Product lists: WooCommerce's clearfix pseudo-elements become empty grid cells in a CSS grid (blank first slot) ---- */
.woocommerce ul.products::before,.woocommerce ul.products::after{content:none!important;display:none!important}
.woocommerce ul.products li.product .button{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;margin-top:12px}

/* ---- Single product: tabs, related and upsells use the full width below the gallery/summary ---- */
.single-product div.product>.woocommerce-tabs,
.single-product div.product>section.related,
.single-product div.product>section.up-sells,
.single-product div.product>section.upsells{grid-column:1/-1;min-width:0;width:100%}

/* Related products / upsells as a swipeable carousel */
.single-product section.related.products,
.single-product section.up-sells.products,
.single-product section.upsells.products{position:relative;margin-top:28px}
.single-product section.products>h2{font-size:20px;line-height:1.2;margin:0 0 14px;padding-right:96px}
.single-product section.products ul.products{display:flex!important;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 4px!important;margin:0!important}
.single-product section.products ul.products::-webkit-scrollbar{display:none}
.single-product section.products ul.products li.product{flex:0 0 calc((100% - 30px)/4);min-width:180px;scroll-snap-align:start}
@media(max-width:1000px){.single-product section.products ul.products li.product{flex-basis:calc((100% - 20px)/3)}}
@media(max-width:700px){.single-product section.products ul.products li.product{flex-basis:68%;min-width:0}}
.orbit-carousel-nav{position:absolute;top:-4px;right:0;display:flex;gap:8px}
.orbit-carousel-nav[hidden]{display:none}
.orbit-carousel-nav button{width:36px;height:36px;border:0;border-radius:50%;background:#fff;color:var(--orbit-ink,#201e19);font-size:20px;line-height:1;cursor:pointer;box-shadow:0 1px 5px #0000001a;padding:0;display:grid;place-items:center}
.orbit-carousel-nav button:disabled{opacity:.35;cursor:default}
.orbit-carousel-nav button:focus-visible{outline:2px solid var(--orbit-ink,#201e19);outline-offset:2px}

/* ---- Product page picture: a sensible size, centred in its column, never taller than the window ---- */
.single-product div.product .woocommerce-product-gallery{max-width:min(520px,100%,68svh);justify-self:center;margin-left:auto;margin-right:auto}
.single-product div.product .woocommerce-product-gallery__image img,
.single-product div.product .woocommerce-product-gallery img.wp-post-image{width:100%;height:auto;object-fit:contain}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0;padding:0;list-style:none}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li{width:64px;float:none;margin:0}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img{border-radius:10px;opacity:.6;cursor:pointer}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1}
@media(max-width:700px){.single-product div.product .woocommerce-product-gallery{max-width:100%}}

/* ---- Product page: gentle zoom on hover (main picture and related/upsell cards) ---- */
.single-product div.product .woocommerce-product-gallery__image{overflow:hidden;border-radius:18px}
.single-product div.product .woocommerce-product-gallery__image img,
.single-product section.products ul.products li.product img{transition:transform .6s var(--orbit-ease,cubic-bezier(.22,1,.36,1));will-change:transform}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .single-product div.product .woocommerce-product-gallery__image:hover img{transform:scale(1.07)}
  .single-product section.products ul.products li.product:hover img{transform:scale(1.07)}
}

/* ---- Product page structure: picture + sticky summary in one block, tabs/related below it ---- */
.single-product div.product:has(>.orbit-product-top){display:block}
.orbit-product-top{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.8fr);gap:32px;align-items:start}
.single-product div.product>.woocommerce-tabs{position:relative;z-index:1;margin-top:40px;clear:both}
@media(max-width:700px){.orbit-product-top{display:block}}

/* ---- Tabs (Description / Reviews): plain underlined tabs instead of WooCommerce's boxed lilac ones ---- */
.single-product .woocommerce-tabs ul.tabs{display:flex!important;gap:4px;padding:0!important;margin:0 0 22px!important;overflow:visible!important;border-bottom:1px solid #dedbd3;list-style:none}
.single-product .woocommerce-tabs ul.tabs::before,.single-product .woocommerce-tabs ul.tabs::after{display:none!important;content:none!important}
.single-product .woocommerce-tabs ul.tabs li{display:block!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;z-index:auto!important}
.single-product .woocommerce-tabs ul.tabs li::before,.single-product .woocommerce-tabs ul.tabs li::after{display:none!important;content:none!important}
.single-product .woocommerce-tabs ul.tabs li a{display:block;padding:10px 16px;font-weight:600;color:var(--orbit-muted,#6f6c65)!important;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.single-product .woocommerce-tabs ul.tabs li.active a{color:var(--orbit-ink,#201e19)!important;border-bottom-color:var(--orbit-ink,#201e19)}
.single-product .woocommerce-tabs ul.tabs li a:hover{color:var(--orbit-ink,#201e19)!important}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description>h2:first-child{display:none}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel{margin:0;padding:0;max-width:820px;line-height:1.6}

/* ---- WooCommerce notices ("added to your cart", info, errors): icon, message and button each get their own space ---- */
body .woocommerce-message,body .woocommerce-info,body .woocommerce-error{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 14px!important;padding:16px 20px 16px 54px!important;border:0!important;border-radius:14px;list-style:none;line-height:1.45;box-shadow:none}
body .woocommerce-error{display:block;padding-left:54px!important}
body .woocommerce-error li{margin:0 0 4px}
body .woocommerce-message::before,body .woocommerce-info::before,body .woocommerce-error::before{position:absolute;left:20px;top:50%;margin:0;transform:translateY(-50%);font-size:18px;line-height:1}
body .woocommerce-message::after,body .woocommerce-info::after,body .woocommerce-error::after{display:none!important;content:none!important}
body .woocommerce-message .button,body .woocommerce-info .button{float:none!important;order:2;margin:0 0 0 auto!important;white-space:nowrap}
body .woocommerce-message:focus,body .woocommerce-info:focus,body .woocommerce-error:focus{outline:0}
@media(max-width:600px){body .woocommerce-message .button,body .woocommerce-info .button{margin-left:0!important}}
