/* KeyEase Child - single product v2 (product pages only, after ke.css).
   The product sits on a band tinted by its family; the buy box is a white card on that band.
   Prices, form, schema and plugin boxes are only restyled. */

body.ke-p2{ --fam-tint:#eaf2ff; --fam-tint2:#d9e7ff; --fam-deep:#0d47a1; }
/* the theme sets overflow:hidden on body, which stops position:sticky; clip keeps the same horizontal cut without that */
body.ke-p2{ overflow-x:clip!important; overflow-y:visible!important; }
.ke-sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:0 0 24px; }
.ke-sec-head .ke-h2{ margin:0; }
.ke-sec-head .ke-link{ white-space:nowrap; }
body.ke-fam-office{ --fam-tint:#fff1e9; --fam-tint2:#ffe1d1; --fam-deep:#b23c10; }
body.ke-fam-server{ --fam-tint:#e7f4f1; --fam-tint2:#cfe9e3; --fam-deep:#0f6b62; }
body.ke-fam-other{ --fam-tint:#f1f3f8; --fam-tint2:#e2e7f1; --fam-deep:#0d47a1; }

/* ---------- product band ---------- */
.ke-redesign.single-product.ke-p2 .elementor-18198 > .elementor-section.elementor-element-2e7c3eef, .ke-p2 .elementor-element-2e7c3eef{ position:relative; isolation:isolate; padding:clamp(20px,3vw,44px) 0 clamp(28px,4vw,56px)!important; margin-bottom:clamp(32px,5vw,64px)!important;
  background:radial-gradient(50% 70% at 22% 40%, rgba(255,255,255,.85), transparent 70%), linear-gradient(160deg, var(--fam-tint) 0%, var(--fam-tint2) 100%)!important;
  box-shadow:0 0 0 100vmax var(--fam-tint); clip-path:inset(0 -100vmax); }
.ke-p2 .wd-single-breadcrumbs, .ke-p2 .elementor-element-7f7d02e3{ position:relative; z-index:2; }

/* gallery: the box on a white plate */
.ke-redesign.single-product.ke-p2 .elementor-element-5b5ff652 > .elementor-widget-wrap{ background:transparent!important; padding:0 clamp(0px,2vw,24px) 0 0!important; }
.ke-p2 .woocommerce-product-gallery__wrapper, .ke-p2 .wd-carousel-wrap{ border-radius:28px; }
.ke-p2 .woocommerce-product-gallery .wd-carousel-container, .ke-p2 .woocommerce-product-gallery .woocommerce-product-gallery__image{ background:transparent; }
.ke-p2 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper, .ke-p2 .woocommerce-product-gallery .wd-gallery-images{ background:#fff; border-radius:28px; padding:clamp(16px,3vw,40px); box-shadow:0 40px 70px -40px rgba(15,30,51,.45), 0 0 0 1px rgba(15,30,51,.04);
  animation:ke-p-rise 800ms cubic-bezier(.2,.7,.2,1) both; }
.ke-p2 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper img, .ke-p2 .woocommerce-product-gallery .wd-gallery-images img{ border-radius:14px!important; }
@keyframes ke-p-rise{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
.ke-p2 .woocommerce-product-gallery .wd-gallery-thumb .wd-carousel-item img, .ke-p2 .woocommerce-product-gallery .thumbnails img{ background:#fff; border-radius:12px; border:2px solid transparent; }
.ke-p2 .woocommerce-product-gallery .wd-gallery-thumb .wd-thumb-active img{ border-color:var(--fam-deep); }
.ke-p2 .elementor-element-e40f910 img{ max-width:170px; }

/* buy box */
.ke-redesign.single-product.ke-p2 .elementor-element-44c9e678 > .elementor-widget-wrap{ background:#fff!important; border-radius:28px!important; padding:clamp(20px,2.6vw,36px)!important; box-shadow:0 40px 70px -46px rgba(15,30,51,.5), 0 0 0 1px rgba(15,30,51,.05)!important; align-content:flex-start; }
.ke-p2 .product_title{ font-size:clamp(24px,2.3vw,32px)!important; margin-bottom:12px!important; text-wrap:balance; }
.ke-p2 .elementor-element-22f2b6f6 .ke-trust-grid{ display:none!important; }
.ke-p2 .elementor-element-22f2b6f6{ margin:0!important; }
.ke-pricebox{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin:6px 0 18px; }
.ke-pricebox .wd-single-price .price, .ke-pricebox .price{ margin:0!important; font-size:clamp(36px,3.4vw,46px)!important; color:var(--ke-ink)!important; letter-spacing:-.02em; }
.ke-pricebox__note{ font-size:14px; font-weight:600; color:var(--ke-muted); }
.ke-facts{ list-style:none; margin:0 0 22px; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ke-facts li{ display:flex; align-items:center; gap:12px; margin:0; padding:12px 14px; border-radius:16px; background:var(--ke-sky,#f4f8ff); font-size:13px; line-height:1.35; color:var(--ke-muted); }
.ke-facts b{ display:block; font-size:15px; font-weight:800; color:var(--ke-ink); }
.ke-facts .ke-ico{ width:36px; height:36px; padding:8px; border-radius:11px; background:#fff; color:var(--fam-deep); box-sizing:border-box; flex:none; box-shadow:0 6px 14px -10px rgba(15,30,51,.5); }

/* buttons: buy now first and full width, then quantity and add to cart */
.ke-p2 form.cart .wd-buy-now-btn{ order:0!important; flex:1 1 100%!important; min-height:60px!important; font-size:18px!important; box-shadow:0 18px 30px -18px rgba(13,71,161,.8); }
.ke-p2 form.cart .wd-buy-now-btn:hover{ filter:brightness(.92); }
.ke-p2 form.cart .quantity{ order:1; }
.ke-p2 form.cart .single_add_to_cart_button{ order:2; background:#fff!important; color:var(--ke-ink)!important; box-shadow:inset 0 0 0 1.5px var(--ke-line); }
.ke-p2 form.cart .single_add_to_cart_button:hover{ background:var(--ke-field)!important; }
.ke-p2 .elementor-element-4aa3aee1{ margin-top:6px!important; }
.ke-p2 .spopm-payment-icons{ gap:6px; }
.ke-p2 .spopm-payment-icons img{ width:38px!important; height:38px!important; margin-right:0!important; filter:saturate(.9); }

/* bundle offer */
.ke-offer{ display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:14px; margin:16px 0 4px; padding:12px 14px 12px 12px; border-radius:18px; text-decoration:none!important; color:var(--ke-ink)!important;
  background:linear-gradient(120deg, #fff 0%, var(--fam-tint) 100%); box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--fam-deep) 25%, transparent); transition:box-shadow 180ms ease, transform 180ms ease; }
.ke-offer:hover{ box-shadow:inset 0 0 0 2px var(--fam-deep); transform:translateY(-1px); }
.ke-offer__img{ width:72px; height:72px; border-radius:14px; background:#fff; overflow:hidden; }
.ke-offer__img img{ width:100%; height:100%; object-fit:contain; display:block; }
.ke-offer__text{ display:grid; gap:2px; min-width:0; }
.ke-offer__k{ font-size:13px; font-weight:700; color:var(--ke-ok); }
.ke-offer__n{ font-size:15px; font-weight:800; line-height:1.25; }
.ke-offer__p{ font-size:13px; color:var(--ke-muted); }
.ke-offer__p b{ font-size:15px; color:var(--ke-ink); font-variant-numeric:tabular-nums; }
.ke-offer__p s{ font-variant-numeric:tabular-nums; }
.ke-offer__save{ align-self:start; padding:6px 10px; border-radius:999px; background:var(--ke-ok); color:#fff; font-size:13px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* plugin boxes in the buy box: lighter */
.ke-p2 .ke-tb-notice, .ke-p2 .keyease-pfb-box{ background:var(--ke-field)!important; }
.ke-p2 .keyease-pfb-box{ margin-top:14px!important; }

/* ---------- description with a sticky buy card ---------- */
.ke-p2 .elementor-element-eb816ff{ width:100%!important; max-width:100%!important; flex:1 1 100%!important; }
.ke-desc{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(32px,4vw,64px); align-items:start; }
.ke-desc__main{ min-width:0; }
.ke-aside{ position:sticky; top:110px; }
.ke-aside__card{ display:grid; gap:10px; padding:20px; border-radius:24px; background:#fff; box-shadow:0 30px 60px -40px rgba(15,30,51,.45), 0 0 0 1px rgba(15,30,51,.06); }
.ke-aside__img{ display:block; border-radius:16px; background:var(--fam-tint); padding:14px; }
.ke-aside__img img{ display:block; width:100%; height:auto; max-height:200px; object-fit:contain; mix-blend-mode:multiply; }
.ke-aside__n{ font-size:16px; font-weight:800; line-height:1.3; color:var(--ke-ink); }
.ke-aside__p{ font-size:28px; font-weight:800; color:var(--ke-ink); font-variant-numeric:tabular-nums; line-height:1; }
.ke-aside__btn{ width:100%; min-height:52px; }
.ke-aside__list{ list-style:none; margin:4px 0 0; padding:0; display:grid; gap:8px; }
.ke-aside__list li{ display:flex; align-items:center; gap:10px; margin:0; font-size:14px; font-weight:600; color:var(--ke-muted); }
.ke-aside__list .ke-ico{ width:18px; height:18px; color:var(--fam-deep); }
@media (max-width:1024px){ .ke-desc{ grid-template-columns:1fr; } .ke-aside{ display:none; } }

/* ---------- how it works ---------- */
.ke-psteps{ margin:clamp(40px,6vw,80px) 0 0; }
.ke-psteps__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; counter-reset:ks; }
.ke-psteps__list li{ position:relative; margin:0; padding:24px; border-radius:24px; background:var(--fam-tint); counter-increment:ks; }
.ke-psteps__list li::after{ content:counter(ks); position:absolute; right:22px; top:16px; font:800 44px/1 var(--ke-font); color:color-mix(in srgb, var(--fam-deep) 18%, transparent); }
.ke-psteps__ico{ display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#fff; color:var(--fam-deep); margin-bottom:14px; box-shadow:0 8px 18px -12px rgba(15,30,51,.5); }
.ke-psteps__list h3{ font:800 19px/1.25 var(--ke-font)!important; margin:0 0 6px; color:var(--ke-ink); }
.ke-psteps__list p{ margin:0; font-size:15px; line-height:1.5; color:var(--ke-ink); }
@media (max-width:767px){ .ke-psteps__list{ grid-template-columns:1fr; } }

/* ---------- related licences ---------- */
.ke-prel{ margin:clamp(40px,6vw,80px) 0 clamp(32px,5vw,56px); }
.ke-prel__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.ke-prel__grid li{ margin:0; }
.ke-pcard{ display:grid; gap:6px; height:100%; padding:12px 12px 16px; border-radius:22px; background:#fff; text-decoration:none!important; box-shadow:0 0 0 1px rgba(15,30,51,.07); transition:box-shadow 200ms ease, transform 200ms ease; }
.ke-pcard:hover{ transform:translateY(-3px); box-shadow:0 24px 40px -28px rgba(15,30,51,.45), 0 0 0 1px rgba(15,30,51,.07); }
.ke-pcard__img{ display:block; border-radius:16px; background:var(--ke-sky,#f4f8ff); padding:12px; margin-bottom:6px; }
.ke-pcard__img img{ display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; mix-blend-mode:multiply; }
.ke-pcard__n{ padding:0 4px; font-size:15px; font-weight:700; line-height:1.3; color:var(--ke-ink); }
.ke-pcard__p{ padding:0 4px; font-size:18px; font-weight:800; color:var(--ke-accent); font-variant-numeric:tabular-nums; }
@media (max-width:900px){ .ke-prel__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } }

/* ---------- phones ---------- */
@media (max-width:767px){
  .ke-p2 .elementor-element-2e7c3eef{ padding-top:8px!important; }
  .ke-redesign.single-product.ke-p2 .elementor-element-5b5ff652 > .elementor-widget-wrap{ padding:0!important; }
  .ke-p2 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper, .ke-p2 .woocommerce-product-gallery .wd-gallery-images{ padding:14px; border-radius:22px; max-width:300px; margin:0 auto; }
  .ke-redesign.single-product.ke-p2 .elementor-element-44c9e678 > .elementor-widget-wrap{ margin-top:16px; border-radius:22px!important; padding:18px!important; }
  .ke-facts{ gap:8px; }
  .ke-facts li{ padding:10px; gap:10px; flex-direction:column; align-items:flex-start; }
  .ke-offer{ grid-template-columns:56px minmax(0,1fr); }
  .ke-offer__img{ width:56px; height:56px; }
  .ke-offer__save{ grid-column:2; justify-self:start; }
}
@media (prefers-reduced-motion:reduce){
  .ke-p2 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper, .ke-p2 .woocommerce-product-gallery .wd-gallery-images{ animation:none; }
  .ke-pcard, .ke-offer{ transition:none; }
}
