/**
 * Single product page (woocommerce/single-product.php)
 * Breakpoint: 640px (phone).
 *
 * @package GilbertoCortezTheme
 * @version 3.0
 */

.gc-pdp {
    --gc-blue: #00579b;
    --gc-blue-rule: #2972ab;
    --gc-lime: #a3c93a;
    --gc-olive: #4f6f12;
    --gc-ink: #001a2e;
    --gc-forest: #0f2c12;
    --gc-muted: #3d5568;
    --gc-rule: #d5dee6;
    --gc-rule-soft: #e6ecf1;
    --gc-panel: #f2f5f8;
    --gc-cloud: #e1eaf2;
    --gc-shadow: #c9d6e2;
    --gc-alert: #b42318;
    --gc-radius: 4px;
    --gc-serif: 'Crimson Text', Georgia, serif;

    color: var(--gc-ink);
    font-family: 'Rajdhani', sans-serif;
    line-height: normal;
    background: #ffffff;

    /* Break out of the theme's content container to span the full viewport */
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* 100vw includes the scrollbar; prevent a horizontal scroll on this page */
body:has(.gc-pdp) {
    overflow-x: clip;
}

.gc-pdp *,
.gc-pdp *::before,
.gc-pdp *::after {
    box-sizing: border-box;
}

/* Theme + Bootstrap resets. :where() keeps these at single-class weight so the
   component rules below win; !important only where style.css uses it too. */
.gc-pdp :where(h1, h2, h3, p, ul, ol, li, figure) {
    margin: 0;
    padding: 0;
    line-height: inherit;
}

.gc-pdp :where(h1, h2) {
    margin: 0 !important;
    border: 0;
    font-size: inherit;
    font-weight: 700;
    letter-spacing: normal;
    color: inherit;
}

.gc-pdp :where(p, ul, ol, li) {
    font-family: inherit !important;
}

.gc-pdp :where(ul, ol) {
    list-style: none;
}

.gc-pdp :where(a) {
    color: var(--gc-blue);
    text-decoration: none;
}

.gc-pdp img {
    display: block;
    max-width: 100%;
}

.gc-pdp [hidden] {
    display: none !important;
}

.gc-pdp :focus-visible {
    outline: 3px solid var(--gc-lime);
    outline-offset: 3px;
}

.gc-pdp .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.gc-pdp__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Shared headings: "You May <span>Also Like</span>" */
.gc-pdp .gc-pdp__h2 {
    font-size: clamp(32px, 6vw, 42px);
    font-weight: 700;
    line-height: .9;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__h2 span {
    color: var(--gc-blue);
}

.gc-pdp__btn {
    display: inline-flex;
    align-items: center;
    padding: 18px 26px;
    border-radius: var(--gc-radius);
    background: var(--gc-lime);
    color: var(--gc-forest);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: filter .2s ease;
}

.gc-pdp__btn:hover {
    filter: brightness(1.06);
}

.gc-pdp__btn--ghost {
    padding: 16px 24px;
    border: 2px solid var(--gc-lime);
    background: none;
    color: #ffffff;
}

.gc-pdp__btn--outline {
    padding: 14px 22px;
    border: 2px solid var(--gc-blue);
    background: none;
    color: var(--gc-blue);
}

/* ---------- Summary ---------- */
.gc-pdp__summary .gc-pdp__inner {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-top: 28px;
    padding-bottom: 64px;
}

.gc-pdp__notices:empty,
.gc-pdp__notices .woocommerce-notices-wrapper:empty {
    display: none;
}

.gc-pdp__notices .woocommerce-message,
.gc-pdp__notices .woocommerce-info,
.gc-pdp__notices .woocommerce-error {
    margin-bottom: 0 !important;
    font-family: 'Rajdhani', sans-serif !important;
    font-size: 17px;
    font-weight: 600;
}

.gc-pdp__notices .woocommerce-message .button {
    float: right;
    margin-left: 16px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gc-pdp__crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gc-muted);
}

.gc-pdp__crumbs a:hover {
    color: var(--gc-ink);
}

.gc-pdp__crumbs-current {
    color: var(--gc-ink);
}

.gc-pdp__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 56px;
    align-items: flex-start;
}

/* Gallery */
.gc-pdp__gallery {
    flex: 1 1 480px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gc-pdp__stage {
    position: relative;
    border-radius: var(--gc-radius);
    overflow: hidden;
    background: var(--gc-panel);
}

.gc-pdp__stage-img {
    width: 100%;
    height: clamp(260px, 70vw, 480px);
    object-fit: cover;
}

.gc-pdp__badges {
    position: absolute;
    left: 16px;
    top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gc-pdp__badge {
    padding: 7px 12px;
    border-radius: var(--gc-radius);
    background: var(--gc-lime);
    color: var(--gc-forest);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gc-pdp__badge--sale {
    background: var(--gc-ink);
    color: #ffffff;
}

.gc-pdp__thumbs {
    display: flex;
    gap: 10px;
}

.gc-pdp__thumb {
    flex: 1 1 0%;
    min-width: 0;
    max-width: calc((100% - 30px) / 4);
    padding: 0;
    border: 3px solid transparent;
    border-radius: var(--gc-radius);
    overflow: hidden;
    background: var(--gc-panel);
    cursor: pointer;
}

.gc-pdp__thumb img {
    width: 100%;
    height: 96px;
    object-fit: cover;
    opacity: .7;
    transition: opacity .2s ease;
}

.gc-pdp__thumb:hover img,
.gc-pdp__thumb.is-active img {
    opacity: 1;
}

.gc-pdp__thumb.is-active {
    border-color: var(--gc-blue);
}

/* Info column */
.gc-pdp__info {
    flex: 1 1 420px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.gc-pdp__head {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gc-pdp__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gc-pdp__chip {
    padding: 6px 12px;
    border-radius: var(--gc-radius);
    background: var(--gc-panel);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gc-pdp__chip:hover {
    background: var(--gc-rule-soft);
}

.gc-pdp .gc-pdp__title {
    font-size: clamp(36px, 7vw, 52px);
    font-weight: 700;
    line-height: .9;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--gc-ink);
    overflow-wrap: break-word;
}

.gc-pdp__title span {
    color: var(--gc-blue);
}

.gc-pdp__lede {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gc-pdp__lede :is(p, div, span, strong) {
    font-family: var(--gc-serif) !important;
    font-size: 21px;
    line-height: 1.5;
    color: var(--gc-muted);
}

.gc-pdp__lede .row {
    display: block;
    margin: 0;
}

.gc-pdp__lede :empty {
    display: none;
}

.gc-pdp__price-row {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    padding: 18px 0;
    border-top: 1px solid var(--gc-rule);
    border-bottom: 1px solid var(--gc-rule);
}

.gc-pdp__price {
    font-size: clamp(42px, 9vw, 56px);
    font-weight: 700;
    line-height: .85;
    color: var(--gc-ink);
}

.gc-pdp__price del {
    margin-right: 10px;
    font-size: .5em;
    color: var(--gc-muted);
}

.gc-pdp__price ins {
    text-decoration: none;
}

.gc-pdp__term {
    padding-bottom: 4px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gc-muted);
}

.gc-pdp__stock {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 4px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gc-olive);
}

.gc-pdp__stock-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--gc-lime);
}

.gc-pdp__stock--out-of-stock {
    color: var(--gc-alert);
}

.gc-pdp__stock--out-of-stock .gc-pdp__stock-dot {
    background: var(--gc-alert);
}

/* What's Included */
.gc-pdp__included {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gc-pdp__label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gc-muted);
}

.gc-pdp__checks li {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid var(--gc-rule-soft);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--gc-ink);
}

.gc-pdp__check {
    flex: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--gc-blue);
    color: var(--gc-lime);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Add to cart */
.gc-pdp__buy {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
}

.gc-pdp__qty {
    display: flex;
    align-items: center;
    height: 60px;
    border: 2px solid var(--gc-rule);
    border-radius: var(--gc-radius);
}

.gc-pdp__qty-btn {
    width: 52px;
    height: 100%;
    border: 0;
    background: none;
    font-family: 'Rajdhani', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: var(--gc-blue);
    cursor: pointer;
}

.gc-pdp__qty .quantity {
    height: 100%;
    margin: 0;
}

.gc-pdp__qty input.qty {
    width: 44px;
    height: 100%;
    padding: 0;
    border: 0;
    background: none;
    font-family: 'Rajdhani', sans-serif;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    color: var(--gc-ink);
    -moz-appearance: textfield;
    appearance: textfield;
}

.gc-pdp__qty input.qty::-webkit-outer-spin-button,
.gc-pdp__qty input.qty::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.gc-pdp .single_add_to_cart_button {
    flex: 1 1 220px;
    height: 60px;
    padding: 0 20px;
    border: 0;
    border-radius: var(--gc-radius);
    background: var(--gc-lime);
    color: var(--gc-forest);
    font-family: 'Rajdhani', sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: filter .2s ease, background-color .2s ease, color .2s ease;
}

.gc-pdp .single_add_to_cart_button:hover {
    filter: brightness(1.06);
}

.gc-pdp .single_add_to_cart_button:disabled {
    cursor: progress;
    opacity: .75;
}

.gc-pdp .single_add_to_cart_button.is-added {
    background: var(--gc-blue);
    color: #ffffff;
}

.gc-pdp__added p {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-top: -8px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gc-olive);
}

/* Variable / grouped / external products use WooCommerce's own add-to-cart markup */
.gc-pdp__buy-default form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
}

.gc-pdp__buy-default .quantity input.qty,
.gc-pdp__buy-default select {
    height: 60px;
    padding: 0 12px;
    border: 2px solid var(--gc-rule);
    border-radius: var(--gc-radius);
    font-family: 'Rajdhani', sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.gc-pdp__unavailable {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
    border-radius: var(--gc-radius);
    background: var(--gc-panel);
}

.gc-pdp__unavailable p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gc-muted);
}

/* Trust badges */
.gc-pdp__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gc-pdp__trust li {
    flex: 1 1 140px;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--gc-radius);
    background: var(--gc-panel);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__trust svg {
    flex: none;
    color: var(--gc-blue);
}

/* ---------- Details (tabs) ---------- */
.gc-pdp__details {
    background: var(--gc-panel);
}

.gc-pdp__details .gc-pdp__inner {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-top: 56px;
    padding-bottom: 64px;
}

.gc-pdp__tabs {
    display: flex;
    gap: 6px;
    border-bottom: 3px solid var(--gc-rule);
    overflow-x: auto;
    scrollbar-width: none;
}

.gc-pdp__tab {
    flex: none;
    margin-bottom: -3px;
    padding: 14px 20px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: none;
    font-family: 'Rajdhani', sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gc-muted);
    cursor: pointer;
}

.gc-pdp__tab[aria-selected="true"] {
    border-bottom-color: var(--gc-blue);
    color: var(--gc-ink);
}

/* Without JS the tab bar stays hidden and every panel shows in order */
.gc-pdp__panel:focus-visible {
    outline-offset: 8px;
}

.gc-pdp__desc-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 32px 56px;
    align-items: flex-start;
}

.gc-pdp__desc {
    flex: 1 1 520px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.gc-pdp__desc .gc-pdp__h2 {
    font-size: clamp(30px, 6vw, 40px);
    line-height: .95;
}

/* Description HTML from the product editor */
.gc-pdp__content {
    font-family: var(--gc-serif);
    font-size: 20px;
    line-height: 1.6;
    color: var(--gc-muted);
}

.gc-pdp__content> :first-child {
    margin-top: 0 !important;
}

.gc-pdp__content :is(p, li) {
    font-family: var(--gc-serif) !important;
    font-size: 20px;
    line-height: 1.6;
    color: var(--gc-muted);
}

.gc-pdp__content p,
.gc-pdp__content ul,
.gc-pdp__content ol {
    margin: 0 0 18px;
}

.gc-pdp__content ul {
    list-style: disc;
    padding-left: 1.2em;
}

.gc-pdp__content ol {
    list-style: decimal;
    padding-left: 1.4em;
}

.gc-pdp__content li+li {
    margin-top: 6px;
}

.gc-pdp__content li ul {
    margin: 6px 0 0;
    list-style: circle;
}

.gc-pdp__content strong {
    color: var(--gc-ink);
}

.gc-pdp__content a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gc-pdp__content :is(h2, h3, h4) {
    margin: 28px 0 12px !important;
    border: 0;
    font-family: 'Rajdhani', sans-serif !important;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--gc-ink);
}

/* Legacy Bootstrap grid markup pasted into older descriptions */
.gc-pdp__content :is(.row, [class*="col-"]) {
    display: block;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    flex: none;
}

.gc-pdp__content img {
    height: auto;
    border-radius: var(--gc-radius);
}

/* Blue "you receive" card + notice */
.gc-pdp__aside {
    flex: 1 1 340px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gc-pdp__plan {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 24px;
    border-top: 4px solid var(--gc-lime);
    border-radius: var(--gc-radius);
    background: var(--gc-blue);
    color: #ffffff;
}

.gc-pdp__plan-label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gc-lime);
}

.gc-pdp__plan li {
    padding: 10px 0;
    border-top: 1px solid var(--gc-blue-rule);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;
}

.gc-pdp__notice {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: var(--gc-radius);
    background: #ffffff;
}

.gc-pdp__notice svg {
    flex: none;
    margin-top: 2px;
    color: var(--gc-blue);
}

.gc-pdp__notice-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.gc-pdp__notice-title {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__notice-text p {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gc-muted);
}

.gc-pdp__notice-text p+p {
    margin-top: 8px;
}

/* White cards for Additional Info and Reviews */
.gc-pdp__card {
    max-width: 760px;
    padding: 28px;
    border-radius: var(--gc-radius);
    background: #ffffff;
}

.gc-pdp__specs table {
    width: 100%;
    border-collapse: collapse;
}

.gc-pdp__specs :is(th, td) {
    padding: 12px 0;
    border-top: 1px solid var(--gc-rule-soft);
    text-align: left;
    vertical-align: top;
}

.gc-pdp__specs tr:first-child :is(th, td) {
    border-top: 0;
}

.gc-pdp__specs th {
    width: 38%;
    padding-right: 16px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__specs td,
.gc-pdp__specs td p {
    font-size: 18px;
    font-weight: 600;
    color: var(--gc-muted);
}

/* Reviews (WooCommerce's single-product-reviews.php) */
.gc-pdp__reviews #reviews {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.gc-pdp__reviews #comments {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gc-pdp__reviews :is(.woocommerce-Reviews-title, .comment-reply-title) {
    display: block;
    margin: 0 !important;
    border: 0;
    font-family: 'Rajdhani', sans-serif !important;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__reviews :is(.woocommerce-noreviews, .woocommerce-verification-required, .comment-notes, .logged-in-as) {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gc-muted);
}

.gc-pdp__reviews .commentlist {
    display: flex;
    flex-direction: column;
}

.gc-pdp__reviews .commentlist>li {
    padding: 18px 0;
    border-top: 1px solid var(--gc-rule-soft);
}

.gc-pdp__reviews .comment_container {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.gc-pdp__reviews .avatar {
    flex: none;
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

.gc-pdp__reviews .comment-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gc-pdp__reviews .meta {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gc-muted);
}

.gc-pdp__reviews .meta strong {
    color: var(--gc-ink);
}

.gc-pdp__reviews .description p {
    font-family: var(--gc-serif) !important;
    font-size: 19px;
    line-height: 1.55;
    color: var(--gc-muted);
}

.gc-pdp__reviews .star-rating {
    position: relative;
    display: inline-block;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 2px;
    color: var(--gc-rule);
}

.gc-pdp__reviews .star-rating::before {
    content: "★★★★★";
}

.gc-pdp__reviews .star-rating span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    white-space: nowrap;
    font-size: 0;
}

.gc-pdp__reviews .star-rating span::before {
    content: "★★★★★";
    font-size: 18px;
    color: var(--gc-blue);
}

.gc-pdp__reviews #respond {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gc-pdp__reviews .comment-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gc-pdp__reviews .comment-form label {
    display: block;
    margin-bottom: 6px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gc-ink);
}

.gc-pdp__reviews .comment-form .required {
    color: var(--gc-alert);
}

.gc-pdp__reviews .comment-form :is(input[type="text"], input[type="email"], textarea, select) {
    width: 100%;
    padding: 12px 14px;
    border: 2px solid var(--gc-rule);
    border-radius: var(--gc-radius);
    background: #ffffff;
    font-family: 'Rajdhani', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--gc-ink);
}

.gc-pdp__reviews .comment-form-cookies-consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.gc-pdp__reviews .comment-form-cookies-consent label {
    margin: 0;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
}

.gc-pdp__reviews .form-submit input[type="submit"] {
    height: 56px;
    padding: 0 28px;
    border: 0;
    border-radius: var(--gc-radius);
    background: var(--gc-lime);
    color: var(--gc-forest);
    font-family: 'Rajdhani', sans-serif;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
}

/* Star picker that WooCommerce's single-product.js builds from the rating select */
.gc-pdp__reviews p.stars a {
    display: inline-block;
    width: 30px;
    font-size: 0;
    text-decoration: none;
}

.gc-pdp__reviews p.stars a::before {
    content: "★";
    font-size: 28px;
    color: var(--gc-rule);
}

.gc-pdp__reviews p.stars:hover a::before,
.gc-pdp__reviews p.stars.selected a::before {
    color: var(--gc-blue);
}

.gc-pdp__reviews p.stars a:hover~a::before,
.gc-pdp__reviews p.stars.selected a.active~a::before {
    color: var(--gc-rule);
}

/* ---------- Related ---------- */
.gc-pdp__related .gc-pdp__inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-top: 64px;
    padding-bottom: 64px;
}

.gc-pdp__section-head {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 48px;
    align-items: flex-end;
    justify-content: space-between;
}

.gc-pdp__section-title {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gc-pdp__eyebrow {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gc-blue);
}

.gc-pdp__more {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gc-pdp__more:hover {
    color: var(--gc-ink);
}

/* auto-fill keeps one or two cards at a quarter width instead of stretching */
.gc-pdp__cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
    gap: 12px;
}

.gc-pdp__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: var(--gc-radius);
    overflow: hidden;
    background: var(--gc-panel);
    color: var(--gc-ink);
    transition: transform .25s ease, box-shadow .25s ease;
}

.gc-pdp__card-link:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px var(--gc-shadow);
}

.gc-pdp .gc-pdp__card-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 0;
}

.gc-pdp__card-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px;
}

.gc-pdp__card-cat {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gc-blue);
}

.gc-pdp__card-name {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.05;
    text-transform: uppercase;
}

.gc-pdp__card-foot {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 12px;
    padding-top: 10px;
}

.gc-pdp__card-price {
    font-size: 28px;
    font-weight: 700;
    color: var(--gc-ink);
}

.gc-pdp__card-price del {
    margin-right: 6px;
    font-size: .6em;
    color: var(--gc-muted);
}

.gc-pdp__card-price ins {
    text-decoration: none;
}

.gc-pdp__card-more {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gc-blue);
}

/* ---------- Help CTA ---------- */
.gc-pdp__help {
    background: var(--gc-blue);
    color: #ffffff;
}

.gc-pdp__help .gc-pdp__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 56px;
    align-items: center;
    padding-top: 56px;
    padding-bottom: 56px;
}

.gc-pdp__help-text {
    flex: 1 1 480px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gc-pdp__help .gc-pdp__h2 {
    color: #ffffff;
}

.gc-pdp__help .gc-pdp__h2 span {
    color: var(--gc-lime);
}

.gc-pdp__help-text p {
    font-family: var(--gc-serif) !important;
    font-size: 20px;
    line-height: 1.55;
    color: var(--gc-cloud);
}

.gc-pdp__help-actions {
    flex: 0 1 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* ---------- Phone ---------- */
@media (max-width: 640px) {
    .gc-pdp__inner {
        padding: 0 16px;
    }

    .gc-pdp__summary .gc-pdp__inner {
        gap: 20px;
        padding-top: 20px;
        padding-bottom: 48px;
    }

    .gc-pdp__details .gc-pdp__inner,
    .gc-pdp__related .gc-pdp__inner {
        padding-top: 44px;
        padding-bottom: 48px;
    }

    .gc-pdp__help .gc-pdp__inner {
        padding-top: 44px;
        padding-bottom: 44px;
    }

    .gc-pdp__crumbs {
        font-size: 13px;
    }

    .gc-pdp__thumb img {
        height: 64px;
    }

    .gc-pdp__lede :is(p, div, span, strong) {
        font-size: 19px;
    }

    .gc-pdp__checks li {
        font-size: 18px;
    }

    .gc-pdp__tab {
        padding: 12px 14px;
        font-size: 17px;
    }

    .gc-pdp__content,
    .gc-pdp__content :is(p, li) {
        font-size: 18px;
    }

    .gc-pdp__card {
        padding: 20px;
    }

    .gc-pdp__help-actions .gc-pdp__btn {
        flex: 1 1 100%;
        justify-content: center;
    }
}
