/* =========================================================================
 * Divii AI Solutions Catalog — template skin for WooCommerce shop + product.
 * Applies the catalog template's visual language (Pretendard font, #4740E3
 * indigo, mist background, 20px cards, category + "Base price" labels) on top
 * of the existing catalog markup. Scoped to .wc-catalog / .dq-single so the
 * site header & footer are left untouched.
 * ====================================================================== */

/* ---- Pretendard (template font) ---- */
@font-face{font-family:"Pretendard";font-weight:400;src:url("../fonts/Pretendard-Regular.otf");font-display:swap}
@font-face{font-family:"Pretendard";font-weight:500;src:url("../fonts/Pretendard-Medium.otf");font-display:swap}
@font-face{font-family:"Pretendard";font-weight:600;src:url("../fonts/Pretendard-SemiBold.otf");font-display:swap}
@font-face{font-family:"Pretendard";font-weight:700;src:url("../fonts/Pretendard-Bold.otf");font-display:swap}
@font-face{font-family:"Pretendard";font-weight:800;src:url("../fonts/Pretendard-ExtraBold.otf");font-display:swap}

/* ---- type + palette (catalog areas only) ---- */
.wc-catalog,.wc-catalog *,.dq-single,.dq-single *{
  font-family:"Pretendard",-apple-system,"Malgun Gothic",sans-serif;
}
.wc-catalog{background:#EFF0F7;}

/* recolour accents to the template indigo (#4740E3) */
.divii-quote-btn{background:#4740E3;}
.divii-quote-btn:hover{background:#3E27CC;}
.wc-catalog ul.products li.product .price,
.wc-catalog ul.products li.product .price .woocommerce-Price-amount,
.dq-single__cat,.dq-single__cat a,
.dq-single__crumbs a,.dq-single__meta li a,
.dq-related__price{color:#4740E3 !important;}
.dq-single__desc h2{border-bottom-color:#4740E3;}
.wc-sidebar__title{border-bottom-color:#4740E3;}

/* ---- shop hero + toolbar + filter pills + section header (template) ---- */
/* No horizontal overflow from full-bleed bands. */
.wc-catalog{overflow-x:hidden;}
/* Keep the theme's header clearance so the purple hero sits BELOW the
   (transparent, overlaying) site header — otherwise the header looks blue. */
.wc-shop{padding-top:100px !important;}
/* Centre + pad the content on BOTH shop and single (theme's .containerXL is
   1854px wide with no margins, which made pages look full-width). */
.wc-catalog .containerXL{
  max-width:1180px !important;
  margin-left:auto;margin-right:auto;
  padding-left:28px;padding-right:28px;
  width:100%;box-sizing:border-box;
}

.dv-hero{background:#4740E3;color:#fff;position:relative;overflow:hidden;padding:56px 0 60px;}
.dv-hero__blob{position:absolute;width:340px;height:340px;border-radius:50%;background:#fff;opacity:.06;right:-90px;bottom:-150px;pointer-events:none;}
.dv-hero__eyebrow{display:inline-block;border:2px solid #fff;border-radius:100px;padding:8px 18px;font-size:13.5px;font-weight:600;margin-bottom:22px;}
.dv-hero__title{font-size:clamp(34px,5.5vw,60px);font-weight:800;letter-spacing:-.025em;line-height:1.02;margin:0;color:#fff;}
.dv-hero__lead{margin-top:18px;font-size:clamp(15px,1.8vw,19px);max-width:640px;opacity:.95;color:#fff;}
.dv-hero__stats{display:flex;gap:44px;margin-top:34px;flex-wrap:wrap;}
.dv-stat .n{font-size:30px;font-weight:800;letter-spacing:-.02em;}
.dv-stat .l{font-size:13px;opacity:.8;margin-top:2px;}

.dv-toolbar{background:#EFF0F7;padding:20px 0 14px;border-bottom:1px solid #e2e2ee;}
.dv-toolbar__inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.dv-search{display:flex;align-items:center;background:#fff;border:1.5px solid #cfcfe0;border-radius:100px;padding:2px 4px 2px 16px;flex:1;min-width:240px;max-width:420px;}
.dv-search:focus-within{border-color:#4740E3;}
.dv-search svg{width:16px;height:16px;flex:none;stroke:#4C4C4C;}
.dv-search input{border:0;outline:0;background:transparent;flex:1;font-family:inherit;font-size:14px;padding:9px 10px;color:#181818;}
.dv-search button{border:0;background:#4740E3;color:#fff;border-radius:100px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;}
.dv-search button:hover{background:#3E27CC;}
.dv-sortwrap{margin-left:auto;}
.dv-sortwrap .woocommerce-ordering{margin:0;}
.dv-sortwrap select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234C4C4C' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 14px center;border:1.5px solid #cfcfe0;border-radius:100px;padding:9px 38px 9px 16px;font-family:inherit;font-size:13.5px;font-weight:600;color:#181818;cursor:pointer;}

.dv-filterbar{padding:18px 0 4px;background:#EFF0F7;}
.dv-filterbar__inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dv-fpill{border:1.5px solid #cfcfe0;background:#fff;border-radius:100px;padding:8px 17px;font-size:13.5px;font-weight:600;color:#4C4C4C;text-decoration:none;transition:.15s;}
.dv-fpill:hover{border-color:#4740E3;color:#4740E3;}
.dv-fpill.on{background:#181818;border-color:#181818;color:#fff;}
.dv-fcount{margin-left:auto;font-size:13px;color:#4C4C4C;}

.dv-sec{display:flex;align-items:baseline;gap:16px;margin:36px 0 18px;}
.dv-sec__num{font-size:15px;font-weight:800;color:#4740E3;}
.dv-sec h2{font-size:24px;font-weight:800;letter-spacing:-.01em;color:#181818;}
.dv-noresults{padding:40px 0;color:#4C4C4C;}

/* ---- shop cards -> template look ---- */
.wc-catalog ul.products li.product{
  border:0 !important;
  border-radius:20px;
  box-shadow:0 6px 20px rgba(24,24,24,.05);
}
.wc-catalog ul.products li.product:hover{
  box-shadow:0 18px 44px rgba(71,64,227,.16);
  transform:translateY(-6px);
}
.wc-catalog ul.products li.product a img{border-bottom:1px solid #edeef5;}

/* category label above the product name (added via PHP hook) */
.dq-loop__cat{
  padding:16px 18px 0;
  font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:#4740E3;
}
.wc-catalog ul.products li.product .woocommerce-loop-product__title{
  padding-top:2px;font-size:18px;font-weight:800;letter-spacing:-.01em;
}

/* "Base price" label above the price (cards + single) */
.wc-catalog ul.products li.product .price{padding-top:2px !important;}
.wc-catalog ul.products li.product .price::before,
.dq-single__price::before{
  content:"기본가";
  display:block;font-size:11px;font-weight:600;letter-spacing:0;
  text-transform:none;color:#6a6a6a;margin-bottom:2px;
}
.wc-catalog ul.products li.product .price{font-size:22px !important;font-weight:800 !important;}

/* ---- single product -> template polish ---- */
.dq-single__media img{border-radius:20px;border:0;box-shadow:0 10px 34px rgba(24,24,24,.08);}
.dq-single__title{letter-spacing:-.02em;}
.dq-single__price{font-size:34px;}
.dq-single__cta .divii-quote-btn{border-radius:100px;}

/* reseller line above the card button (template) */
.wc-catalog ul.products li.product .dq-loop__reseller{
  padding:10px 18px 0;margin-top:auto;
  font-size:12px;color:#6a6a6a;line-height:1.45;
}
.wc-catalog ul.products li.product .dq-loop__reseller b{color:#4740E3;font-weight:700;}
.wc-catalog ul.products li.product .divii-quote-btn--loop{margin-top:10px;}

/* single-product tags (dynamic product_tag terms) */
.dq-single__tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px;}
.dq-single__tags .dq-tag{font-size:11px;border:1.4px solid #181818;border-radius:100px;padding:4px 11px;font-weight:500;color:#181818;}

/* empty-price fallback ("price on request") */
.dq-poa{font-size:22px;font-weight:800;color:#181818;}
.dq-single__price .dq-poa{font-size:34px;}

/* related cards — fixed 3-up so items don't stretch to full width */
.dq-single__related .dq-related__grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
@media(max-width:820px){.dq-single__related .dq-related__grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}
@media(max-width:520px){.dq-single__related .dq-related__grid{grid-template-columns:1fr !important;}}
.dq-related__card{border:0;border-radius:20px;box-shadow:0 6px 20px rgba(24,24,24,.05);}
.dq-related__card:hover{box-shadow:0 18px 44px rgba(71,64,227,.16);transform:translateY(-6px);}
.dq-related__media img{aspect-ratio:1/1;object-fit:cover;}
