/*
 * HF Product Templates — storefront. All selectors are scoped under .hfpt-.
 * Colours follow the theme; override the custom properties below in the child theme.
 */

.hfpt {
    --hfpt-accent: #b08d57;
    /* Gold accent. */
    --hfpt-accent-contrast: #fff;
    --hfpt-border: rgba(0, 0, 0, .1);
    --hfpt-muted-bg: #f7f5f2;
    --hfpt-radius: 6px;
    --hfpt-gap: 24px;
    --hfpt-section-space: 56px;
}


/* Sections wrapper ------------------------------------------------------- */

.hfpt-sections {
    display: flex;
    flex-direction: column;
    gap: var(--hfpt-section-space);
    padding: var(--hfpt-section-space) 0;
}

.hfpt-sections.hfpt-width--wide {
    max-width: 1600px;
    margin-inline: auto;
}

.hfpt-sections.hfpt-width--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-inline: 24px;
    box-sizing: border-box;
}

.hfpt-sections--feature_cards {
    padding-bottom: 0;
}

.hfpt-section {
    margin: 0;
}

.hfpt-section__title {
    margin: 0 0 16px;
    text-align: center;
}

.hfpt-section__intro {
    max-width: 720px;
    margin: -4px auto 24px;
    text-align: center;
}

.hfpt-rich-text> :last-child {
    margin-bottom: 0;
}


/* Feature cards ----------------------------------------------------------- */

.hfpt-cards {
    display: grid;
    grid-template-columns: repeat(var(--hfpt-cols-mobile, 2), minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 1025px) {
    .hfpt-cards {
        grid-template-columns: repeat(var(--hfpt-cols-desktop, 4), minmax(0, 1fr));
        gap: var(--hfpt-gap);
    }
}

.hfpt-card {
    display: flex;
    flex-direction: column;
    margin: 0;
    background: var(--hfpt-muted-bg);
    border-radius: var(--hfpt-radius);
    overflow: hidden;
}

.hfpt-card__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.hfpt-card__content {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.hfpt-card__title {
    margin: 0;
    font-size: 1.05em;
    transition: all 400ms ease-in-out;
}

.hfpt-card__body {
    margin: 0;
}


/* Image, title and description share one link. */

.hfpt-card__inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
    text-decoration: none;
}

a.hfpt-card__inner:hover .hfpt-card__title,
a.hfpt-card__inner:focus-visible .hfpt-card__title {
    color: var(--hfpt-accent);
    /* text-decoration: underline; */
    text-underline-offset: 3px;
}

a.hfpt-card__inner:hover .hfpt-card__media img {
    /* opacity: .9; */
}

a.hfpt-card__inner:focus-visible {
    outline: 2px solid var(--hfpt-accent);
    outline-offset: -2px;
    /* .hfpt-card clips overflow */
}


/* Tabs -------------------------------------------------------------------- */

.hfpt-tabs__list {
    display: flex;
    justify-content: center;
    gap: 4px 24px;
    margin: 0 0 24px;
    border-bottom: 1px solid var(--hfpt-border);
    overflow-x: auto;
    scrollbar-width: thin;
}

.hfpt-tabs__list[hidden] {
    display: none;
}

.hfpt-tabs__tab {
    flex: 0 0 auto;
    margin: 0 0 -1px;
    padding: 12px 2px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
    opacity: .7;
}

.hfpt-tabs__tab:hover,
.hfpt-tabs__tab.is-active {
    opacity: 1;
}

.hfpt-tabs__tab.is-active {
    border-bottom-color: var(--hfpt-accent);
}

.hfpt-tabs__tab:focus-visible,
.hfpt-tabs__panel:focus-visible {
    outline: 2px solid var(--hfpt-accent);
    outline-offset: 2px;
}

.hfpt-tabs__panel+.hfpt-tabs__panel {
    margin-top: 32px;
}

.hfpt-tabs.is-enhanced .hfpt-tabs__panel+.hfpt-tabs__panel {
    margin-top: 0;
}

.hfpt-tabs.is-enhanced .hfpt-tabs__panel-title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.hfpt-tabs__panel-title {
    margin: 0 0 12px;
}

.hfpt-tab__media {
    margin-top: 16px;
}

.hfpt-tab__media img {
    max-width: 100%;
    height: auto;
    border-radius: var(--hfpt-radius);
}


/* Details table ----------------------------------------------------------- */

.hfpt-details__table {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    border-collapse: collapse;
}

.hfpt-details__table th,
.hfpt-details__table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--hfpt-border);
    text-align: start;
    vertical-align: top;
}

.hfpt-details__table th {
    width: 35%;
    font-weight: 600;
}


/* Why you'll love it ------------------------------------------------------- */

.hfpt-checklist {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px 32px;
    max-width: 900px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.hfpt-checklist li {
    position: relative;
    margin: 0;
    padding-inline-start: 30px;
}

.hfpt-checklist li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: .2em;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--hfpt-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}


/* Guides (colour chart, length) ------------------------------------------- */

.hfpt-guide__inner {
    display: grid;
    gap: var(--hfpt-gap);
    align-items: center;
}

.hfpt-guide.has-media .hfpt-guide__inner {
    grid-template-columns: 1fr;
}

@media (min-width: 769px) {
    .hfpt-guide.has-media .hfpt-guide__inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.hfpt-guide__media img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: var(--hfpt-radius);
}


/* CTA ----------------------------------------------------------------------- */

.hfpt-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 32px;
    padding: 28px 32px;
    border: 1px solid var(--hfpt-accent);
    border-radius: var(--hfpt-radius);
    background: var(--hfpt-muted-bg);
}

.hfpt-cta .hfpt-section__title {
    margin-bottom: 6px;
    text-align: start;
}

.hfpt-cta__content p {
    margin: 0;
}

.hfpt-cta__button.button {
    background: var(--hfpt-accent);
    color: var(--hfpt-accent-contrast);
}


/* Related products: the theme loop provides the product grid. */

.hfpt-related>.hfpt-section__title {
    margin-bottom: 24px;
}


/* Trust bar (inside the theme's summary column) ------------------------------ */

.hfpt-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin: 16px 0;
    padding: 12px 0;
    border-top: 1px solid var(--hfpt-border);
    border-bottom: 1px solid var(--hfpt-border);
    list-style: none;
}

.hfpt-trust__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: .92em;
}

.hfpt-trust__icon {
    flex: 0 0 auto;
    color: var(--hfpt-accent);
}


/* Gallery on the right (theme two-column summary row, desktop only). */

@media (min-width: 1025px) {
    .hfpt-gallery-right .product-image-summary-inner>.product-images {
        order: 2;
    }
}

@media (max-width: 768px) {
    .hfpt {
        --hfpt-section-space: 36px;
        --hfpt-gap: 16px;
    }
    .hfpt-tabs__list {
        justify-content: flex-start;
    }
    .hfpt-cta {
        padding: 20px;
    }
    .hfpt-details__table th,
    .hfpt-details__table td {
        padding: 10px 8px;
    }
}


/* Marketing blocks (Phase 6) ---------------------------------------------- */

.hfpt-trust__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.hfpt-trust__item--whatsapp .hfpt-trust__icon {
    color: #128c4b;
}

.hfpt-giveaway.has-media {
    flex-wrap: nowrap;
}

.hfpt-giveaway__media {
    flex: 0 0 180px;
}

.hfpt-giveaway__media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--hfpt-radius);
}

.hfpt-giveaway .hfpt-cta__content {
    flex: 1;
}

.hfpt-giveaway__terms {
    margin-top: 8px !important;
    font-size: .85em;
}

@media (max-width: 768px) {
    .hfpt-giveaway.has-media {
        flex-wrap: wrap;
    }
    .hfpt-giveaway__media {
        flex-basis: 100%;
    }
}


/* Two-column product layout (Product Page Templates) ----------------------
 * Column 1 = the theme's WooCommerce gallery, column 2 = the summary column.
 * body.hfpt-layout carries --hfpt-gallery-width (template setting).
 */

.hfpt-field> :last-child {
    margin-bottom: 0;
}

.hfpt-field .product_meta.hfpt-meta {
    margin: 0;
    padding: 0;
    border: 0;
}


/* WoodMart (.product-image-summary-inner holds .product-images + .summary). */

@media (min-width: 769px) {
    body.hfpt-layout .product-image-summary-inner.wd-grid-g {
        grid-template-columns: minmax(0, calc(var(--hfpt-gallery-width, 50%) - var(--wd-gap, 30px) / 2)) minmax(0, 1fr);
    }
    body.hfpt-layout .product-image-summary-inner.wd-grid-g>.product-images,
    body.hfpt-layout .product-image-summary-inner.wd-grid-g>.summary {
        grid-column: auto;
    }
    body.hfpt-gallery-right .product-image-summary-inner>.product-images {
        order: 2;
    }
    body.hfpt-gallery-right .product-image-summary-inner>.summary {
        order: 1;
    }
    body.hfpt-sticky-columns .product-image-summary-inner {
        align-items: start;
    }
    body.hfpt-sticky-columns .product-image-summary-inner>.product-images,
    body.hfpt-sticky-columns .product-image-summary-inner>.summary {
        position: sticky;
        top: var(--hfpt-sticky-top, 30px);
    }
    body.admin-bar.hfpt-sticky-columns .product-image-summary-inner>.product-images,
    body.admin-bar.hfpt-sticky-columns .product-image-summary-inner>.summary {
        top: calc(var(--hfpt-sticky-top, 30px) + 32px);
    }
}

@media (max-width: 768px) {
    body.hfpt-mobile-info-first .product-image-summary-inner>.summary {
        order: -1;
    }
}


/* Other themes: WooCommerce's floated gallery + summary. */

@media (min-width: 769px) {
    body.hfpt-layout:not(.theme-woodmart) div.product div.images.woocommerce-product-gallery {
        width: calc(var(--hfpt-gallery-width, 50%) - 2%);
    }
    body.hfpt-layout:not(.theme-woodmart) div.product div.summary {
        width: calc(100% - var(--hfpt-gallery-width, 50%) - 2%);
    }
    body.hfpt-gallery-right:not(.theme-woodmart) div.product div.images.woocommerce-product-gallery {
        float: right;
    }
    body.hfpt-gallery-right:not(.theme-woodmart) div.product div.summary {
        float: left;
    }
    body.hfpt-sticky-columns:not(.theme-woodmart) div.product div.summary {
        position: sticky;
        top: var(--hfpt-sticky-top, 30px);
    }
}

@media (max-width: 768px) {
    body.hfpt-layout:not(.theme-woodmart) div.product div.images.woocommerce-product-gallery,
    body.hfpt-layout:not(.theme-woodmart) div.product div.summary {
        float: none;
        width: 100%;
    }
    body.hfpt-mobile-info-first:not(.theme-woodmart) div.product {
        display: flex;
        flex-direction: column;
    }
    body.hfpt-mobile-info-first:not(.theme-woodmart) div.product div.summary {
        order: -1;
    }
}


/* Product page design (Product Page Templates) --------------------------------
 * Colours / fonts are custom properties: override them in the child theme, e.g.
 * body.hfpt-layout { --hfpt-gold: #a8823c; --hfpt-title-font: "Playfair Display", serif; }
 */

body.hfpt-layout {
    --hfpt-gold: #b8924a;
    --hfpt-gold-dark: #9c7a3a;
    --hfpt-ink: #1b1b1b;
    --hfpt-soft: #6b6b6b;
    --hfpt-line: #e6e1d8;
    --hfpt-cream: #f8f3ea;
    --hfpt-title-font: Georgia, "Times New Roman", serif;
    --hfpt-radius-sm: 4px;
}


/* Column 2 */

body.hfpt-layout .summary-inner>.hfpt-field {
    margin-bottom: 14px;
}

body.hfpt-layout .hfpt-brand {
    margin: 0;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--hfpt-soft);
}

body.hfpt-layout .hfpt-brand a {
    color: inherit;
    text-decoration: none;
}

body.hfpt-layout .hfpt-brand a:hover {
    color: var(--hfpt-gold);
}

body.hfpt-layout .hfpt-field--title .product_title {
    margin: 0;
    font-family: var(--hfpt-title-font);
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 400;
    line-height: 1.2;
    text-transform: none;
    color: var(--hfpt-ink);
}

body.hfpt-layout .summary-inner>.hfpt-field--brand {
    margin-bottom: 4px;
}

body.hfpt-layout .summary-inner>.hfpt-field--title {
    margin-bottom: 4px;
}

body.hfpt-layout .hfpt-subtitle {
    margin: 0;
    font-size: 15px;
    color: #3d3d3d;
}

body.hfpt-layout .hfpt-rating {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--hfpt-soft);
}

body.hfpt-layout .hfpt-rating .star-rating {
    margin: 0;
    color: #f2a516;
}

body.hfpt-layout .hfpt-rating__average {
    color: var(--hfpt-ink);
    font-weight: 600;
}

body.hfpt-layout .hfpt-rating__count {
    color: var(--hfpt-soft);
    text-decoration: none;
}

body.hfpt-layout .hfpt-field--price .price {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    color: var(--hfpt-ink);
}

body.hfpt-layout .hfpt-field--price .price del {
    font-size: .65em;
    font-weight: 400;
    color: var(--hfpt-soft);
}

body.hfpt-layout .hfpt-field--short_description {
    font-size: 14px;
    line-height: 1.6;
    color: #444;
}

body.hfpt-layout .hfpt-field--short_description p:last-child {
    margin-bottom: 0;
}

body.hfpt-layout .hfpt-texture {
    margin: 0;
    font-size: 14px;
}

body.hfpt-layout .hfpt-texture__label {
    font-weight: 600;
}


/* Information boxes (benefits list) */

.hfpt-info-boxes__heading {
    margin: 0 0 8px;
    font-weight: 600;
}

.hfpt-info-boxes {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.hfpt-info-box {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
}

.hfpt-info-box__icon {
    display: inline-flex;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--hfpt-gold, #b8924a);
    border-radius: 50%;
    overflow: hidden;
}

.hfpt-info-box__img {
    /* width: 20px;
    height: 20px; */
    object-fit: contain;
}

.hfpt-info-box__title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--hfpt-ink, #1b1b1b);
}

.hfpt-info-box__text {
    margin: 0;
    font-size: 14px;
    color: var(--hfpt-soft, #6b6b6b);
}

.hfpt-info-box__link {
    font-size: 13px;
    color: var(--hfpt-gold, #b8924a);
}


/* Variations: labels, colour swatches, buttons */

body.hfpt-layout .variations_form table.variations {
    width: 100%;
    margin: 0 0 6px;
    border: 0;
}

body.hfpt-layout .variations_form table.variations tr {
    display: block;
    margin: 0 0 16px;
}

body.hfpt-layout .variations_form table.variations th,
body.hfpt-layout .variations_form table.variations td {
    display: block;
    padding: 0;
    border: 0;
    text-align: start;
}

body.hfpt-layout .variations_form table.variations th.label {
    margin-bottom: 10px;
}

body.hfpt-layout .variations_form table.variations th.label label {
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
    color: var(--hfpt-ink);
}

body.hfpt-layout .variations_form .reset_variations {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
}

.hfpt-swatch-field__select {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.hfpt-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hfpt-swatch {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-width: 52px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: var(--hfpt-ink, #1b1b1b);
    font: inherit;
    cursor: pointer;
}

.hfpt-swatch__media {
    display: block;
    width: 48px;
    height: 48px;
    padding: 2px;
    border: 1px solid var(--hfpt-line, #e6e1d8);
    border-radius: 50%;
    transition: border-color .15s, box-shadow .15s;
}

.hfpt-swatch__img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.hfpt-swatches--colour .hfpt-swatch__label {
    max-width: 64px;
    font-size: 11px;
    line-height: 1.25;
    text-align: center;
    color: var(--hfpt-soft, #6b6b6b);
}

.hfpt-swatch.is-selected .hfpt-swatch__media {
    border-color: var(--hfpt-gold, #b8924a);
    box-shadow: 0 0 0 2px var(--hfpt-gold, #b8924a);
}

.hfpt-swatches--buttons .hfpt-swatch,
.hfpt-swatch--text {
    min-width: 56px;
    padding: 9px 14px;
    border: 1px solid var(--hfpt-line, #e6e1d8);
    border-radius: var(--hfpt-radius-sm, 4px);
    background: #fff;
    font-size: 14px;
}

.hfpt-swatches--buttons .hfpt-swatch .hfpt-swatch__media {
    display: none;
}

.hfpt-swatches--buttons .hfpt-swatch.is-selected,
.hfpt-swatch--text.is-selected {
    border-color: var(--hfpt-ink, #1b1b1b);
    box-shadow: inset 0 0 0 1px var(--hfpt-ink, #1b1b1b);
}

.hfpt-swatch:hover .hfpt-swatch__media,
.hfpt-swatches--buttons .hfpt-swatch:hover {
    border-color: var(--hfpt-gold, #b8924a);
}

.hfpt-swatch:focus-visible {
    outline: 2px solid var(--hfpt-gold, #b8924a);
    outline-offset: 3px;
}

.hfpt-swatch.is-unavailable {
    opacity: .35;
}

.hfpt-swatch.is-unavailable .hfpt-swatch__label {
    text-decoration: line-through;
}


/* Themes style every button (WoodMart: grey box, uppercase, fixed height): undo that for the swatches. */

.hfpt-swatches button.hfpt-swatch {
    min-height: 0;
    height: auto;
    letter-spacing: normal;
    line-height: 1.25;
    text-transform: none;
    box-shadow: none;
    font-weight: 400;
}

.hfpt-swatches--colour button.hfpt-swatch,
.hfpt-swatches--colour button.hfpt-swatch:hover,
.hfpt-swatches--colour button.hfpt-swatch:focus {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    color: var(--hfpt-ink, #1b1b1b);
}

.hfpt-swatches--buttons button.hfpt-swatch,
.hfpt-swatches--buttons button.hfpt-swatch:hover,
.hfpt-swatches--buttons button.hfpt-swatch:focus {
    padding: 9px 14px;
    border: 1px solid var(--hfpt-line, #e6e1d8);
    border-radius: var(--hfpt-radius-sm, 4px);
    background: #fff;
    color: var(--hfpt-ink, #1b1b1b);
    font-size: 14px;
}

.hfpt-swatches--buttons button.hfpt-swatch:hover {
    border-color: var(--hfpt-gold, #b8924a);
}

.hfpt-swatches--buttons button.hfpt-swatch.is-selected {
    border-color: var(--hfpt-ink, #1b1b1b);
    box-shadow: inset 0 0 0 1px var(--hfpt-ink, #1b1b1b);
}

.hfpt-swatches--colour button.hfpt-swatch {
    width: 64px;
    min-width: 0;
}

.hfpt-swatches--colour button.hfpt-swatch .hfpt-swatch__label {
    max-width: 100%;
    font-size: 11px;
    color: var(--hfpt-soft, #6b6b6b);
    overflow-wrap: anywhere;
}

.hfpt-swatches--colour button.hfpt-swatch.is-selected .hfpt-swatch__label {
    color: var(--hfpt-ink, #1b1b1b);
    font-weight: 600;
}


/* Guide links + popups */

.hfpt-guide-link {
    margin: 10px 0 0;
    font-size: 13px;
    color: var(--hfpt-ink, #1b1b1b);
}

.hfpt-guide-link__button {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.hfpt-guide-link__button:hover {
    color: var(--hfpt-gold, #b8924a);
}

html.hfpt-modal-open {
    overflow: hidden;
}

.hfpt-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.hfpt-modal[hidden] {
    display: none;
}

.hfpt-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .55);
}

.hfpt-modal__dialog {
    position: relative;
    width: min(760px, 100%);
    max-height: calc(100vh - 32px);
    overflow: auto;
    padding: 32px 24px 24px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
}

.hfpt-modal__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 28px;
    line-height: 1;
    color: #333;
    cursor: pointer;
}

.hfpt-modal__close:focus-visible {
    outline: 2px solid var(--hfpt-gold, #b8924a);
}

.hfpt-modal .hfpt-section__title {
    margin-top: 0;
}


/* Quantity + Add to basket */

body.hfpt-layout .summary form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 0;
}

body.hfpt-layout .summary form.variations_form {
    display: block;
}

body.hfpt-layout .summary .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
}

body.hfpt-layout .summary form.cart .quantity {
    margin: 0;
}

body.hfpt-layout .summary form.cart .single_add_to_cart_button,
body.hfpt-layout .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    flex: 1 1 200px;
    width: auto;
    min-height: 46px;
    border-radius: var(--hfpt-radius-sm);
    background: var(--hfpt-gold);
    color: #fff;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

body.hfpt-layout .summary form.cart .single_add_to_cart_button:hover,
body.hfpt-layout .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover {
    background: var(--hfpt-gold-dark);
    color: #fff;
}

body.hfpt-layout .summary form.cart .single_add_to_cart_button.disabled {
    opacity: .55;
}


/* Trust row + WhatsApp card */

body.hfpt-layout .summary .hfpt-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 16px;
    margin: 14px 0 0;
    padding: 0;
    border: 0;
    background: none;
    list-style: none;
}

body.hfpt-layout .summary .hfpt-trust__item {
    font-size: 12px;
    color: #444;
}

body.hfpt-layout .summary .hfpt-trust__icon {
    width: 18px;
    height: 18px;
    color: var(--hfpt-ink);
}

.hfpt-whatsapp {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid #cfe9d6;
    border-radius: 6px;
    background: #f1faf3;
    color: var(--hfpt-ink, #1b1b1b);
    text-decoration: none;
}

.hfpt-whatsapp:hover {
    border-color: #25d366;
    color: var(--hfpt-ink, #1b1b1b);
}

.hfpt-whatsapp__icon {
    display: inline-flex;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #25d366;
    color: #fff;
}

.hfpt-whatsapp__text {
    display: flex;
    flex: 1;
    flex-direction: column;
    font-size: 13px;
    line-height: 1.4;
}

.hfpt-whatsapp__text strong {
    font-size: 14px;
}

.hfpt-whatsapp__arrow {
    font-size: 26px;
    line-height: 1;
    color: #555;
}


/* Share buttons (plugin's own) */


/* Thin rule above, small spaced label, soft cream round buttons that turn gold on hover.
   `button.` selectors also undo the theme's button style (grey box, uppercase, fixed height). */

.hfpt-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    padding-top: 16px;
    border-top: 1px solid var(--hfpt-line, #e6e1d8);
}

.hfpt-share__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--hfpt-soft, #6b6b6b);
}

.hfpt-share__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hfpt-share__item {
    margin: 0;
}

.hfpt-share__item[hidden] {
    display: none;
}

.hfpt-share .hfpt-share__btn,
.hfpt-share button.hfpt-share__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0;
    min-height: 0;
    height: 36px;
    margin: 0;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--hfpt-cream, #f7f2ea);
    box-shadow: none;
    color: var(--hfpt-ink, #1b1b1b);
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .02em;
    text-decoration: none;
    text-transform: none;
    cursor: pointer;
    transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}

.hfpt-share .hfpt-share__btn--icon {
    width: 36px;
    padding: 0;
}

.hfpt-share .hfpt-share__btn:hover,
.hfpt-share button.hfpt-share__btn:hover {
    border-color: var(--hfpt-gold, #b8924a);
    background: var(--hfpt-gold, #b8924a);
    color: #fff;
    transform: translateY(-1px);
}

.hfpt-share .hfpt-share__btn:focus-visible,
.hfpt-share button.hfpt-share__btn:focus-visible {
    outline: 2px solid var(--hfpt-gold, #b8924a);
    outline-offset: 2px;
}

.hfpt-share button.hfpt-share__btn.is-done,
.hfpt-share button.hfpt-share__btn.is-done:hover {
    border-color: #b9dcc6;
    background: #eaf6ee;
    color: #2e7d4f;
    transform: none;
}

.hfpt-share__icon {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

@media (prefers-reduced-motion: reduce) {
    .hfpt-share .hfpt-share__btn {
        transition: none;
    }
    .hfpt-share .hfpt-share__btn:hover {
        transform: none;
    }
}


/* Notice blocks (free delivery) and fold-out panels */

.hfpt-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--hfpt-line, #e6e1d8);
    border-radius: 6px;
}

.hfpt-notice__icon {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.hfpt-notice__heading {
    margin: 0;
    font-weight: 600;
}

.hfpt-notice__text p {
    margin: 2px 0 0;
    font-size: 13px;
}

.hfpt-notice__link {
    font-size: 13px;
    color: var(--hfpt-gold, #b8924a);
}

.hfpt-accordion {
    border-top: 1px solid var(--hfpt-line, #e6e1d8);
    border-bottom: 1px solid var(--hfpt-line, #e6e1d8);
}

.hfpt-accordion__summary {
    padding: 12px 0;
    font-weight: 600;
    cursor: pointer;
}

.hfpt-accordion__body {
    padding-bottom: 12px;
    font-size: 14px;
}


/* Below the summary: cards, tabs, details + why-you-will-love-it, related */

body.hfpt-layout .hfpt-sections .hfpt-section__title {
    font-family: inherit;
    font-size: 20px;
    text-align: start;
}

body.hfpt-layout .hfpt-feature-cards .hfpt-card {
    background: none;
    border-radius: 0;
    text-align: center;
}

body.hfpt-layout .hfpt-feature-cards .hfpt-card__media img {
    aspect-ratio: 4 / 3;
    border-radius: var(--hfpt-radius-sm);
}

body.hfpt-layout .hfpt-feature-cards .hfpt-card__content {
    padding: 12px 6px 0;
    gap: 4px;
}

body.hfpt-layout .hfpt-feature-cards .hfpt-card__title {
    font-size: 18px;
    font-weight: 600;
}

body.hfpt-layout .hfpt-feature-cards .hfpt-card__body {
    font-size: 16px;
    color: var(--hfpt-soft);
}

body.hfpt-layout .hfpt-tabs__list {
    justify-content: flex-start;
    gap: 4px 40px;
    border-bottom-color: var(--hfpt-line);
}

body.hfpt-layout .hfpt-tabs__tab {
    padding-bottom: 10px;
    font-size: 16px;
}

body.hfpt-layout .hfpt-tabs__tab.is-active {
    border-bottom-color: var(--hfpt-gold);
    font-weight: 600;
}

body.hfpt-layout .hfpt-details__table {
    max-width: none;
    margin: 0;
    border: 1px solid var(--hfpt-line);
    font-size: 14px;
}

body.hfpt-layout .hfpt-details__table th,
body.hfpt-layout .hfpt-details__table td {
    padding: 8px 14px;
    border-color: var(--hfpt-line);
}

body.hfpt-layout .hfpt-details__table th {
    width: 38%;
    background: #fbfaf7;
    font-weight: 500;
}

body.hfpt-layout .hfpt-love {
    padding: 24px 28px;
    background: var(--hfpt-cream);
    border-radius: 6px;
}

body.hfpt-layout .hfpt-love .hfpt-section__title {
    font-family: var(--hfpt-title-font);
    font-weight: 400;
}

body.hfpt-layout .hfpt-checklist li::before {
    color: var(--hfpt-gold);
}

@media (min-width: 1025px) {
    body.hfpt-layout .hfpt-sections {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 40px;
    }
    body.hfpt-layout .hfpt-sections>* {
        grid-column: 1 / -1;
    }
    /* Product details and the why-you-will-love-it box side by side when they follow each other. */
    body.hfpt-layout .hfpt-sections>.hfpt-details:has(+.hfpt-love) {
        grid-column: 1 / 2;
    }
    body.hfpt-layout .hfpt-sections>.hfpt-details+.hfpt-love {
        grid-column: 2 / 3;
        align-self: start;
    }
}

body.hfpt-layout .hfpt-related .button,
body.hfpt-layout .hfpt-related .add_to_cart_button {
    border-radius: var(--hfpt-radius-sm);
    background: var(--hfpt-gold);
    color: #fff;
    text-transform: uppercase;
}

body.hfpt-layout .hfpt-related .button:hover,
body.hfpt-layout .hfpt-related .add_to_cart_button:hover {
    background: var(--hfpt-gold-dark);
    color: #fff;
}


/* Gallery: thumbnails beside the image get a light frame like the design */

body.hfpt-thumbs-left .wd-gallery-thumb .wd-carousel-item img {
    border: 1px solid var(--hfpt-line);
    border-radius: var(--hfpt-radius-sm);
}

body.hfpt-thumbs-left .wd-gallery-thumb .wd-carousel-item.wd-active img {
    border-color: var(--hfpt-gold);
}

@media (max-width: 768px) {
    body.hfpt-layout .summary .hfpt-trust {
        justify-content: flex-start;
    }
    .hfpt-swatch__media {
        width: 44px;
        height: 44px;
    }
    .hfpt-modal__dialog {
        padding: 28px 16px 16px;
    }
}

.hfpt-swatch__media--empty {
    background: linear-gradient(135deg, #f4f1ec, #e2dcd2);
    background-clip: content-box;
}