/* Product catalogue and single-product skin, scoped to dq_product routes. */
.post-type-archive-dq_product,
.tax-dq_product_cat,
.single-dq_product { background:#fff; color:var(--dq-text,#111827); }
.dq-shop-container { width:min(1320px,calc(100% - 30px)); margin-inline:auto; }
.dq-shop-eyebrow { margin:0 0 8px; color:var(--dq-primary); font-size:12px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }

.dq-shop-titlebar { min-height:82px; border-bottom:1px solid var(--dq-border,#e5e7eb); background:#fff; }
.dq-shop-titlebar__inner { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:82px; }
.dq-shop-titlebar .dq-breadcrumb { margin:0 0 5px; color:var(--dq-muted,#64748b); font-size:12px; }
.dq-shop-titlebar h1 { margin:0; color:var(--dq-text,#111827); font-size:clamp(22px,2vw,28px); line-height:1.25; }
.dq-shop-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:16px; }
.dq-shop-toolbar p { margin:0; color:var(--dq-muted,#64748b); font-size:14px; white-space:nowrap; }
.dq-shop-sort select { min-width:210px; height:42px; margin:0; padding:0 38px 0 14px; border:1px solid var(--dq-border,#d9e0e7); border-radius:0; background-color:#fff; color:var(--dq-text,#111827); font:inherit; }
.dq-shop-filter-button { display:none; height:42px; padding:0 18px; border:1px solid var(--dq-primary); background:#fff; color:var(--dq-primary); font-size:13px; font-weight:750; text-transform:uppercase; }

.dq-shop-layout { display:grid; grid-template-columns:330px minmax(0,1fr); gap:15px; align-items:start; padding-top:30px; padding-bottom:42px; }
.dq-shop-filter { position:sticky; top:92px; padding:0 15px 30px; }
.dq-shop-filter__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; padding-bottom:11px; border-bottom:2px solid var(--dq-primary); }
.dq-shop-filter__head h2 { margin:0; font-size:17px; line-height:1.35; text-transform:uppercase; }
.dq-shop-filter__head button { display:none; width:36px; height:36px; border:0; background:transparent; color:inherit; font-size:28px; line-height:1; cursor:pointer; }
.dq-shop-filter__nav { display:grid; }
.dq-shop-filter__nav a { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:43px; padding:8px 4px; border-bottom:1px solid var(--dq-border,#e5e7eb); color:var(--dq-text,#111827); font-size:13.5px; font-weight:650; transition:padding .2s,color .2s; }
.dq-shop-filter__nav a:hover,
.dq-shop-filter__nav a.is-active { padding-left:9px; color:var(--dq-primary); }
.dq-shop-filter__nav a.is-child { padding-left:18px; color:var(--dq-muted,#64748b); font-weight:500; }
.dq-shop-filter__nav a.is-child:hover,
.dq-shop-filter__nav a.is-child.is-active { padding-left:23px; color:var(--dq-primary); }
.dq-shop-filter__nav small { min-width:25px; padding:2px 7px; border-radius:999px; background:var(--dq-primary-soft,#f4f7fa); text-align:center; }
.dq-shop-filter__help { margin-top:22px; padding:18px; background:var(--dq-primary-deep,var(--dq-primary)); color:#fff; }
.dq-shop-filter__help strong { display:block; margin-bottom:7px; font-size:17px; }
.dq-shop-filter__help p { margin:0 0 14px; color:rgba(255,255,255,.82); font-size:13px; line-height:1.55; }
.dq-shop-filter__help a { display:inline-flex; min-height:38px; align-items:center; padding:0 14px; background:#fff; color:var(--dq-primary-deep,var(--dq-primary)); font-size:13px; font-weight:750; }
.dq-shop-main { min-width:0; padding:0 15px; }
.dq-shop-intro { margin:0 0 24px; padding:15px 18px; border-radius:5px; background:#fff; box-shadow:0 3px 45px rgba(43,43,43,.12); }
.dq-shop-intro h2 { margin:0 0 8px; font-size:clamp(22px,2.2vw,30px); line-height:1.25; }
.dq-shop-intro > p:last-child { margin:0; color:var(--dq-muted,#64748b); line-height:1.65; }

.dq-shop-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-inline:-7px; }
.dq-shop-card { min-width:0; padding:0 7px 20px; text-align:center; }
.dq-shop-card__media { position:relative; display:block; overflow:hidden; aspect-ratio:1/1; background:#fff; }
.dq-shop-card__media img { display:block; width:100%; height:100%; object-fit:contain; background:#fff; transition:filter .6s,opacity .6s,transform .6s,box-shadow .3s; }
.dq-shop-card__media:hover img { transform:scale(1.035); filter:saturate(1.04); }
.dq-shop-card__empty { display:grid; width:100%; height:100%; place-items:center; padding:20px; background:#f6f7f8; color:var(--dq-muted,#64748b); font-size:12px; }
.dq-shop-card__body { padding:16px 10px 0; }
.dq-shop-card h2 { min-height:46px; margin:1px 0 4px; font-size:14.4px; font-weight:700; line-height:1.6; }
.dq-shop-card h2 a { color:var(--dq-text,#111827); }
.dq-shop-card h2 a:hover { color:var(--dq-primary); }
.dq-shop-card__price { margin:0; color:var(--dq-primary); font-size:14.4px; font-weight:750; line-height:1.2; }
.dq-shop-more { display:flex; justify-content:center; padding:14px 0 0; }
.dq-shop-more .dq-load-more { min-width:154px; min-height:43px; border:1px solid var(--dq-primary); border-radius:0; background:var(--dq-primary); color:#fff; font-weight:750; }
.dq-shop-more .dq-load-more:hover { background:var(--dq-primary-hover,var(--dq-primary)); }
.dq-shop-seo { padding:52px 0 70px; background:#f7f8fa; }
.dq-shop-seo__inner { max-width:1040px; padding:32px clamp(20px,4vw,55px); border-top:3px solid var(--dq-primary); background:#fff; box-shadow:0 3px 34px rgba(43,43,43,.08); }
.dq-shop-seo__inner > h2:first-of-type { margin-top:0; }
.dq-shop-filter-backdrop { position:fixed; z-index:9998; inset:0; background:rgba(8,18,28,.55); }

/* Product detail. */
.dq-product-page { padding:30px 0 70px; background:#fff; }
.dq-product-hero { display:grid; grid-template-columns:minmax(0,6fr) minmax(0,7fr); align-items:start; }
.dq-product-gallery,
.dq-product-summary { min-width:0; padding:0 15px 30px; }
.dq-product-gallery__stage { position:relative; display:grid; overflow:hidden; width:100%; min-height:0; aspect-ratio:4/5; place-items:center; background:#fff; }
.dq-product-gallery__zoom { position:relative; display:block; width:100%; height:100%; padding:0; overflow:hidden; border:0; background:#fff; cursor:zoom-in; }
.dq-product-gallery__zoom:focus-visible { outline:3px solid var(--dq-primary); outline-offset:-3px; }
.dq-product-gallery__image { display:block; width:100%; height:100%; max-height:none; object-fit:contain; opacity:1; transition:opacity .25s ease; }
.dq-product-gallery__image.is-changing { opacity:.18; }
.dq-product-gallery__zoom-hint { position:absolute; right:14px; bottom:14px; display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.9); border-radius:50%; background:rgba(255,255,255,.9); color:var(--dq-primary); font-size:28px; font-weight:700; line-height:1; box-shadow:0 7px 20px rgba(15,23,42,.16); opacity:.9; transition:transform .2s ease,opacity .2s ease; }
.dq-product-gallery__zoom:hover .dq-product-gallery__zoom-hint { transform:scale(1.08); opacity:1; }
.dq-product-gallery__empty { display:grid; width:100%; min-height:350px; place-items:center; background:#f6f7f8; color:var(--dq-muted,#64748b); }
.dq-product-gallery__thumbs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:10px; }
.dq-product-gallery__thumbs button { overflow:hidden; padding:3px; border:1px solid var(--dq-border,#dfe4e8); background:#fff; cursor:pointer; }
.dq-product-gallery__thumbs button.is-active { border:2px solid var(--dq-primary); }
.dq-product-gallery__thumbs img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; }
.dq-product-summary { padding-left:30px; }
.dq-product-summary .dq-breadcrumb { margin:0 0 20px; color:var(--dq-muted,#64748b); font-size:12px; }
.dq-product-summary h1 { margin:0 0 14px; font-size:27.2px; font-weight:700; line-height:1.3; }
.dq-product-summary h1::after { display:block; width:34px; height:3px; margin-top:13px; background:var(--dq-primary); content:""; }
.dq-product-summary__price { margin:0 0 16px; color:var(--dq-primary); font-size:22px; font-weight:750; }
.dq-product-summary__excerpt { color:var(--dq-muted,#5d6876); line-height:1.65; }
.dq-product-summary__excerpt p { margin:0 0 20px; }
.dq-product-conversion { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr); gap:14px 18px; margin-top:4px; padding:18px; border:1px solid #f2d6d8; border-radius:12px; background:linear-gradient(135deg,#fff 0%,#fff8f8 100%); box-shadow:0 12px 32px rgba(126,0,10,.07); }
.dq-product-action { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; }
.dq-product-action__button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 17px; border:1px solid rgba(0,0,0,.05); border-radius:7px; background:var(--dq-primary); color:#fff; font-size:14px; font-weight:750; text-align:center; text-transform:uppercase; transition:background .3s,box-shadow .3s,transform .3s; }
.dq-product-action__button:hover { transform:translateY(-1px); background:var(--dq-primary-hover,var(--dq-primary)); color:#fff; box-shadow:0 8px 18px rgba(126,0,10,.16); }
.dq-product-action__button--call { border-color:var(--dq-primary); background:#fff; color:var(--dq-primary); }
.dq-product-action__button--call:hover { background:var(--dq-primary-soft,#fff1f2); color:var(--dq-primary-hover,var(--dq-primary)); }
.dq-product-direct-contact { display:grid; gap:10px; margin:0; }
.dq-product-direct-contact a,
.dq-product-direct-contact button { display:flex; width:100%; min-height:48px; align-items:center; justify-content:space-between; gap:10px; padding:8px 13px; border:1px solid #f2d6d8; border-left:3px solid var(--dq-primary); border-radius:7px; background:#fff; color:inherit; font:inherit; font-size:13px; text-align:left; cursor:pointer; }
.dq-product-direct-contact button:hover { border-color:var(--dq-primary-border,#f2d6d8); background:var(--dq-primary-soft,#fff8f8); }
.dq-product-direct-contact a:focus-visible,
.dq-product-direct-contact button:focus-visible { outline:2px solid var(--dq-primary); outline-offset:3px; }
.dq-product-direct-contact span { color:var(--dq-muted,#64748b); }
.dq-product-specs { margin:28px 0 24px; border-top:1px solid var(--dq-border,#e5e7eb); }
.dq-product-specs div { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:9px 0; border-bottom:1px solid var(--dq-border,#e5e7eb); font-size:13px; }
.dq-product-specs dt { color:var(--dq-muted,#64748b); }
.dq-product-specs dd { margin:0; font-weight:700; }
.dq-product-summary__meta { grid-column:1/-1; margin:0; padding-top:12px; border-top:1px solid #f2d6d8; color:var(--dq-muted,#64748b); font-size:12.8px; line-height:1.6; }
.dq-product-summary__meta span { color:var(--dq-text,#111827); font-weight:700; }
.dq-product-summary__meta a { color:var(--dq-primary); }

.dq-product-content { padding:0 15px 15px; }
.dq-product-tabs { display:flex; gap:30px; border-bottom:1px solid var(--dq-border,#e5e7eb); }
.dq-product-tabs button { position:relative; margin:0; padding:14px 0 12px; border:0; background:transparent; color:var(--dq-muted,#64748b); font:inherit; font-size:13px; font-weight:750; text-transform:uppercase; cursor:pointer; }
.dq-product-tabs button[aria-selected="true"] { color:var(--dq-text,#111827); }
.dq-product-tabs button[aria-selected="true"]::after { position:absolute; right:0; bottom:-1px; left:0; height:3px; background:var(--dq-primary); content:""; }
.dq-product-tabs button:focus-visible { outline:2px solid var(--dq-primary); outline-offset:4px; }
.dq-product-tab-panel[hidden] { display:none; }
.dq-product-description { padding:28px 0 18px; font-size:16px; line-height:1.65; }
.dq-product-description > :first-child { margin-top:0; }
.dq-product-description p,
.dq-product-description li { text-align:justify; text-align-last:left; text-justify:inter-word; overflow-wrap:break-word; }
.dq-product-description figure,
.dq-product-description .wp-block-image { max-width:100%; margin:30px auto; text-align:center; }
.dq-product-description img { display:block; width:auto; max-width:100%; height:auto; margin-inline:auto; object-fit:contain; }
.dq-product-description figcaption { margin-top:9px; color:var(--dq-muted,#64748b); font-size:13px; line-height:1.5; text-align:center; }
.dq-product-info-panel { display:grid; grid-template-columns:1.1fr repeat(3,1fr); margin:18px 0 24px; border:1px solid var(--dq-border,#e5e7eb); }
.dq-product-info-panel h2 { display:flex; align-items:center; margin:0; padding:18px; background:var(--dq-primary-deep,var(--dq-primary)); color:#fff; font-size:18px; }
.dq-product-info-panel > div { display:flex; flex-direction:column; justify-content:center; gap:4px; min-height:82px; padding:13px 18px; border-left:1px solid var(--dq-border,#e5e7eb); }
.dq-product-info-panel span { color:var(--dq-muted,#64748b); font-size:12px; }
.dq-product-info-panel strong { font-size:14px; }
.dq-product-related { padding:25px 15px 0; border-top:1px solid var(--dq-border,#e5e7eb); }
.dq-product-related > h2 { margin:0 0 22px; font-size:20px; text-transform:uppercase; }
.dq-product-related .dq-shop-grid { gap:18px; margin-inline:0; }
.dq-product-related .dq-shop-card { overflow:hidden; margin:0 0 20px; padding:0 0 17px; border:1px solid rgba(126,0,10,.1); border-radius:16px; background:#fff; box-shadow:0 7px 24px rgba(31,41,55,.08); transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease; }
.dq-product-related .dq-shop-card:hover { transform:translateY(-4px); border-color:rgba(126,0,10,.2); box-shadow:0 14px 34px rgba(31,41,55,.13); }
.dq-product-related .dq-shop-card__media { border-radius:15px 15px 0 0; }
.dq-product-related .dq-shop-card__body { padding:13px 14px 0; }
.dq-product-related .dq-shop-card h2 { margin-top:0; }
.dq-product-lightbox { position:fixed; z-index:10080; inset:0; display:grid; place-items:center; padding:24px; }
.dq-product-lightbox[hidden] { display:none; }
.dq-product-lightbox__backdrop { position:absolute; inset:0; background:rgba(255,255,255,.95); backdrop-filter:blur(8px); }
.dq-product-lightbox__dialog { position:relative; z-index:1; display:flex; width:fit-content; max-width:calc(100vw - 48px); height:auto; max-height:calc(100vh - 48px); align-items:center; justify-content:center; outline:0; background:transparent; }
.dq-product-lightbox__image { display:block; width:auto; max-width:100%; height:auto; max-height:calc(100vh - 48px); object-fit:contain; background:transparent; filter:drop-shadow(0 18px 34px rgba(15,23,42,.15)); }
.dq-product-lightbox__close { position:fixed; z-index:2; top:18px; right:18px; display:grid; width:48px; height:48px; place-items:center; padding:0; border:1px solid #f2d6d8; border-radius:50%; background:#fff; color:var(--dq-primary); font-size:32px; line-height:1; box-shadow:0 8px 24px rgba(15,23,42,.13); cursor:pointer; }
.dq-product-lightbox__close:hover,
.dq-product-lightbox__close:focus-visible { outline:0; background:var(--dq-primary); color:#fff; }
.dq-product-quote-modal { position:fixed; z-index:10060; inset:0; display:grid; place-items:center; padding:24px; }
.dq-product-quote-modal[hidden] { display:none; }
.dq-product-quote-modal__backdrop { position:absolute; inset:0; background:rgba(15,23,42,.72); backdrop-filter:blur(3px); }
.dq-product-quote-modal__dialog { position:relative; z-index:1; width:min(620px,100%); max-height:calc(100vh - 48px); overflow:auto; padding:30px; border-radius:16px; background:#fff; box-shadow:0 30px 80px rgba(15,23,42,.28); }
.dq-product-quote-modal__close { position:absolute; top:12px; right:12px; display:grid; width:40px; height:40px; place-items:center; padding:0; border:0; border-radius:50%; background:var(--dq-primary-soft,#fff1f2); color:var(--dq-primary); font-size:27px; line-height:1; cursor:pointer; }
.dq-product-quote-modal__close:hover { background:var(--dq-primary); color:#fff; }
.dq-product-quote-modal__eyebrow { margin:0 48px 7px 0; color:var(--dq-primary); font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.dq-product-quote-modal h2 { margin:0 48px 8px 0; font-size:clamp(24px,4vw,32px); line-height:1.2; }
.dq-product-quote-modal h2 + p { margin:0 0 22px; color:var(--dq-muted,#64748b); line-height:1.6; }
.dq-product-quote-modal .dqc-contact-success { margin:0 0 16px; padding:12px 14px; border:1px solid #86efac; border-radius:8px; background:#f0fdf4; color:#166534; font-weight:700; }
.dq-product-quote-modal .dqc-contact-form { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; gap:14px; }
.dq-product-quote-modal .dqc-contact-form p { margin:0; }
.dq-product-quote-modal .dqc-contact-form p:has(textarea),
.dq-product-quote-modal .dqc-contact-form p:has(input[type="number"]),
.dq-product-quote-modal .dqc-contact-form button { grid-column:1/-1; }
.dq-product-quote-modal .dqc-contact-form label { display:block; color:var(--dq-text,#111827); font-size:13px; }
.dq-product-quote-modal .dqc-contact-form label > span { display:inline; color:var(--dq-primary); }
.dq-product-quote-modal .dqc-contact-form input,
.dq-product-quote-modal .dqc-contact-form textarea { display:block; min-height:46px; margin-top:7px; border-color:var(--dq-border,#d9e0e7); background:#fff; }
.dq-product-quote-modal .dqc-contact-form textarea { min-height:82px; resize:vertical; }
.dq-product-quote-modal .dqc-contact-form input:focus,
.dq-product-quote-modal .dqc-contact-form textarea:focus { outline:0; border-color:var(--dq-primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--dq-primary) 14%,transparent); }
.dq-product-quote-modal .dqc-contact-form button { min-height:50px; border:0; border-radius:8px; font-weight:750; cursor:pointer; }
.dq-filter-open,
.dq-quote-open,
.dq-lightbox-open { overflow:hidden; }

@media (max-width:1023px) {
    .dq-shop-layout { grid-template-columns:1fr; }
    .dq-shop-main { padding-inline:0; }
    .dq-shop-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .dq-shop-filter-button { display:inline-flex; align-items:center; }
    .dq-shop-filter { position:fixed; z-index:9999; top:0; bottom:0; left:0; width:min(340px,88vw); overflow:auto; padding:24px 20px; background:#fff; box-shadow:12px 0 34px rgba(0,0,0,.2); transform:translateX(-105%); transition:transform .28s ease; }
    .dq-shop-filter.is-open { transform:translateX(0); }
    .dq-shop-filter__head button { display:block; }
    .dq-product-summary { padding-left:15px; }
    .dq-product-conversion { grid-template-columns:1fr; }
    .dq-product-info-panel { grid-template-columns:1fr 1fr; }
    .dq-product-info-panel > div { border-top:1px solid var(--dq-border,#e5e7eb); }
}

@media (max-width:600px) {
    .single-dq_product .dq-floating-contact { display:none !important; }
    .dq-shop-container { width:min(100% - 20px,1320px); }
    .dq-shop-titlebar__inner { align-items:flex-start; flex-direction:column; gap:14px; padding-block:18px; }
    .dq-shop-titlebar h1 { font-size:22px; }
    .dq-shop-toolbar { width:100%; justify-content:space-between; flex-wrap:wrap; gap:8px; }
    .dq-shop-toolbar p { order:3; width:100%; }
    .dq-shop-sort { flex:1; }
    .dq-shop-sort select { width:100%; min-width:0; }
    .dq-shop-layout { padding-top:20px; }
    .dq-shop-intro { padding:15px; }
    .dq-shop-intro h2 { font-size:21px; }
    .dq-shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-inline:-5px; }
    .dq-shop-card { padding:0 5px 20px; }
    .dq-shop-card__body { padding:12px 5px 0; }
    .dq-shop-card h2 { min-height:0; font-size:13.2px; line-height:1.45; }
    .dq-shop-card__price { font-size:13px; }
    .dq-shop-seo { padding:36px 0 50px; }
    .dq-shop-seo__inner { padding:23px 18px; }
    .dq-product-page { padding-top:20px; }
    .dq-product-hero { grid-template-columns:1fr; width:100%; }
    .dq-product-gallery,
    .dq-product-summary { padding-inline:15px; }
    .dq-product-gallery__stage,
    .dq-product-gallery__empty { min-height:0; }
    .dq-product-summary h1 { font-size:22px; }
    .dq-product-conversion { padding:14px; }
    .dq-product-action { gap:8px; }
    .dq-product-action__button { flex:1; min-width:140px; font-size:13px; }
    .dq-product-direct-contact { display:grid; }
    .dq-product-content { padding-inline:15px; }
    .dq-product-tabs { gap:20px; overflow-x:auto; }
    .dq-product-info-panel { grid-template-columns:1fr; }
    .dq-product-info-panel > div { border-left:0; }
    .dq-product-related { padding-inline:5px; }
    .dq-product-related > h2 { padding-inline:10px; font-size:18px; }
    .dq-product-related .dq-shop-grid { gap:12px; }
    .dq-product-related .dq-shop-card { margin-bottom:12px; border-radius:13px; }
    .dq-product-related .dq-shop-card__media { border-radius:12px 12px 0 0; }
    .dq-product-related .dq-shop-card__body { padding:10px 9px 0; }
    .dq-product-lightbox { padding:10px; }
    .dq-product-lightbox__dialog { max-width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
    .dq-product-lightbox__image { max-height:calc(100dvh - 20px); }
    .dq-product-lightbox__close { top:12px; right:12px; width:44px; height:44px; }
    .dq-product-quote-modal { align-items:end; padding:10px; }
    .dq-product-quote-modal__dialog { width:100%; max-height:calc(100vh - 20px); padding:24px 18px; border-radius:16px 16px 10px 10px; }
    .dq-product-quote-modal .dqc-contact-form { grid-template-columns:1fr; }
    .dq-product-quote-modal .dqc-contact-form p,
    .dq-product-quote-modal .dqc-contact-form button { grid-column:auto; }
}
