/* Small typography refresh; keep the existing theme palette and layout. */
:root {
    --bs-font-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-heading-font-family: var(--bs-font-sans-serif);
    /* Legacy templates can still use .font-serif. */
    --fotocode-serif: var(--bs-font-sans-serif);
}

body,
button,
input,
select,
textarea {
    font-family: var(--bs-font-sans-serif);
}

.btn {
    --bs-btn-border-radius: .5rem;
}

.form-control,
.form-select,
.woocommerce form .input-text {
    border-radius: .5rem;
}

.page-title,
.product_title,
.fotocode-loop-product-title,
.fotocode-cart-item--name-area {
    overflow-wrap: anywhere;
}

.fotocode-products > * {
    min-width: 0;
}

.fotocode-products .fotocode-product {
    width: 100%;
    max-width: 300px;
}

.fotocode-product-archive-link-with-preview {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
}

#entry-form {
    max-width: calc(100% - 2rem);
}

.variations_form .fotocode-options {
    display: grid;
    gap: 1.25rem;
}

.fotocode-option-group {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.fotocode-option-heading {
    float: none;
    width: auto;
    margin: 0 0 .625rem;
    padding: 0;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.4;
}

.fotocode-option-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .625rem;
}

.fotocode-option-list > select,
.fotocode-option-list > .reset_variations {
    grid-column: 1 / -1;
}

.fotocode-selection-summary {
    margin: 1rem 0;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.fotocode-selection-summary ul {
    padding-left: 1.25rem;
}

.fotocode-selection-summary li + li {
    margin-top: .25rem;
}

.fotocode-option-group--background .fotocode-option-list {
    grid-template-columns: repeat(auto-fit, minmax(108px, 1fr));
}

.fotocode-option-group .fotocode-attribute-choice {
    min-width: 0;
}

.fotocode-option-group .fotocode-choice-label {
    display: flex;
    align-items: stretch;
    gap: .625rem;
    min-height: 76px;
    margin: 0;
    padding: .75rem;
    border: 1px solid #d8e1e5;
    border-radius: .5rem;
    background: #fff;
    line-height: 1.4;
}

.fotocode-choice-name {
    font-size: 1rem;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.fotocode-choice-price {
    margin-top: .25rem;
    color: #5c6971;
    font-size: .8125rem;
    font-weight: 400;
    line-height: 1.4;
}

.fotocode-choice-price b,
.fotocode-choice-price strong,
.fotocode-choice-price .amount {
    font-weight: inherit;
}

.fotocode-choice-image img {
    display: block;
    width: 100%;
    height: 90px;
    object-fit: contain;
}

.fotocode-option-group--background .fotocode-choice-label {
    justify-content: center;
    text-align: center;
}

.fotocode-option-group .fotocode-choice-input:checked + label {
    border-color: #008b99 !important;
    background: #eef9fa;
    box-shadow: inset 0 0 0 1px #008b99;
}

.fotocode-option-group .fotocode-choice-input:focus-visible + label {
    outline: 3px solid #008b99;
    outline-offset: 3px;
}

.fotocode-option-group .fotocode-background-preview {
    top: 4px;
    right: 4px;
    box-shadow: 0 1px 4px #0002;
}

@media (min-width: 769px) {
    /* Contain the existing floated columns so sticky stops at the product's end. */
    .single-product.woocommerce main > div.product {
        display: flow-root;
    }

    .single-product.woocommerce main > div.product > .woocommerce-product-gallery.images {
        position: sticky;
        top: 6.5rem;
    }

    .single-product.woocommerce .woocommerce-product-gallery .wp-post-image {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: calc(100dvh - 7.5rem);
        margin-inline: auto;
    }
}

@media (max-width: 575.98px) {
    #entry-form {
        padding: 1.5rem !important;
    }

    /* Override the legacy form's inline minimum width on small screens. */
    #entry-form form {
        min-width: 0 !important;
    }
}
