/**
 * =========================================================
 * GODAVARI HOME FOODS
 * MODERN SINGLE PRODUCT UI
 * =========================================================
 *
 * Connected to:
 * woocommerce/content-single-product.php
 *
 * Scope:
 * .ghf-single-product
 *
 * UI:
 * Premium / Modern / D2C Food Commerce
 * =========================================================
 */


/* =========================================================
   DESIGN TOKENS
   ========================================================= */

:root {
    --ghf-primary: #7A2E24;
    --ghf-primary-dark: #5E211A;
    --ghf-primary-soft: #F5E9E5;

    --ghf-dark: #241A16;
    --ghf-text: #403631;
    --ghf-muted: #756B63;

    --ghf-cream: #F8F3EA;
    --ghf-beige: #E9DDCC;
    --ghf-gold: #B8863B;

    --ghf-white: #FFFFFF;
    --ghf-surface: #FCFAF7;

    --ghf-border: #DED4C8;
    --ghf-border-light: #ECE5DC;

    --ghf-success: #28784D;
    --ghf-danger: #B42318;

    --ghf-radius-xs: 5px;
    --ghf-radius-sm: 8px;
    --ghf-radius-md: 12px;
    --ghf-radius-lg: 18px;
    --ghf-radius-xl: 24px;
    --ghf-radius-2xl: 30px;

    --ghf-shadow-xs:
        0 2px 8px rgba(36, 26, 22, 0.04);

    --ghf-shadow-sm:
        0 8px 24px rgba(36, 26, 22, 0.06);

    --ghf-shadow-md:
        0 16px 40px rgba(36, 26, 22, 0.08);

    --ghf-shadow-lg:
        0 25px 70px rgba(36, 26, 22, 0.12);

    --ghf-container: 1320px;

    --ghf-transition:
        180ms cubic-bezier(.2,.65,.25,1);

    --ghf-transition-slow:
        350ms cubic-bezier(.2,.65,.25,1);
}


/* =========================================================
   RESET / BASE
   ========================================================= */

.ghf-single-product {
    width: 100%;
    margin: 0;

    color: var(--ghf-text);
    background: var(--ghf-white);

    font-size: 16px;
    line-height: 1.65;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ghf-single-product *,
.ghf-single-product *::before,
.ghf-single-product *::after {
    box-sizing: border-box;
}

.ghf-single-product img {
    display: block;
    max-width: 100%;
    height: auto;
}

.ghf-single-product a {
    color: inherit;
    text-decoration: none;
}

.ghf-single-product button,
.ghf-single-product input,
.ghf-single-product select,
.ghf-single-product textarea {
    font: inherit;
}

.ghf-single-product button {
    cursor: pointer;
}

.ghf-single-product p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   CONTAINER
   ========================================================= */

.ghf-single-product .ghf-container {
    width: min(
        calc(100% - 64px),
        var(--ghf-container)
    );

    margin-inline: auto;
}


/* =========================================================
   BREADCRUMB
   ========================================================= */

.ghf-single-product .ghf-breadcrumb {
    padding: 20px 0 18px;

    color: var(--ghf-muted);

    font-size: 12px;
    line-height: 1.4;
}

.ghf-single-product .ghf-breadcrumb__inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.ghf-single-product .ghf-breadcrumb a {
    color: var(--ghf-muted);

    transition:
        color var(--ghf-transition);
}

.ghf-single-product .ghf-breadcrumb a:hover {
    color: var(--ghf-primary);
}

.ghf-single-product .ghf-breadcrumb__separator {
    opacity: .35;
}

.ghf-single-product .ghf-breadcrumb__current {
    color: var(--ghf-dark);
    font-weight: 600;
}


/* =========================================================
   PRODUCT HERO
   ========================================================= */

.ghf-single-product .ghf-product-hero {
    padding: 12px 0 96px;
}

.ghf-single-product .ghf-product-hero__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(400px, .92fr);

    gap: clamp(50px, 7vw, 105px);

    align-items: start;
}


/* =========================================================
   GALLERY
   ========================================================= */

.ghf-single-product .ghf-gallery {
    position: sticky;
    top: 28px;

    min-width: 0;
}

.ghf-single-product .ghf-gallery__main {
    position: relative;

    overflow: hidden;

    width: 100%;

    aspect-ratio: 1 / 1;

    background:
        radial-gradient(
            circle at 50% 45%,
            #fffdf9 0%,
            var(--ghf-cream) 70%
        );

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-2xl);

    box-shadow: var(--ghf-shadow-xs);
}

.ghf-single-product .ghf-gallery__main::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    border-radius: inherit;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.45);
}

.ghf-single-product .ghf-gallery__main img {
    width: 100%;
    height: 100%;

    object-fit: contain;

    transition:
        transform var(--ghf-transition-slow);
}

.ghf-single-product .ghf-gallery__main:hover img {
    transform: scale(1.025);
}


/* =========================================================
   SALE BADGE
   ========================================================= */

.ghf-single-product .ghf-sale-badge {
    position: absolute;
    z-index: 5;

    top: 20px;
    left: 20px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 32px;

    padding: 7px 13px;

    color: var(--ghf-white);
    background: var(--ghf-primary);

    border-radius: 999px;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .08em;
    line-height: 1;

    text-transform: uppercase;

    box-shadow: var(--ghf-shadow-sm);
}


/* =========================================================
   GALLERY THUMBNAILS
   ========================================================= */

.ghf-single-product .ghf-gallery__thumbs {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 11px;

    margin-top: 14px;
}

.ghf-single-product .ghf-gallery__thumb {
    position: relative;

    overflow: hidden;

    aspect-ratio: 1 / 1;

    padding: 0;

    background: var(--ghf-cream);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-sm);

    transition:
        border-color var(--ghf-transition),
        box-shadow var(--ghf-transition),
        transform var(--ghf-transition);
}

.ghf-single-product .ghf-gallery__thumb:hover {
    border-color: var(--ghf-primary);

    transform: translateY(-2px);

    box-shadow: var(--ghf-shadow-xs);
}

.ghf-single-product .ghf-gallery__thumb.is-active,
.ghf-single-product .ghf-gallery__thumb:focus-visible {
    border-color: var(--ghf-primary);

    box-shadow:
        0 0 0 2px rgba(122,46,36,.14);
}

.ghf-single-product .ghf-gallery__thumb img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* =========================================================
   PRODUCT SUMMARY
   ========================================================= */

.ghf-single-product .ghf-product-summary {
    min-width: 0;

    padding-top: 8px;
}

.ghf-single-product .ghf-product-category {
    display: inline-flex;
    align-items: center;

    margin-bottom: 14px;

    color: var(--ghf-gold);

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .14em;
    line-height: 1.3;

    text-transform: uppercase;
}

.ghf-single-product .ghf-product-title {
    max-width: 720px;

    margin: 0 0 15px;

    color: var(--ghf-dark);

    font-size:
        clamp(34px, 4vw, 56px);

    font-weight: 750;

    line-height: 1.04;

    letter-spacing: -.035em;
}

.ghf-single-product .ghf-product-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 10px 18px;

    margin-bottom: 21px;

    color: var(--ghf-muted);

    font-size: 12px;
}

.ghf-single-product .ghf-product-rating {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    color: var(--ghf-dark);
}

.ghf-single-product .ghf-product-rating__stars {
    color: var(--ghf-gold);

    letter-spacing: 1px;
}

.ghf-single-product .ghf-product-rating__count {
    color: var(--ghf-muted);
}

.ghf-single-product .ghf-product-sku {
    color: var(--ghf-muted);
}

.ghf-single-product .ghf-product-short-description {
    max-width: 650px;

    margin: 0 0 28px;

    color: #5A4F48;

    font-size: 15px;

    line-height: 1.8;
}


/* =========================================================
   PRICE
   ========================================================= */

.ghf-single-product .ghf-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;

    gap: 10px;

    margin: 0 0 26px;
}

.ghf-single-product .ghf-price .price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;

    gap: 11px;

    margin: 0;

    color: var(--ghf-primary);

    font-size: 32px;
    font-weight: 800;

    line-height: 1.15;
}

.ghf-single-product .ghf-price del {
    color: #9B8F86;

    font-size: 17px;
    font-weight: 500;
}

.ghf-single-product .ghf-price ins {
    color: var(--ghf-primary);

    text-decoration: none;
}


/* =========================================================
   QUICK DETAILS
   ========================================================= */

.ghf-single-product .ghf-quick-details {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    margin: 0 0 28px;

    overflow: hidden;

    background: var(--ghf-surface);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);
}

.ghf-single-product .ghf-quick-detail {
    display: flex;
    flex-direction: column;

    justify-content: center;

    min-height: 78px;

    padding: 15px 18px;

    border-right: 1px solid var(--ghf-border-light);
    border-bottom: 1px solid var(--ghf-border-light);
}

.ghf-single-product .ghf-quick-detail:nth-child(2n) {
    border-right: 0;
}

.ghf-single-product .ghf-quick-detail:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.ghf-single-product .ghf-quick-detail__label {
    margin-bottom: 3px;

    color: var(--ghf-muted);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .08em;

    text-transform: uppercase;
}

.ghf-single-product .ghf-quick-detail__value {
    color: var(--ghf-dark);

    font-size: 14px;
    font-weight: 700;
}


/* =========================================================
   PURCHASE AREA
   ========================================================= */

.ghf-single-product .ghf-purchase {
    margin-top: 5px;
}

.ghf-single-product .cart {
    margin: 0;
}


/* =========================================================
   VARIATIONS
   ========================================================= */

.ghf-single-product .variations {
    width: 100%;

    margin: 0 0 17px;

    border: 0;
    border-collapse: separate;
    border-spacing: 0 12px;
}

.ghf-single-product .variations tr {
    display: grid;

    grid-template-columns:
        110px minmax(0, 1fr);

    align-items: center;

    gap: 16px;
}

.ghf-single-product .variations th,
.ghf-single-product .variations td {
    padding: 0;

    border: 0;

    background: transparent;

    text-align: left;
}

.ghf-single-product .variations label {
    color: var(--ghf-dark);

    font-size: 12px;
    font-weight: 800;
}

.ghf-single-product .variations select {
    width: 100%;
    min-height: 50px;

    padding: 10px 40px 10px 14px;

    color: var(--ghf-dark);
    background-color: var(--ghf-white);

    border: 1px solid var(--ghf-border);
    border-radius: var(--ghf-radius-md);

    outline: none;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;

    transition:
        border-color var(--ghf-transition),
        box-shadow var(--ghf-transition);
}

.ghf-single-product .variations select:hover {
    border-color: #B7A899;
}

.ghf-single-product .variations select:focus {
    border-color: var(--ghf-primary);

    box-shadow:
        0 0 0 3px rgba(122,46,36,.1);
}

.ghf-single-product .reset_variations {
    display: inline-block;

    margin-top: 7px;

    color: var(--ghf-muted);

    font-size: 11px;

    text-decoration: underline;
}


/* =========================================================
   VARIATION PRICE
   ========================================================= */

.ghf-single-product .woocommerce-variation {
    margin-bottom: 15px;
}

.ghf-single-product .woocommerce-variation-price {
    margin-bottom: 12px;
}

.ghf-single-product .woocommerce-variation-price .price {
    color: var(--ghf-primary);

    font-size: 25px;
    font-weight: 800;
}


/* =========================================================
   CART ROW
   ========================================================= */

.ghf-single-product .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 10px;
}

.ghf-single-product form.cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 10px;
}


/* =========================================================
   QUANTITY
   ========================================================= */

.ghf-single-product .quantity {
    display: inline-flex;
    align-items: center;

    margin: 0 !important;
}

.ghf-single-product .quantity input.qty {
    width: 70px !important;
    min-width: 70px;

    height: 52px;

    padding: 10px;

    color: var(--ghf-dark);
    background: var(--ghf-white);

    border: 1px solid var(--ghf-border) !important;
    border-radius: var(--ghf-radius-md);

    box-shadow: none !important;

    text-align: center;

    font-size: 14px;
    font-weight: 750;
}

.ghf-single-product .quantity input.qty:focus {
    border-color: var(--ghf-primary) !important;

    box-shadow:
        0 0 0 3px rgba(122,46,36,.08) !important;
}


/* =========================================================
   ADD TO CART
   ========================================================= */

.ghf-single-product .single_add_to_cart_button {
    min-height: 52px;

    padding: 13px 30px !important;

    color: var(--ghf-white) !important;
    background: var(--ghf-primary) !important;

    border: 1px solid var(--ghf-primary) !important;
    border-radius: var(--ghf-radius-md) !important;

    font-size: 13px !important;
    font-weight: 800 !important;

    letter-spacing: .025em;

    box-shadow: none !important;

    transition:
        background var(--ghf-transition),
        border-color var(--ghf-transition),
        transform var(--ghf-transition),
        box-shadow var(--ghf-transition);
}

.ghf-single-product .single_add_to_cart_button:hover {
    color: var(--ghf-white) !important;

    background: var(--ghf-primary-dark) !important;

    border-color: var(--ghf-primary-dark) !important;

    transform: translateY(-2px);

    box-shadow:
        0 10px 24px rgba(122,46,36,.17) !important;
}

.ghf-single-product .single_add_to_cart_button:active {
    transform: translateY(0);
}

.ghf-single-product .single_add_to_cart_button.disabled,
.ghf-single-product .single_add_to_cart_button:disabled {
    opacity: .55;

    cursor: not-allowed;

    transform: none;

    box-shadow: none !important;
}


/* =========================================================
   STOCK
   ========================================================= */

.ghf-single-product .stock {
    margin: 0 0 15px;

    font-size: 12px;
    font-weight: 750;
}

.ghf-single-product .stock.in-stock {
    color: var(--ghf-success);
}

.ghf-single-product .stock.out-of-stock {
    color: var(--ghf-danger);
}

.ghf-single-product .stock.available-on-backorder {
    color: var(--ghf-gold);
}

.ghf-single-product .woocommerce-variation-availability {
    margin-bottom: 12px;
}

.ghf-single-product .woocommerce-variation-availability .stock {
    margin-bottom: 0;
}

.ghf-single-product .woocommerce-variation-description p {
    color: var(--ghf-muted);

    font-size: 12px;
}


/* =========================================================
   TRUST / DELIVERY
   ========================================================= */

.ghf-single-product .ghf-trust {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;

    margin-top: 26px;
    padding-top: 24px;

    border-top: 1px solid var(--ghf-border-light);
}

.ghf-single-product .ghf-trust__item {
    display: flex;
    align-items: flex-start;

    gap: 11px;

    padding: 13px;

    background: var(--ghf-surface);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-md);
}

.ghf-single-product .ghf-trust__icon {
    flex: 0 0 auto;

    display: grid;
    place-items: center;

    width: 29px;
    height: 29px;

    color: var(--ghf-primary);
    background: var(--ghf-primary-soft);

    border-radius: 50%;

    font-size: 11px;
    font-weight: 800;
}

.ghf-single-product .ghf-trust__content {
    min-width: 0;
}

.ghf-single-product .ghf-trust__title {
    margin: 0;

    color: var(--ghf-dark);

    font-size: 11px;
    font-weight: 800;
}

.ghf-single-product .ghf-trust__text {
    margin: 3px 0 0;

    color: var(--ghf-muted);

    font-size: 10px;
    line-height: 1.45;
}


/* =========================================================
   PRODUCT CONTENT
   ========================================================= */

.ghf-single-product .ghf-product-content {
    padding: 88px 0;

    background: var(--ghf-cream);
}

.ghf-single-product .ghf-content-heading {
    max-width: 760px;

    margin-bottom: 36px;
}

.ghf-single-product .ghf-eyebrow {
    display: block;

    margin-bottom: 9px;

    color: var(--ghf-gold);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .15em;

    text-transform: uppercase;
}

.ghf-single-product .ghf-section-title {
    margin: 0;

    color: var(--ghf-dark);

    font-size:
        clamp(28px, 3vw, 42px);

    font-weight: 750;

    line-height: 1.12;

    letter-spacing: -.025em;
}

.ghf-single-product .ghf-section-description {
    max-width: 650px;

    margin: 12px 0 0;

    color: var(--ghf-muted);

    font-size: 14px;

    line-height: 1.7;
}


/* =========================================================
   HIGHLIGHTS
   ========================================================= */

.ghf-single-product .ghf-highlights {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 13px;

    margin-bottom: 50px;
}

.ghf-single-product .ghf-highlight {
    min-height: 125px;

    padding: 21px;

    background: var(--ghf-white);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);

    box-shadow: var(--ghf-shadow-xs);

    transition:
        transform var(--ghf-transition),
        box-shadow var(--ghf-transition);
}

.ghf-single-product .ghf-highlight:hover {
    transform: translateY(-3px);

    box-shadow: var(--ghf-shadow-sm);
}

.ghf-single-product .ghf-highlight__number {
    display: block;

    margin-bottom: 10px;

    color: var(--ghf-gold);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .08em;
}

.ghf-single-product .ghf-highlight__text {
    color: var(--ghf-dark);

    font-size: 13px;
    font-weight: 650;

    line-height: 1.55;
}


/* =========================================================
   TABS
   ========================================================= */

.ghf-single-product .ghf-tabs {
    overflow: hidden;

    background: var(--ghf-white);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-xl);

    box-shadow: var(--ghf-shadow-sm);
}

.ghf-single-product .ghf-tabs__nav {
    display: flex;

    overflow-x: auto;

    border-bottom: 1px solid var(--ghf-border-light);

    scrollbar-width: thin;
}

.ghf-single-product .ghf-tabs__button {
    position: relative;

    flex: 0 0 auto;

    min-height: 62px;

    padding: 18px 23px;

    color: var(--ghf-muted);
    background: transparent;

    border: 0;

    font-size: 12px;
    font-weight: 750;

    white-space: nowrap;

    transition:
        color var(--ghf-transition),
        background var(--ghf-transition);
}

.ghf-single-product .ghf-tabs__button:hover {
    color: var(--ghf-primary);

    background: var(--ghf-surface);
}

.ghf-single-product .ghf-tabs__button.is-active {
    color: var(--ghf-primary);
}

.ghf-single-product .ghf-tabs__button.is-active::after {
    content: "";

    position: absolute;

    left: 18px;
    right: 18px;
    bottom: -1px;

    height: 2px;

    background: var(--ghf-primary);

    border-radius: 3px 3px 0 0;
}

.ghf-single-product .ghf-tabs__panel {
    display: none;

    padding:
        clamp(27px, 4vw, 46px);
}

.ghf-single-product .ghf-tabs__panel.is-active {
    display: block;
}

.ghf-single-product .ghf-tabs__panel h3 {
    margin: 0 0 14px;

    color: var(--ghf-dark);

    font-size: 21px;
    line-height: 1.3;
}

.ghf-single-product .ghf-tabs__panel p {
    color: #554A44;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.ghf-single-product .ghf-description {
    color: #554A44;

    font-size: 14px;

    line-height: 1.9;
}

.ghf-single-product .ghf-description h2,
.ghf-single-product .ghf-description h3,
.ghf-single-product .ghf-description h4 {
    color: var(--ghf-dark);
}

.ghf-single-product .ghf-description ul,
.ghf-single-product .ghf-description ol {
    padding-left: 22px;
}


/* =========================================================
   SPECIFICATIONS
   ========================================================= */

.ghf-single-product .ghf-specs {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    overflow: hidden;

    margin-top: 30px;

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);
}

.ghf-single-product .ghf-spec {
    display: grid;

    grid-template-columns:
        minmax(110px,.8fr)
        minmax(0,1.2fr);

    gap: 15px;

    padding: 16px 18px;

    background: var(--ghf-white);

    border-right: 1px solid var(--ghf-border-light);
    border-bottom: 1px solid var(--ghf-border-light);
}

.ghf-single-product .ghf-spec:nth-child(2n) {
    border-right: 0;
}

.ghf-single-product .ghf-spec:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.ghf-single-product .ghf-spec__label {
    color: var(--ghf-muted);

    font-size: 11px;
    font-weight: 700;
}

.ghf-single-product .ghf-spec__value {
    color: var(--ghf-dark);

    font-size: 13px;
    font-weight: 650;
}


/* =========================================================
   INGREDIENTS
   ========================================================= */

.ghf-single-product .ghf-ingredients {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 9px;

    margin: 0;

    padding: 0;

    list-style: none;
}

.ghf-single-product .ghf-ingredient {
    display: flex;
    align-items: center;

    gap: 10px;

    padding: 13px 15px;

    background: var(--ghf-surface);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-md);
}

.ghf-single-product .ghf-ingredient::before {
    content: "";

    flex: 0 0 auto;

    width: 7px;
    height: 7px;

    background: var(--ghf-gold);

    border-radius: 50%;
}

.ghf-single-product .ghf-ingredient__name {
    color: var(--ghf-dark);

    font-size: 13px;
    font-weight: 600;
}


/* =========================================================
   NUTRITION
   ========================================================= */

.ghf-single-product .ghf-nutrition {
    width: 100%;

    overflow: hidden;

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);
}

.ghf-single-product .ghf-nutrition table {
    width: 100%;

    margin: 0;

    border-collapse: collapse;
}

.ghf-single-product .ghf-nutrition th,
.ghf-single-product .ghf-nutrition td {
    padding: 14px 17px;

    border-bottom: 1px solid var(--ghf-border-light);

    text-align: left;
}

.ghf-single-product .ghf-nutrition tr:last-child th,
.ghf-single-product .ghf-nutrition tr:last-child td {
    border-bottom: 0;
}

.ghf-single-product .ghf-nutrition th {
    width: 55%;

    color: var(--ghf-dark);
    background: var(--ghf-surface);

    font-size: 12px;
    font-weight: 750;
}

.ghf-single-product .ghf-nutrition td {
    color: var(--ghf-muted);
    background: var(--ghf-white);

    font-size: 12px;
    font-weight: 600;
}


/* =========================================================
   STORAGE / CARE
   ========================================================= */

.ghf-single-product .ghf-info-cards {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 14px;
}

.ghf-single-product .ghf-info-card {
    padding: 21px;

    background: var(--ghf-surface);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);
}

.ghf-single-product .ghf-info-card__label {
    display: block;

    margin-bottom: 7px;

    color: var(--ghf-gold);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .1em;

    text-transform: uppercase;
}

.ghf-single-product .ghf-info-card__value {
    color: var(--ghf-dark);

    font-size: 13px;

    line-height: 1.65;
}


/* =========================================================
   FAQ
   ========================================================= */

.ghf-single-product .ghf-faq {
    border-top: 1px solid var(--ghf-border-light);
}

.ghf-single-product .ghf-faq__item {
    border-bottom: 1px solid var(--ghf-border-light);
}

.ghf-single-product .ghf-faq__question {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;

    gap: 20px;

    padding: 20px 0;

    color: var(--ghf-dark);
    background: transparent;

    border: 0;

    text-align: left;

    font-size: 14px;
    font-weight: 750;
}

.ghf-single-product .ghf-faq__question::after {
    content: "+";

    flex: 0 0 auto;

    color: var(--ghf-primary);

    font-size: 21px;
    font-weight: 400;

    line-height: 1;

    transition:
        transform var(--ghf-transition);
}

.ghf-single-product
.ghf-faq__question[aria-expanded="true"]::after {
    transform: rotate(45deg);
}

.ghf-single-product .ghf-faq__answer {
    display: none;

    padding: 0 35px 21px 0;

    color: var(--ghf-muted);

    font-size: 13px;

    line-height: 1.75;
}

.ghf-single-product .ghf-faq__answer.is-open {
    display: block;
}


/* =========================================================
   REVIEWS
   ========================================================= */

.ghf-single-product .ghf-reviews {
    padding: 88px 0;

    background: var(--ghf-white);
}

.ghf-single-product .ghf-reviews__inner {
    max-width: 1000px;

    margin-inline: auto;
}

.ghf-single-product #reviews {
    color: var(--ghf-dark);
}

.ghf-single-product #reviews .commentlist {
    margin: 0;
    padding: 0;

    list-style: none;
}

.ghf-single-product #reviews .comment_container {
    display: flex;

    gap: 16px;

    padding: 24px 0;

    border-bottom: 1px solid var(--ghf-border-light);
}

.ghf-single-product #reviews .comment-text {
    flex: 1;
}

.ghf-single-product #reviews img.avatar {
    position: static;

    width: 48px;
    height: 48px;

    margin: 0;

    border: 0;

    border-radius: 50%;
}

.ghf-single-product #reviews .star-rating {
    color: var(--ghf-gold);
}

.ghf-single-product #reviews .meta {
    color: var(--ghf-muted);

    font-size: 11px;
}

.ghf-single-product #reviews .description {
    color: #554A44;

    font-size: 13px;

    line-height: 1.7;
}


/* =========================================================
   REVIEW FORM
   ========================================================= */

.ghf-single-product #review_form_wrapper {
    margin-top: 35px;

    padding: 30px;

    background: var(--ghf-cream);

    border: 1px solid var(--ghf-border-light);
    border-radius: var(--ghf-radius-lg);
}

.ghf-single-product #review_form_wrapper input,
.ghf-single-product #review_form_wrapper textarea {
    width: 100%;

    background: var(--ghf-white);

    border: 1px solid var(--ghf-border);
    border-radius: var(--ghf-radius-md);

    box-shadow: none;

    transition:
        border-color var(--ghf-transition),
        box-shadow var(--ghf-transition);
}

.ghf-single-product #review_form_wrapper input:focus,
.ghf-single-product #review_form_wrapper textarea:focus {
    border-color: var(--ghf-primary);

    box-shadow:
        0 0 0 3px rgba(122,46,36,.08);
}


/* =========================================================
   RELATED PRODUCTS
   ========================================================= */

.ghf-single-product .ghf-related-products {
    padding: 88px 0;

    background: var(--ghf-cream);
}

.ghf-single-product .ghf-related-products__grid {
    margin-top: 34px;
}

.ghf-single-product
.ghf-related-products__grid
.related.products {
    margin: 0;
}

.ghf-single-product
.ghf-related-products__grid
.related.products > h2 {
    display: none;
}

.ghf-single-product
.ghf-related-products__grid
.related.products ul.products {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 20px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.ghf-single-product
.ghf-related-products__grid
.related.products ul.products::before,
.ghf-single-product
.ghf-related-products__grid
.related.products ul.products::after {
    display: none;
}

.ghf-single-product
.ghf-related-products__grid
.related.products ul.products li.product {
    width: auto;

    margin: 0;
}


/* =========================================================
   WOOCOMMERCE NOTICES
   ========================================================= */

.ghf-single-product .woocommerce-notices-wrapper {
    margin-bottom: 20px;
}

.ghf-single-product .woocommerce-message,
.ghf-single-product .woocommerce-info,
.ghf-single-product .woocommerce-error {
    margin: 0 0 15px;

    padding: 14px 17px;

    border-radius: var(--ghf-radius-md);

    font-size: 12px;
}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

.ghf-single-product a:focus-visible,
.ghf-single-product button:focus-visible,
.ghf-single-product input:focus-visible,
.ghf-single-product select:focus-visible,
.ghf-single-product textarea:focus-visible {
    outline: 3px solid rgba(184,134,59,.42);

    outline-offset: 2px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

    .ghf-single-product .ghf-product-hero__grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(350px, .9fr);

        gap: 42px;
    }

    .ghf-single-product .ghf-product-title {
        font-size: 40px;
    }

    .ghf-single-product .ghf-highlights {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .ghf-single-product
    .ghf-related-products__grid
    .related.products ul.products {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .ghf-single-product .ghf-container {
        width:
            min(
                calc(100% - 30px),
                var(--ghf-container)
            );
    }

    .ghf-single-product .ghf-breadcrumb {
        padding: 15px 0;
    }

    .ghf-single-product .ghf-product-hero {
        padding: 5px 0 52px;
    }

    .ghf-single-product .ghf-product-hero__grid {
        display: block;
    }

    .ghf-single-product .ghf-gallery {
        position: static;

        margin-bottom: 32px;
    }

    .ghf-single-product .ghf-gallery__main {
        border-radius: var(--ghf-radius-lg);
    }

    .ghf-single-product .ghf-gallery__thumbs {
        grid-template-columns:
            repeat(5, minmax(0, 1fr));

        gap: 7px;
    }

    .ghf-single-product .ghf-gallery__thumb {
        border-radius: 7px;
    }

    .ghf-single-product .ghf-sale-badge {
        top: 14px;
        left: 14px;
    }

    .ghf-single-product .ghf-product-summary {
        padding-top: 0;
    }

    .ghf-single-product .ghf-product-title {
        margin-bottom: 12px;

        font-size: 32px;
    }

    .ghf-single-product .ghf-product-meta {
        margin-bottom: 17px;
    }

    .ghf-single-product .ghf-product-short-description {
        margin-bottom: 23px;

        font-size: 14px;

        line-height: 1.75;
    }

    .ghf-single-product .ghf-price .price {
        font-size: 28px;
    }

    .ghf-single-product .ghf-quick-details {
        grid-template-columns: 1fr;
    }

    .ghf-single-product .ghf-quick-detail,
    .ghf-single-product .ghf-quick-detail:nth-child(2n) {
        border-right: 0;

        border-bottom:
            1px solid var(--ghf-border-light);
    }

    .ghf-single-product .ghf-quick-detail:last-child {
        border-bottom: 0;
    }

    .ghf-single-product .ghf-trust {
        grid-template-columns: 1fr;
    }

    .ghf-single-product .variations tr {
        grid-template-columns: 1fr;

        gap: 7px;
    }

    .ghf-single-product form.cart {
        align-items: stretch;
    }

    .ghf-single-product .quantity {
        flex: 0 0 auto;
    }

    .ghf-single-product .single_add_to_cart_button {
        flex: 1 1 auto;
    }

    .ghf-single-product .ghf-product-content,
    .ghf-single-product .ghf-reviews,
    .ghf-single-product .ghf-related-products {
        padding: 55px 0;
    }

    .ghf-single-product .ghf-highlights {
        grid-template-columns: 1fr;

        margin-bottom: 36px;
    }

    .ghf-single-product .ghf-highlight {
        min-height: auto;
    }

    .ghf-single-product .ghf-tabs {
        border-radius: var(--ghf-radius-lg);
    }

    .ghf-single-product .ghf-tabs__button {
        min-height: 54px;

        padding: 16px 17px;

        font-size: 11px;
    }

    .ghf-single-product .ghf-tabs__panel {
        padding: 25px 20px;
    }

    .ghf-single-product .ghf-specs {
        grid-template-columns: 1fr;
    }

    .ghf-single-product .ghf-spec,
    .ghf-single-product .ghf-spec:nth-child(2n) {
        grid-template-columns: 1fr;

        gap: 4px;

        border-right: 0;

        border-bottom:
            1px solid var(--ghf-border-light);
    }

    .ghf-single-product .ghf-spec:last-child {
        border-bottom: 0;
    }

    .ghf-single-product .ghf-ingredients {
        grid-template-columns: 1fr;
    }

    .ghf-single-product .ghf-info-cards {
        grid-template-columns: 1fr;
    }

    .ghf-single-product .ghf-nutrition {
        overflow-x: auto;
    }

    .ghf-single-product .ghf-nutrition table {
        min-width: 520px;
    }

    .ghf-single-product #review_form_wrapper {
        padding: 21px;
    }

    .ghf-single-product
    .ghf-related-products__grid
    .related.products ul.products {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 12px;
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .ghf-single-product .ghf-container {
        width: calc(100% - 24px);
    }

    .ghf-single-product .ghf-product-title {
        font-size: 29px;
    }

    .ghf-single-product .ghf-product-short-description {
        font-size: 13px;
    }

    .ghf-single-product .ghf-price .price {
        font-size: 25px;
    }

    .ghf-single-product .ghf-product-meta {
        gap: 7px 11px;

        font-size: 11px;
    }

    .ghf-single-product .ghf-gallery__thumbs {
        gap: 5px;
    }

    .ghf-single-product .ghf-trust__item {
        padding: 10px;
    }

    .ghf-single-product .ghf-tabs__panel {
        padding: 21px 16px;
    }

    .ghf-single-product
    .ghf-related-products__grid
    .related.products ul.products {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 10px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .ghf-single-product *,
    .ghf-single-product *::before,
    .ghf-single-product *::after {
        scroll-behavior: auto !important;

        transition-duration: .01ms !important;

        animation-duration: .01ms !important;

        animation-iteration-count: 1 !important;
    }
}