/* Shop (/products/), category and product pages — values measured from the old
   WooCommerce/Elementor templates. Breakpoints follow Elementor: tablet <=1024, phone <=767. */

/* ---------- shared "Add to Inquiry" button ---------- */
.add-to-inquiry { margin: 0; }
.inq-btn {
    display: flex;
    align-items: center;
    width: 100%;
    border: 0;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 15px;
    cursor: pointer;
}
.inq-btn-icon { flex: none; width: 15px; height: 15px; }
.inq-btn-text { flex: 1; text-align: center; }
.inq-btn-sm { padding: 12px 24px; border-radius: 3px; background: #39508a; }
.inq-btn-sm .inq-btn-icon { margin-right: 5px; }
.inq-btn-lg { padding: 16px 30px; border-radius: 6px; background: #3858a2; }
.inq-btn-lg .inq-btn-icon { margin-right: 10px; }

/* ---------- shop / category hero ---------- */
.shop-hero {
    position: relative;
    padding: 110px 10px 10px;
    background: url("../../img/products/shop-banner.400779390207.jpg") center / cover no-repeat;
    text-align: center;
}
.shop-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .21) 0%, #fff 100%);
}
.shop-hero h1 {
    position: relative;
    max-width: 1120px;
    margin: 0 auto;
    font-size: 70px;
    font-weight: 700;
    line-height: 1;
    color: var(--gray);
}

/* ---------- product grid ---------- */
.shop-main { max-width: 1200px; margin: 100px auto; padding: 10px; }
.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 20px 5px;
}
.shop-card { padding: 10px 30px; }
.shop-card-img { display: block; margin-bottom: 10px; }
.shop-card-img img { width: 100%; max-width: 300px; height: auto; margin: 0 auto; }
.shop-card-cat { margin-bottom: 10px; font-size: 12px; line-height: 1.857; text-align: center; }
.shop-card-cat a { color: var(--teal); }
.shop-card-cat a:hover { color: #fff; }
.shop-card-title {
    margin-bottom: 10px;
    color: #2e9b94;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    text-shadow: 3px 3px 5px rgba(0, 0, 0, .3);
}

/* ---------- product page ---------- */
.pd-top, .pd-info, .pd-related { max-width: 1140px; margin: 0 auto; }
.pd-top { display: flex; align-items: flex-start; margin-top: 50px; }
.pd-gallery { width: 50%; padding: 20px; }
.pd-summary { width: 50%; padding: 30px; }

.pd-main { position: relative; margin-bottom: 1em; }
.pd-gallery-inner { margin-bottom: 2em; }
.pd-slide { display: none; }
.pd-slide.is-active { display: block; }
.pd-slide img { width: 100%; height: auto; }
.pd-zoom {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #000;
    cursor: pointer;
}
.pd-zoom svg { width: 20px; height: 20px; }
.pd-thumbs { display: flex; flex-wrap: wrap; list-style: none; }
.pd-thumbs li { width: calc((100% - 3em) / 4); margin: 0 1em 1em 0; }
.pd-thumbs li:nth-child(4n) { margin-right: 0; }
.pd-thumb { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; opacity: .5; }
.pd-thumb:hover, .pd-thumb.is-active { opacity: 1; }
.pd-thumb img { width: 100%; height: auto; }

.pd-crumb {
    margin-bottom: 36px;
    color: #7a7a7a;
    font-family: "Merriweather", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
}
.pd-title {
    margin-bottom: 45px;
    color: var(--gray);
    font-family: "Archivo Narrow", sans-serif;
    font-size: 50px;
    font-weight: 400;
    line-height: 60px;
    text-transform: capitalize;
}
.pd-intro { margin-bottom: 20px; }
.pd-short {
    margin-bottom: 20px;
    padding-top: 30px;
    font-family: "Merriweather", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
}
.pd-summary .add-to-inquiry { margin-bottom: 40px; }
.pd-desc h3 { color: var(--gray); font-size: 23px; font-weight: 700; line-height: 1.4; }
.pd-desc ul { margin: 0 0 1.5em 3em; list-style: none; }

.pd-info { display: flex; }
.pd-attrs, .pd-extras { width: 50%; padding: 30px; }
.pd-h4 { margin-bottom: 20px; color: var(--gray); font-size: 19px; font-weight: 700; line-height: 1; }
.pd-attr-table {
    width: 100%;
    margin-bottom: 1.618em;
    border-collapse: separate;
    border-spacing: 0;
    border-top: 1px dotted rgba(0, 0, 0, .1);
    line-height: 1.5;
}
.pd-attr-table th, .pd-attr-table td {
    border-right: 1px solid rgba(0, 0, 0, .1);
    border-bottom: 1px dotted rgba(0, 0, 0, .1);
    text-align: left;
    vertical-align: top;
}
.pd-attr-table th { width: 150px; padding: 8px; font-weight: 700; }
.pd-attr-table td { font-style: italic; }
.pd-attr-table td p { padding: 8px 0; }
.pd-attr-table tr:nth-child(even) th, .pd-attr-table tr:nth-child(even) td { background: rgba(0, 0, 0, .024); }
.pd-term { color: var(--teal); }
.pd-extra-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pd-extra-grid a { display: block; padding: 10px; }
.pd-extra-grid img { width: 100%; height: auto; }

.pd-related { padding: 20px; }
.pd-related-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 40px 20px;
    list-style: none;
}
.pd-related-img img { width: 100%; height: auto; margin-bottom: .8em; }
.pd-related-cat { display: block; margin-bottom: .5em; font-size: .85em; line-height: 1.3; opacity: .6; }
.pd-related-title { margin-bottom: .5em; color: var(--gray); font-size: 1em; font-weight: 700; line-height: 1.3; }

/* ---------- lightbox (product photos, surface / packing samples) ---------- */
body.lb-open { overflow: hidden; }
.lb {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .85);
}
.lb[hidden], .lb [hidden] { display: none; }
.lb-figure { margin: 0; text-align: center; }
.lb-img { max-width: calc(100vw - 120px); max-height: calc(100vh - 120px); width: auto; height: auto; margin: 0 auto; }
.lb-caption { position: absolute; left: 44px; right: 44px; bottom: 14px; color: #ccc; font-size: 14px; line-height: 1.4; }
.lb-counter { position: absolute; top: 14px; left: 14px; color: #fff; font-size: 13px; opacity: .75; }
.lb button {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    background: none;
    color: #fff;
    cursor: pointer;
    opacity: .75;
}
.lb button:hover { opacity: 1; }
.lb button svg { width: 22px; height: 22px; }
.lb-close { top: 0; right: 0; }
.lb-prev { left: 0; top: calc(50% - 22px); }
.lb-next { right: 0; top: calc(50% - 22px); }

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
    .shop-hero { padding: 60px; }
    .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .pd-top { margin-top: 0; }
    .pd-gallery, .pd-summary { padding: 30px; }
    .pd-info { flex-direction: column-reverse; }
    .pd-attrs, .pd-extras { width: 100%; }
    .pd-related { padding: 30px; }
    .pd-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* ---------- phone ---------- */
@media (max-width: 767px) {
    /* the old theme shrank body text to 85.5% on phones */
    .shop-main, .pd { font-size: 13.68px; line-height: 1.857; }
    .shop-hero { padding: 40px; }
    .shop-hero h1 { font-size: 33px; }
    .shop-grid { grid-template-columns: minmax(0, 1fr); }

    .pd-top { flex-direction: column; }
    .pd-gallery { width: 100%; padding: 0; }
    .pd-summary { width: 100%; padding: 20px; }
    .pd-extras { padding: 0; }
    .pd-extras .pd-h4 { text-align: center; }
    .pd-h4-packing { padding-top: 20px; }
    .pd-extra-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pd-related { padding: 20px; }
    .pd-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lb-img { max-width: 100vw; }
}
