/* Product page. Loaded only on single products, after theme.css. */
.single-product{ --pp-ink:#1a1b18; --pp-text:#3e3e3e; --pp-soft:#6f716a; --pp-line:#e6e5dd; --pp-bg:#f7f6f1; --pp-green:#789b4a; --pp-forest:#34471f; --pp-forest-d:#283718; }
.single-product .eg-main{ padding:0 0 64px; }
.eg-crumbs{ padding:20px 0 18px; font-family:var(--f-ui); font-size:14px; letter-spacing:.2px; color:var(--pp-soft); display:flex; flex-wrap:wrap; gap:8px; }
.eg-crumbs a{ color:var(--pp-soft); text-decoration:none; }
.eg-crumbs a:hover{ color:var(--pp-ink); text-decoration:underline; }

/* Layout */
.single-product div.product{ display:block; }
.eg-pp-top{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:48px 56px; align-items:start; margin-bottom:48px; }
.woocommerce.single-product div.product div.images,.single-product div.product .woocommerce-product-gallery{ grid-column:1; margin:0!important; float:none!important; width:100%!important; position:relative; min-width:0; container-type:inline-size; opacity:1!important; }
.woocommerce.single-product div.product div.summary,.single-product div.product .summary{ grid-column:2; margin:0!important; float:none!important; width:100%!important; min-width:0; position:sticky; top:104px; }

/* Gallery: same frame for every photo, the whole photo always visible */
.single-product .flex-viewport{ border-radius:10px; overflow:hidden; background:var(--pp-bg); height:auto!important; }
.single-product .woocommerce-product-gallery__wrapper{ margin:0; }
.single-product .woocommerce-product-gallery__image{ aspect-ratio:3/2; background:var(--pp-bg); position:relative; overflow:hidden; }
.single-product .woocommerce-product-gallery__image a{ display:block; height:100%; }
.single-product .woocommerce-product-gallery__image a img.wp-post-image,.single-product .woocommerce-product-gallery__image a img:not(.zoomImg){ width:100%!important; height:100%!important; object-fit:contain; display:block; }
.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:not(:first-child){ display:none; }
.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:first-child{ border-radius:10px; }
.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{ margin-bottom:112px; }
.single-product .woocommerce-product-gallery__image .zoomImg{ background:#fff; cursor:zoom-in; }
.single-product .woocommerce-product-gallery__trigger{ position:absolute!important; top:14px!important; right:14px!important; z-index:6; width:38px!important; height:38px!important; border-radius:50%; background:#fff!important; box-shadow:0 2px 10px rgba(26,27,24,.14); }
.woocommerce div.product div.images .flex-control-thumbs,.single-product .flex-control-thumbs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:10px; margin:12px 0 0!important; padding:0; list-style:none; overflow:visible; }
.woocommerce div.product div.images .flex-control-thumbs li{ width:auto!important; float:none!important; margin:0!important; cursor:pointer; }
.woocommerce div.product div.images .flex-control-thumbs li img{ width:100%!important; aspect-ratio:1/1; height:auto; object-fit:cover; border-radius:8px; opacity:.72!important; border:2px solid transparent; transition:opacity .15s,border-color .15s; display:block; }
.woocommerce div.product div.images .flex-control-thumbs li img:hover{ opacity:1!important; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active{ opacity:1!important; border-color:var(--pp-forest); }
.single-product .flex-direction-nav{ list-style:none; margin:0; padding:0; }
.single-product .flex-direction-nav a{ position:absolute; top:33.33cqw; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:#fff; box-shadow:0 2px 10px rgba(26,27,24,.14); display:flex; align-items:center; justify-content:center; font-size:0; z-index:5; opacity:0; transition:opacity .2s; }
.single-product .woocommerce-product-gallery:hover .flex-direction-nav a,.single-product .flex-direction-nav a:focus-visible{ opacity:1; }
.single-product .flex-direction-nav a::before{ content:""; width:9px; height:9px; border-right:1.8px solid var(--pp-ink); border-bottom:1.8px solid var(--pp-ink); }
.single-product .flex-direction-nav .flex-prev{ left:14px; }
.single-product .flex-direction-nav .flex-prev::before{ transform:rotate(135deg); margin-left:4px; }
.single-product .flex-direction-nav .flex-next{ right:14px; }
.single-product .flex-direction-nav .flex-next::before{ transform:rotate(-45deg); margin-right:4px; }

/* Title and price */
.eg-brand{ margin:0 0 10px; font-family:var(--f-ui); font-size:13px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:var(--pp-green); }
.single-product div.product .product_title{ font-size:32px; line-height:1.18; letter-spacing:-.2px; margin:0 0 16px; color:var(--pp-ink); }
.single-product div.product p.price,.single-product div.product span.price{ font-family:var(--f-ui); font-weight:700; font-size:30px; line-height:1.2; letter-spacing:0; color:var(--pp-ink)!important; margin:0 0 8px; }
.eg-stock{ display:flex; align-items:center; gap:8px; margin:0 0 24px; font-family:var(--f-ui); font-size:15px; color:var(--pp-text); }
.eg-stock span{ width:8px; height:8px; border-radius:50%; background:var(--pp-green); }
.eg-stock--out span{ background:#b4b4ac; }

/* Buttons */
.single-product form.cart{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; margin:0 0 24px!important; }
.single-product form.cart::before,.single-product form.cart::after{ display:none!important; }
.single-product form.cart .quantity{ margin:0!important; float:none!important; }
.eg-qty{ display:inline-flex; align-items:stretch; height:54px; border:1px solid #cfcfc6; border-radius:8px; overflow:hidden; box-sizing:border-box; background:#fff; }
.eg-qty button{ width:42px; background:none; border:0; cursor:pointer; font-family:var(--f-ui); font-size:20px; line-height:1; color:var(--pp-ink); }
.eg-qty button:hover{ background:var(--pp-bg); }
.eg-qty .qty{ width:44px!important; min-width:0; border:0!important; text-align:center; font-family:var(--f-ui); font-size:16px; font-weight:600; color:var(--pp-ink); background:transparent; -moz-appearance:textfield; padding:0!important; }
.eg-qty .qty::-webkit-outer-spin-button,.eg-qty .qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.single-product form.cart .single_add_to_cart_button{ float:none!important; width:100%; min-height:54px; padding:0 24px!important; border:0!important; border-radius:8px!important; background:var(--pp-forest)!important; color:#fff!important; font-family:var(--f-ui)!important; font-size:17px!important; font-weight:700!important; letter-spacing:.3px!important; line-height:1.2!important; cursor:pointer; transition:background .15s; }
.single-product form.cart .single_add_to_cart_button:hover{ background:var(--pp-forest-d)!important; }
.eg-buy-now{ grid-column:1/-1; min-height:50px; border:1.5px solid var(--pp-forest); border-radius:8px; background:#fff; color:var(--pp-forest); font-family:var(--f-ui); font-size:16px; font-weight:700; letter-spacing:.3px; cursor:pointer; transition:background .15s,color .15s; }
.eg-buy-now:hover{ background:var(--pp-forest); color:#fff; }

/* Delivery, returns, payment */
.eg-assure{ list-style:none; margin:0 0 16px; padding:6px 18px; border:1px solid var(--pp-line); border-radius:10px; background:#fff; }
.eg-assure li{ display:flex; align-items:center; gap:14px; padding:13px 0; }
.eg-assure li + li{ border-top:1px solid var(--pp-line); }
.eg-assure__ico{ flex:0 0 24px; color:var(--pp-forest); }
.eg-assure__ico svg{ width:24px; height:24px; display:block; }
.eg-assure__txt{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:2px 12px; flex:1; font-family:var(--f-ui); font-size:15px; color:var(--pp-text); }
.eg-assure__txt strong{ color:var(--pp-ink); font-weight:700; }
.eg-assure__txt button{ border:0; background:none; padding:0; color:var(--pp-text); font:inherit; cursor:pointer; text-decoration:underline; text-decoration-color:#bdbdb4; text-underline-offset:3px; }
.eg-assure__txt button:hover{ color:var(--pp-ink); }
.eg-paysafe{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-family:var(--f-ui); font-size:14px; color:var(--pp-soft); }
.eg-paysafe__txt{ display:inline-flex; align-items:center; gap:6px; margin-right:auto; }
.eg-paysafe img{ height:22px; width:auto; display:block; }

/* Tabs */
.eg-tabs__nav{ display:flex; flex-wrap:wrap; gap:4px 32px; border-bottom:1px solid var(--pp-line); }
.eg-tabs__nav button{ position:relative; border:0; background:none; padding:16px 0; font-family:var(--f-ui); font-size:16px; font-weight:600; letter-spacing:.2px; color:var(--pp-soft); cursor:pointer; }
.eg-tabs__nav button:hover{ color:var(--pp-ink); }
.eg-tabs__nav button[aria-selected="true"]{ color:var(--pp-ink); }
.eg-tabs__nav button[aria-selected="true"]::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--pp-forest); }
.eg-tab__head{ display:none; }
.js-on .eg-tab{ display:none; }
.js-on .eg-tab.is-active{ display:block; }
.eg-tab__body{ padding:28px 0 0; max-width:780px; }
.eg-rich{ font-family:var(--f-ui); font-size:17px; font-weight:400; letter-spacing:.2px; line-height:1.7; color:var(--pp-text); }
.eg-rich > *{ margin:0; }
.eg-rich > * + *{ margin-top:14px; }
.eg-rich h2,.eg-rich h3,.eg-rich h4{ font-family:var(--f-head); font-size:21px; font-weight:700; line-height:1.3; color:var(--pp-ink); }
.eg-rich > * + h2,.eg-rich > * + h3,.eg-rich > * + h4{ margin-top:28px; }
.eg-rich ul,.eg-rich ol{ padding-left:20px; }
.eg-rich li + li{ margin-top:6px; }
.eg-rich strong,.eg-rich b{ font-weight:700; color:var(--pp-ink); }
.eg-rich table:not(.eg-spec){ width:100%; border-collapse:collapse; }
.eg-rich table:not(.eg-spec) td,.eg-rich table:not(.eg-spec) th{ padding:8px 10px; border:1px solid var(--pp-line); text-align:left; }
.eg-spec{ width:100%; border-collapse:collapse; margin:0 0 24px!important; }
.eg-spec th,.eg-spec td{ padding:11px 0; border-bottom:1px solid var(--pp-line); text-align:left; font-size:16px; }
.eg-spec th{ width:40%; font-weight:600; color:var(--pp-soft); }
.eg-spec td{ color:var(--pp-ink); }

/* Related */
.single-product .related{ margin-top:48px; padding-top:48px; border-top:1px solid var(--pp-line); }
.single-product .related > h2{ font-size:28px; line-height:1.2; text-align:left; margin:0 0 28px; }
.single-product .related ul.products{ grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:32px 20px; }
.single-product .related ul.products li.product a img{ background:var(--pp-bg); border-radius:8px; }
.single-product .woocommerce-notices-wrapper{ margin-top:12px; }

/* Sticky bar: phones only */
.eg-stickybar{ display:none; }

@media (max-width:999px){
  .eg-pp-top{ grid-template-columns:minmax(0,1fr); gap:24px; margin-bottom:24px; }
  .woocommerce.single-product div.product div.images,.single-product div.product .woocommerce-product-gallery,
  .woocommerce.single-product div.product div.summary,.single-product div.product .summary{ grid-column:1; position:static; }
  .single-product .related ul.products{ grid-template-columns:repeat(3,minmax(0,1fr))!important; }
}
@media (max-width:749px){
  .single-product .eg-container{ padding-left:16px; padding-right:16px; }
  .single-product .eg-main{ padding-bottom:32px; }
  .eg-crumbs{ display:block; padding:12px 0; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .eg-crumbs span{ margin:0 6px; }
  .woocommerce.single-product div.product div.images,.single-product div.product .woocommerce-product-gallery{ margin:0 -16px!important; width:calc(100% + 32px)!important; max-width:none; }
  .single-product .flex-viewport{ border-radius:0; }
  .single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:first-child{ border-radius:0; }
  .single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{ margin-bottom:76px; }
  .woocommerce div.product div.images .flex-control-thumbs,.single-product .flex-control-thumbs{ display:flex; gap:8px; padding:0 16px; overflow-x:auto; scrollbar-width:none; }
  .woocommerce div.product div.images .flex-control-thumbs li{ flex:0 0 64px; }
  .single-product .flex-direction-nav a{ opacity:1; width:36px; height:36px; }
  .single-product div.product .product_title{ font-size:25px; margin-bottom:12px; }
  .single-product div.product p.price,.single-product div.product span.price{ font-size:26px; }
  .eg-stock{ margin-bottom:18px; }
  .eg-assure__txt{ display:block; }
  .eg-assure__txt strong{ display:block; }
  /* Tabs become accordions */
  .eg-tabs{ margin-top:8px; border-top:1px solid var(--pp-line); }
  .eg-tabs__nav{ display:none; }
  .js-on .eg-tab,.js-on .eg-tab.is-active{ display:block; border-bottom:1px solid var(--pp-line); }
  .eg-tab__head{ display:flex; align-items:center; justify-content:space-between; width:100%; min-height:56px; padding:0; border:0; background:none; font-family:var(--f-ui); font-size:17px; font-weight:700; color:var(--pp-ink); cursor:pointer; text-align:left; }
  .eg-tab__head svg{ transition:transform .2s; flex:0 0 auto; }
  .eg-tab.is-open .eg-tab__head svg{ transform:rotate(180deg); }
  .js-on .eg-tab__body{ display:none; }
  .js-on .eg-tab.is-open .eg-tab__body{ display:block; }
  .eg-tab__body{ padding:0 0 20px; }
  .eg-rich{ font-size:16px; }
  .eg-spec th{ width:45%; }
  .single-product .related{ margin-top:8px; padding-top:32px; }
  .single-product .related > h2{ font-size:24px; margin-bottom:20px; }
  .single-product .related ul.products{ grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px 12px!important; }
  /* The Add to cart bar takes the bottom of the screen on this page */
  .single-product .eg-dock{ display:none; }
  .eg-stickybar{ display:flex; align-items:center; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:150; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:#fff; box-shadow:0 -4px 18px rgba(26,27,24,.12); transform:translateY(110%); visibility:hidden; transition:transform .2s ease,visibility .2s; }
  .eg-stickybar.is-on{ transform:none; visibility:visible; }
  .eg-stickybar img{ width:44px; height:44px; object-fit:cover; border-radius:6px; flex:0 0 44px; }
  .eg-stickybar__info{ flex:1; min-width:0; display:flex; flex-direction:column; font-family:var(--f-ui); }
  .eg-stickybar__name{ font-size:13px; line-height:1.3; color:var(--pp-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .eg-stickybar__price{ font-size:16px; line-height:1.3; font-weight:700; color:var(--pp-ink); }
  .eg-stickybar__btn{ flex:0 0 auto; min-height:46px; padding:0 18px; border:0; border-radius:8px; background:var(--pp-forest); color:#fff; font-family:var(--f-ui); font-size:15px; font-weight:700; cursor:pointer; }
  body.single-product .eg-footer-dawn{ padding-bottom:66px; }
}
