﻿/*
Theme Name: Soloma
Theme URI: https://soloma.com
Author: Soloma
Author URI: https://soloma.com
Description: Custom WooCommerce theme for Soloma luxury fashion brand.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: soloma
*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

body,
select,
input,
textarea {
    color: var(--text-heading);
}

a {
    color: var(--text-dark);
}

a:hover {
    color: var(--text-dark);
}

::-moz-selection {
    background: var(--bg);
    color: var(--text-dark);
    text-shadow: none;
}

::selection {
    background: var(--bg);
    color: var(--text-dark);
    text-shadow: none;
}

a:link {
    -webkit-tap-highlight-color: var(--bg);
}

ins {
    background-color: var(--bg);
    color: #000;
    text-decoration: none;
}

mark {
    background-color: var(--bg);
    color: #000;
    font-style: italic;
    font-weight: bold;
}

input:-moz-placeholder {
    color: var(--text-muted);
}

textarea:-moz-placeholder {
    color: var(--text-muted);
}

:root {
    /* Backgrounds */
    --bg: #fff;
    --bg2: #fafafa;
    --bg-gray: #f2f2f2;
    --bg-product: #f8f8f8;
    --bg-light: #f4efe9;
    --bg-light-hover: #e6dfd6;
    --bg-overlap-box: #dfdfdb63;

    /* Text */
    --text: #3f3b3b;
    --text-dark: #222;
    --text-heading: #2f2f2f;
    --text-subtle: #444;
    --text-muted: #666;
    --text-placeholder: #777;
    --text-copyright: #888;
    --text-disabled: #999;

    /* Brand / Accent */
    --light: #b99f83;
    --light-dark: #9d8872;
    --light-hover: #a3896c;
    --light-border: #c8b7a6;
    --light-text: #a89380;

    /* Borders */
    --border: #ddd;
    --border-light: #eee;
    --border-input: #ccc;

    /* Functional */
    --btn-dark: #1a1a1e;
    --error: #cc0000;
    --danger: #c97c7c;
    --danger-border: #f2eaea;
    --danger-bg: #fdf5f5;

    /* FONTS SIZE */
    --text-xs: 12px;
    --text-sm: 14px;
    --text-md: 16px;
    --text-lg: 18px;
    --text-xl: 20px;
    --text-2xl: 24px;
    --text-3xl: 30px;
    --text-4xl: 36px;
    --text-5xl: 48px;
}



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



body,
button,
input,
textarea,
select,
option {
    font-family: "Poppins", sans-serif;
    color: var(--text);
}



/* =========================
   LOADER
========================= */


#page-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.page-loader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.page-loader-logo {
    font-family: 'cormorant_garamondlight';
    font-size: 28px;
    letter-spacing: 2px;
    color: var(--text-muted) !important;
}

.page-loader-spinner {
    width: 40px;
    height: 40px;
    border: 2px solid #dfdfdf;
    border-top-color: var(--text-muted);
    border-radius: 50%;
    animation: solomaSpin 0.75s linear infinite;
}

@keyframes solomaSpin {
    to {
        transform: rotate(360deg);
    }
}



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

.container {
    width: 95%;
    max-width: 1900px;
    margin: 0 auto;
}

.container-mid {
    width: 80%;
    max-width: 1900px;
    margin: 0 auto;
}

/* =========================
   BUTTONS
========================= */

.btn-primary {
    display: inline-block;
    background: var(--light);
    color: var(--bg);
    padding: .5em 1.2em;
    text-decoration: none;
    border-radius: 6px;
    font-size: var(--text-sm);
    text-align: center;
    font-weight: 500;
    transition: background 0.3s;
}

.btn-primary:hover {
    background: var(--light-dark);
    color: var(--bg);
}

.btn-dark {
    display: inline-block;
    background: var(--text-heading);
    color: var(--bg);
    padding: .5em 2em;
    text-decoration: none;
    border-radius: 20px;
    font-weight: 600;
    transition: box-shadow 0.3s;
}

.btn-dark:hover {
    box-shadow: 0 4px 15px rgba(51, 51, 51, 0.3);
    color: var(--bg);
}

.btn-light {
    background: var(--bg-light);
    color: var(--text-heading);
    border: none;
    border-radius: 4px;
    padding: 16px;
    font-size: var(--text-md);
    font-weight: 400;
    cursor: pointer;
    transition: background 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
}

.btn-light:hover {
    background: var(--bg-light-hover);
}

/* =========================
   HEADER
========================= */

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 7.5vh;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bg2);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {
    font-family: 'cormorant_garamondlight';
    font-size: 28px;
    letter-spacing: 2px;
}

.logo a {
    text-decoration: none;
}

.main-nav ul {
    display: flex;
    gap: 40px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-nav li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-nav a {
    text-decoration: none;
    color: var(--text-heading);
    font-size: var(--text-sm);
    font-weight: 500;
}

.main-nav a:hover {
    color: var(--light);
}

.menu-overlay {
    display: contents;
}

.mobile-menu-toggle {
    display: none;
    width: 30px;
    height: 24px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 11;
    position: relative;
}

.mobile-menu-toggle span {
    position: absolute;
    left: 0;
    width: 30px;
    height: 2px;
    background: var(--text-heading);
    transition: all 0.3s ease-in-out;
}

.mobile-menu-toggle span:nth-child(1) {
    top: 0;
}

.mobile-menu-toggle span:nth-child(2) {
    top: 11px;
}

.mobile-menu-toggle span:nth-child(3) {
    top: 22px;
}

.mobile-menu-toggle.is-active span:nth-child(1) {
    top: 11px;
    transform: rotate(45deg);
}

.mobile-menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.is-active span:nth-child(3) {
    top: 11px;
    transform: rotate(-45deg);
}

.header-actions {
    display: flex;
    gap: 20px;
    font-weight: 500;
}

.header-actions a {
    text-decoration: none;
    font-size: var(--text-sm);
    color: var(--text-heading);
}

.header-actions .searchbar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: .5em 1.2em;
    border-radius: .5em;
    border: 1px solid var(--border-input);

}

.header-actions .searchbar .search-icon {
    width: 16px;
    height: 16px;
    background: url('images/ico-search.png') center/contain no-repeat;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

.header-actions .searchbar input {
    border: none;
    padding: 0;
    font-size: var(--text-sm);
    background: transparent;
    width: 60px;
    font-weight: 500;
    outline: none;
    text-align: center;
}



.header-actions .cart-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bg);
    gap: 10px;
}

.header-actions .cart-btn .cart-icon {
    width: 16px;
    height: 16px;
    background: url('images/ico-shopping-cart.png') center/contain no-repeat;
}

.header-actions .cart-btn {
    position: relative;
}

.header-actions .cart-btn .cart-count {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--text-heading);
    color: var(--bg);
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
}



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

.hero {
    position: relative;
    height: 92.5vh;
    margin-top: 7.5vh;
    background: url(images/hero-max.jpg) center/cover no-repeat;
    display: flex;
    align-items: center;
}

.hero-actions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    justify-content: center;
}

.btn-shop-now {
    grid-column: 1 / 2;
    padding: 1em 2em;
    width: 60%;
    justify-self: center;
    font-size: var(--text-md);
}

.hero-content {
    z-index: 2;
}



/* =========================
   POPUP
========================= */

.hero-popup {
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);

    background: var(--bg);
    padding: 40px 26px;
    text-align: center;
    border-radius: 8px;
    z-index: 3;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.hero-popup h3 {
    font-size: var(--text-3xl);
    margin-bottom: 10px;
    font-weight: 500;
}

.hero-popup p {
    font-size: var(--text-md);
    margin-bottom: 40px;
}

.hero-popup small {
    display: block;
    font-size: var(--text-xs);
    color: var(--text-placeholder);
    margin-top: 20px;
}

.popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    border: none;
    background: none;
    font-size: var(--text-2xl);
    cursor: pointer;
}


/* =========================
   STORY
========================= */

#story {
    padding: 80px 0;
    text-align: center;
    font-family: 'cormorant_garamondlight', serif;
    font-size: var(--text-5xl);
    color: var(--text);
}

/* =========================
   HOME BANNER
========================= */

.home-banner {
    position: relative;
    width: 100%;
}

.home-banner img {
    width: 100%;
    height: auto;
    display: block;
}

.home-banner .home-banner-img-desktop {
    display: block;
}

.home-banner .home-banner-img-mobile {
    display: none;
}

.home-banner h2 {
    position: absolute;
    top: 14%;
    left: 8%;
    font-size: var(--text-lg);
    line-height: 32px;
    font-weight: 400;
    margin: 0;
    text-align: left;
    width: 20%;
}

.home-banner-reverse h2 {
    left: auto;
    right: 8%;
    font-size: var(--text-xl);
}

/* =========================
   HOME PRODUCTS CAROUSEL
========================= */

.home-products-section {
    background: var(--bg-gray);
    padding: 75px 0 85px;
}

.home-products-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
}

.product-carousel {
    overflow: hidden;
    width: 100%;
}

.product-track {
    display: flex;
    gap: 18px;
    transition: transform 0.4s ease;
    will-change: transform;
}

.product-card {
    flex: 0 0 calc((100% - 90px) / 6);
    min-width: 0;
}

.product-card a {
    color: inherit;
    text-decoration: none;
    display: block;
}

.product-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    background: var(--border-light);
}

.product-card h2 {
    margin: 14px 0 8px;
    font-size: var(--text-xs);
    line-height: 1.35;
    font-weight: 400;
    color: var(--text);
}

.product-card p {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1;
    color: var(--text-dark);
}

.product-nav {
    border: none;
    background: transparent;
    color: var(--text-heading);
    font-size: var(--text-4xl);
    line-height: 1;
    width: 30px;
    height: 44px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

.product-nav:disabled {
    opacity: 0.25;
    cursor: default;
}


/* =========================
   COLOR PALETTES
========================= */

.color-palettes {
    padding: 80px 0;
}

.palettes-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin: 0 auto;
}

.palette-card {
    background: var(--bg);
    border: 1px solid var(--bg-gray);
    border-radius: 8px;
    padding: 45px 50px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.02);
    display: flex;
    flex-direction: column;
}

.palette-card h3 {
    text-align: center;
    margin-bottom: 25px;
    font-size: var(--text-md);
    font-weight: 400;
    letter-spacing: 0.5px;
}

.palette-card p {
    font-size: var(--text-sm);
    line-height: 1.8;
    color: var(--text-subtle);
    margin-bottom: 35px;
}

.palette-colors {
    display: flex;
    gap: 40px;
    margin-top: auto;
}

.color-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.color-circle {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.color-name {
    font-size: var(--text-sm);
    color: var(--text-subtle);
}


/* =========================
   CORE COLLECTION
========================= */

.core-collection {
    background: var(--bg2);
    padding: 80px 0;
}

.core-collection .section-title {
    font-size: var(--text-3xl);
    font-weight: 300;
    margin-bottom: 50px;
    color: var(--text-heading);
}

.collection-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.collection-card {
    background: var(--bg);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
}

.collection-card .img-wrapper {
    width: 100%;
    background: var(--bg-product);
}

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

.collection-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.collection-card h3 {
    font-size: var(--text-md);
    font-weight: 500;
    margin-bottom: 12px;
    color: var(--text-heading);
    line-height: 1.4;
}

.collection-card .price {
    font-size: var(--text-sm);
    color: var(--text-subtle);
    margin-bottom: 25px;
}

.btn-outline {
    display: inline-block;
    border: 1px solid var(--light-border);
    color: var(--light-text);
    padding: 10px 0;
    text-align: center;
    border-radius: 4px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: auto;
}

.btn-outline:hover {
    background: var(--light-border);
    color: var(--bg);
}

.collection-actions {
    text-align: center;
    margin-top: 50px;
}

.btn-outline-dark {
    display: inline-block;
    border: 1px solid var(--border);
    color: var(--text-heading);
    padding: 12px 35px;
    text-align: center;
    border-radius: 4px;
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 500;
    transition: all 0.3s ease;
    background: var(--bg);
}

.btn-outline-dark:hover {
    border-color: var(--text-heading);
}


/* =========================
   CONTACT SECTION
========================= */


.contact-section {
    background: var(--bg2);
    padding-top: 80px;
    padding-bottom: 40px;
    font-size: var(--text-sm);
    color: var(--text);
}

.contact-section-container {
    display: flex;
    justify-content: space-between;
    gap: 60px;
}

.contact-section-help {
    width: 45%;
}

.contact-section-help h2 {
    font-size: var(--text-2xl);
    font-weight: 500;
    margin-bottom: 30px;
    color: var(--text-dark);
}

.contact-section-help p {
    line-height: 1.6;
    margin-bottom: 30px;
}


.contact-section-form {
    width: 50%;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    font-size: var(--text-xs);
    color: var(--text-heading);
}

.form-group label span {
    color: var(--error);
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--text-sm);
    box-sizing: border-box;
    outline: none;
    background: transparent;
}

.form-group textarea {
    height: 100px;
    resize: vertical;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: var(--text-disabled);
}

.btn-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px;
    background: var(--btn-dark);
    color: var(--bg);
    border: none;
    border-radius: 4px;
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s;
}

.btn-submit img {
    width: 16px;

}

.btn-submit:hover {
    background: var(--text-heading);
}

/* WPForms — same tokens as .form-group / .btn-submit / .email-direct */
.contact-section-form .wpforms-contact-wrapper {
    width: 100%;
}

.contact-section-form .wpforms-container,
.contact-section-form div.wpforms-container-full {
    margin: 0;
    width: 100%;
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-field {
    padding: 0;
    margin: 0 0 20px;
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-field-label {
    display: block;
    float: none;
    margin: 0 0 8px;
    padding: 0;
    font-family: inherit;
    font-weight: 500;
    font-size: var(--text-xs);
    line-height: 1.35;
    color: var(--text-heading);
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-required-label {
    color: var(--error);
    font-weight: inherit;
    font-size: inherit;
}

.contact-section-form div.wpforms-container-full .wpforms-form input[type="text"],
.contact-section-form div.wpforms-container-full .wpforms-form input[type="email"],
.contact-section-form div.wpforms-container-full .wpforms-form input.wpforms-field-medium,
.contact-section-form div.wpforms-container-full .wpforms-form textarea,
.contact-section-form div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium {
    display: block;
    float: none;
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 12px 15px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--text-sm);
    line-height: 1.4;
    box-sizing: border-box;
    outline: none;
    background: transparent;
    color: var(--text);
    box-shadow: none;
}

.contact-section-form div.wpforms-container-full .wpforms-form textarea,
.contact-section-form div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium {
    height: 100px;
    min-height: 100px;
    resize: vertical;
}

.contact-section-form div.wpforms-container-full .wpforms-form input:focus,
.contact-section-form div.wpforms-container-full .wpforms-form textarea:focus {
    border-color: var(--text-disabled);
    background: transparent;
}

.contact-section-form div.wpforms-container-full .wpforms-form input.wpforms-error,
.contact-section-form div.wpforms-container-full .wpforms-form textarea.wpforms-error,
.contact-section-form div.wpforms-container-full .wpforms-form input.user-invalid,
.contact-section-form div.wpforms-container-full .wpforms-form textarea.user-invalid {
    border-color: var(--error);
}

.contact-section-form div.wpforms-container-full .wpforms-form label.wpforms-error,
.contact-section-form div.wpforms-container-full .wpforms-form em.wpforms-error {
    display: block;
    margin-top: 6px;
    font-size: var(--text-xs);
    font-style: normal;
    font-weight: 400;
    color: var(--error);
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-error-container,
.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-error-noscript {
    margin-bottom: 16px;
    padding: 0;
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--error);
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-submit-container {
    position: relative;
    padding: 0;
    margin: 0;
}

.contact-section-form div.wpforms-container-full .wpforms-form button[type="submit"],
.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 14px;
    background: var(--btn-dark);
    color: var(--bg);
    border: none;
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: normal;
    text-transform: none;
    cursor: pointer;
    transition: background 0.3s;
    box-shadow: none;
}

/* Send icon — WPForms escapes button HTML, so use ::before like mockup img */
.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-submit::before {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background: url(images/ico-send.png) center / contain no-repeat;
}

.contact-section-form div.wpforms-container-full .wpforms-form button[type="submit"]:hover,
.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-submit:hover {
    background: var(--text-heading);
}

.contact-section-form div.wpforms-container-full .wpforms-form .wpforms-submit-spinner {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
}

.contact-section-form .wpforms-confirmation-container-full,
.contact-section-form .wpforms-confirmation-container {
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    font-size: var(--text-sm);
    color: var(--text-dark);
}



/* =========================
   FOOTER
========================= */

.site-footer {
    background: var(--bg2);
    padding-bottom: 40px;
    font-size: var(--text-sm);
    color: var(--text);
}


.social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border);
    border-radius: 4px;
    transition: background 0.3s;
}

.social-link:hover {
    background: var(--bg2);
}

.social-link img {
    width: 20px;
    height: auto;
}



.email-direct {
    margin-top: 15px;
    font-size: 13px;
}

.email-direct a {
    text-decoration: underline;
}

.footer-middle {
    border-top: 1px solid var(--border-light);
    padding: 40px 0;
    display: flex;
    justify-content: flex-start;
    gap: 30%;
}

.footer-menu-col h4 {
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--text-muted);
    margin-bottom: 20px;
    letter-spacing: 1px;
    font-family: 'cormorant_garamondlight', serif;
}

.footer-menu-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu-col li {
    margin-bottom: 12px;
}

.footer-menu-col a,
.footer-menu-col li {
    color: var(--text-heading);
    text-decoration: none;
    font-size: var(--text-sm);
}

.footer-menu-col a:hover {
    text-decoration: underline;
}

.footer-bottom {
    border-top: 1px solid var(--border-light);
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

.footer-bottom-links {
    display: flex;
    gap: 30px;
}

.footer-bottom-links a {
    color: var(--text-muted);
    text-decoration: none;
    font-size: var(--text-sm);
}

.footer-bottom-links a:hover {
    text-decoration: underline;
}

.footer-newsletter {
    display: flex;
    align-items: center;
    gap: 20px;
}

.footer-newsletter span {
    font-size: var(--text-sm);
    color: var(--text-muted);
}

.newsletter-input {
    display: flex;
    border-bottom: 1px solid var(--border-input);
    padding-bottom: 5px;
}

.newsletter-input input {
    border: none;
    outline: none;
    font-size: var(--text-sm);
    width: 150px;
    background: transparent;
}

.newsletter-input button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 5px;
}

.newsletter-input button img {
    width: 14px;
    opacity: 0.6;
}

.newsletter-input button:hover img {
    opacity: 1;
}

.footer-copyright {
    font-size: var(--text-sm);
    color: var(--text-copyright);
}


/* =========================
   ABOUT US PAGE
========================= */

.about-page {
    padding-bottom: 60px;
}

.about-tell-story {
    display: flex;
    position: relative;
    margin-top: 7.5vh;
    margin-bottom: 120px;
}

.about-tell-story .story-image {
    width: 55%;
}

.about-tell-story .story-image img {
    width: 100%;
    height: auto;
    display: block;
}

.about-tell-story .story-content {
    width: 45%;
    padding-left: 60px;
    padding-right: 40px;
    position: relative;
}

.story-header {
    padding: 30% 0;
}

.story-header h2 {
    font-family: 'cormorant_garamondlight', serif;
    font-size: var(--text-5xl);
    font-weight: 300;
    line-height: 1.6;
    margin: 0;
    text-align: center;
}

.overlap-box {
    background: var(--bg-overlap-box);
    padding: 40px;

}

.story-vision {
    position: absolute;
    left: -12vw;
    right: 2vw;
    bottom: 0;
    width: calc(100% + 10vw);
    z-index: 2;
    padding-left: 52%;
}

.story-vision h3 {
    font-family: 'cormorant_garamondlight', serif;
    font-size: 32px;
    font-weight: 400;
    margin-bottom: 40px;
    color: var(--text-subtle);
    text-align: center;
}

.story-vision p {
    font-style: italic;
    color: var(--text-subtle);
    line-height: 1.8;
    font-size: var(--text-lg);
}

.about-content {
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding-top: 40px;
    margin-bottom: 80px;
}

.about-threads {
    margin-bottom: 120px;
}

.about-threads .section-title {
    font-size: var(--text-3xl);
    font-weight: 500;
    margin: 0;
    padding-left: 60px;
    padding-bottom: 30px;
    color: var(--text-heading);
}

.threads-hero {
    margin-bottom: 40px;
}

.threads-hero-inner {
    position: relative;
    max-width: 100%;
}

.threads-hero-inner img {
    width: 80%;
    display: block;
}

.threads-quote-box {
    position: absolute;
    right: 0%;
    width: 92%;
    bottom: -4%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.threads-quote-box h3 {
    font-family: 'cormorant_garamondbold', serif;
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--text-subtle);
    text-align: center;
    flex: 1;
}

.threads-quote-box p {
    font-style: italic;
    font-size: var(--text-xl);
    line-height: 1.6;
    color: var(--text-subtle);
    margin: 0;
    width: 16%;
    padding-top: 40px;
    padding-bottom: 40px;
}

.threads-text {
    width: 55%;
    line-height: 1.8;
    color: var(--text-subtle);
    font-size: var(--text-xl);
    padding-top: 60px;
    padding-left: 60px;
}

.about-fabrics {
    margin-bottom: 80px;
}

.fabrics-bg {
    background: #fcfcfc;
    padding: 60px 160px;
}

.fabrics-header .section-title {
    text-align: right;
    font-size: var(--text-3xl);
    font-weight: 500;
    margin-bottom: 50px;
}

.fabrics-content {
    display: flex;
    gap: 60px;
}

.fabrics-sidebar {
    width: 30%;
}

.fabrics-sidebar h3 {
    font-size: var(--text-xl);
    font-weight: 600;
    margin-bottom: 30px;
    letter-spacing: 1px;
}

.fabric-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fabric-nav li {
    padding: 18px 25px;
    margin-bottom: 10px;
    cursor: pointer;
    font-size: var(--text-lg);
    font-weight: 500;
    background: var(--bg);
    border: 2px solid var(--bg);
    transition: background 0.3s;
    border-radius: 4px;
}

.fabric-nav li.active,
.fabric-nav li:hover {
    background: transparent;
    border: 2px solid #cdc6bf1f;
}

.fabrics-display {
    width: 70%;
}

.fabric-item {
    display: none;
    background: var(--bg);
    padding: 0;
    box-shadow: 0 4px 25px rgba(0, 0, 0, 0.03);
    border-radius: 8px;
    overflow: hidden;
}

.fabric-item.active {
    display: block;
    animation: fadeIn 0.5s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.fabric-item img {
    width: 100%;
    height: auto;
    display: block;
}

.fabric-desc {
    padding: 30px;
}

.fabric-desc h4 {
    font-size: var(--text-xl);
    margin-bottom: 15px;
    font-weight: 500;
}

.fabric-desc p {
    font-size: var(--text-md);
    color: var(--text-muted);
    line-height: 1.6;
}

/* =========================
   SHOP PAGE
========================= */

.shop-page {
    margin-top: 7.5vh;
    padding: 60px 0 100px;
}

.breadcrumbs {
    font-size: var(--text-sm);
    color: var(--text-placeholder);
    margin-bottom: 40px;
}

.breadcrumbs a {
    color: var(--text-placeholder);
    text-decoration: none;
}

.breadcrumbs a:hover {
    color: var(--text-heading);
}

.breadcrumbs span {
    color: var(--text-dark);
    font-weight: 500;
}

.page-title {
    font-size: var(--text-4xl);
    font-weight: 400;
    margin-bottom: 50px;
    color: var(--text-dark);
}

.shop-filters {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-light);
    padding-bottom: 25px;
    margin-bottom: 60px;
}

.filters-left,
.filters-right {
    display: flex;
    align-items: center;
    gap: 25px;
}

.filter-label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-heading);
}

.custom-select {
    position: relative;
}

.custom-select select {
    appearance: none;
    background: transparent;
    border: none;
    font-family: inherit;
    font-size: var(--text-sm);
    color: var(--text-muted);
    padding-right: 22px;
    cursor: pointer;
    outline: none;
    transition: color 0.3s;
}

.custom-select select:hover {
    color: var(--light);
}

.custom-select::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-20%);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid var(--text-copyright);
    pointer-events: none;
    transition: border-top-color 0.3s;
}

.custom-select:hover::after {
    border-top-color: var(--light);
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin-bottom: 80px;
}

.shop-product-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-light);
    border-radius: 8px;
}

.product-img-wrapper {
    aspect-ratio: 1 / 1;
    background: var(--bg-product);
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    overflow: hidden;
}

.product-img-wrapper a {
    display: block;
    width: 100%;
    height: 100%;
}

.product-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-info {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 20px;
}

.product-info-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.product-info-link:hover,
.product-info-link:focus {
    color: inherit;
    text-decoration: none;
}

.product-info h3 {
    font-size: var(--text-lg);
    font-weight: 500;
    margin-bottom: 10px;
    color: var(--text-dark);
}

.product-info h3 a {
    color: inherit;
    text-decoration: none;
}

.product-info p {
    font-size: var(--text-sm);
    color: var(--text-placeholder);
    line-height: 1.6;
    margin-bottom: 15px;
}

.product-info .price {
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 25px;
    display: block;
}

.btn-add-to-cart {
    background: var(--light);
    color: var(--bg);
    border: none;
    border-radius: 4px;
    padding: 14px;
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease;
    margin-top: auto;
}

.btn-add-to-cart:hover {
    background: var(--light-hover);
}

.shop-actions {
    text-align: center;
}

.btn-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--bg);
    border: 1px solid var(--border);
    color: var(--text-heading);
    padding: 14px 45px;
    border-radius: 4px;
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.loader-icon {
    width: 16px;
    height: 16px;
    border: 2px solid var(--border-input);
    border-top: 2px solid var(--text-heading);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.btn-load-more:hover {
    border-color: var(--text-heading);
    background: var(--bg2);
}

/* =========================
   CART PAGE
========================= */

.cart-page {
    margin-top: 7.5vh;
    padding: 60px 0 100px;
}

.cart-title {
    font-size: var(--text-3xl);
    font-weight: 400;
    margin-bottom: 40px;
    color: var(--text-dark);
}

.cart-layout {
    display: flex;
    gap: 40px;
}

/* Left Section */
.cart-items-section {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cart-item {
    display: flex;
    align-items: center;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 20px;
    background: var(--bg);
    gap: 20px;
}

.item-image {
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}

.item-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.item-details {
    flex: 1;
}

.item-details h3 {
    font-size: var(--text-xl);
    font-weight: 400;
    margin-bottom: 8px;
    color: var(--text-dark);
}

.item-details p {
    font-size: var(--text-sm);
    color: var(--text-muted);
    line-height: 1.5;
}

.item-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 15px;
}

.quantity-selector {
    display: flex;
    align-items: center;
    gap: 10px;
}

.qty-btn {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    font-size: var(--text-lg);
    cursor: pointer;
    color: var(--text-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
}

.qty-input {
    width: 30px;
    text-align: center;
    border: none;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text-dark);
}

.item-price {
    font-size: var(--text-md);
    font-weight: 500;
    color: var(--text-dark);
}

.btn-remove {
    background: transparent;
    border: 1px solid var(--danger-border);
    color: var(--danger);
    border-radius: 4px;
    padding: 5px 12px;
    font-size: var(--text-xs);
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s;
    display: flex;
    align-items: center;
    gap: 5px;
}

.btn-remove:hover {
    background: var(--danger-bg);
}

/* Right Section */
.cart-sidebar {
    width: 350px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.summary-card,
.checkout-card {
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 30px;
    background: var(--bg);
}

.summary-card h2,
.checkout-card h2 {
    font-size: var(--text-xl);
    font-weight: 400;
    margin-bottom: 25px;
    color: var(--text-dark);
}

.summary-row {
    display: flex;
    justify-content: space-between;
    font-size: var(--text-sm);
    color: var(--text-subtle);
    margin-bottom: 15px;
}

.summary-row.total {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0;
    margin-top: 20px;
}

.summary-row.total span {
    font-weight: 700;
}

.summary-card hr {
    border: none;
    border-top: 1px solid var(--border-light);
    margin: 20px 0;
}

.form-section {
    margin-bottom: 30px;
}

.form-section h3 {
    font-size: var(--text-sm);
    font-weight: 500;
    margin-bottom: 20px;
    color: var(--text-heading);
}

.form-row {
    margin-bottom: 15px;
}

.form-row.two-cols {
    display: flex;
    gap: 15px;
}

.form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group label {
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--text-heading);
}

.form-group input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--text-sm);
    box-sizing: border-box;
}

.checkout-actions .btn-light {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px;
    text-align: center;
    background: var(--text-heading);
    color: var(--bg);
    border-radius: 4px;
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 600;
    transition: opacity 0.2s;
    border: none;
    cursor: pointer;
    width: 100%;
}

.checkout-actions .btn-light:hover {
    opacity: 0.9;
}

.checkout-actions .btn-light img {
    height: 12px;
    transform: rotate(180deg);
}

.checkout-page {
    margin-top: 7.5vh;
    padding: 60px 0 100px;
}

.checkout-title {
    font-size: var(--text-3xl);
    font-weight: 400;
    margin-bottom: 40px;
    color: var(--text-dark);
}

.checkout-stacked-layout {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 700px;
    margin: 0 auto;
}

.checkout-stacked-layout .checkout-order-summary,
.checkout-stacked-layout .checkout-card {
    width: 100%;
}

/* WooCommerce markup bridge — styles WC output to match mockup without overriding layout */
.cart-page .woocommerce-cart-form {
    margin: 0;
}

.cart-page .cart-collaterals,
.cart-page .wc-proceed-to-checkout {
    display: none;
}

.cart-page .cart-item .item-details h3 a {
    color: inherit;
    text-decoration: none;
}

.cart-page .cart-item .item-details h3 a:hover {
    opacity: 0.8;
}

.cart-page .cart-item .item-description-meta,
.cart-page .cart-item .item-desc {
    font-size: var(--text-sm);
    color: var(--text-muted);
    line-height: 1.5;
}

.cart-page .cart-item dl.variation {
    margin: 6px 0 0;
    font-size: var(--text-sm);
    color: var(--text-muted);
}

.cart-page .cart-item dl.variation dt,
.cart-page .cart-item dl.variation dd {
    display: inline;
    margin: 0;
}

.cart-page .cart-item dl.variation dt::after {
    content: ': ';
}

.cart-page .cart-item dl.variation dd::after {
    content: ' ';
}

.cart-page a.btn-remove {
    text-decoration: none;
}

.cart-page .summary-row .woocommerce-shipping-methods,
.cart-page .summary-row .shipping-calculator-form,
.cart-page .summary-row .woocommerce-shipping-destination {
    display: none;
}

.cart-page .summary-row.shipping span:last-child {
    text-align: right;
}

.checkout-order-review.summary-card-inner h2,
.checkout-card #order_review_heading {
    display: none;
}

.checkout-card .checkout-field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.checkout-card .checkout-field-grid .form-row-wide,
.checkout-card .checkout-field-grid #billing_country_field,
.checkout-card .checkout-field-grid #billing_phone_field,
.checkout-card .checkout-field-grid #billing_email_field,
.checkout-card .checkout-field-grid #shipping_country_field,
.checkout-card .checkout-field-grid #order_comments_field {
    grid-column: 1 / -1;
}

.checkout-page .woocommerce-checkout .form-row,
.checkout-card .checkout-field-grid .form-row {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    padding: 0;
}

.checkout-page .woocommerce-checkout .form-row label,
.checkout-card .checkout-field-grid .form-row label {
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--text-heading);
    text-transform: none;
    letter-spacing: normal;
    line-height: 1.4;
}

.checkout-page .woocommerce-checkout .form-row .required,
.checkout-card .checkout-field-grid .form-row .required {
    color: inherit;
    text-decoration: none;
}

.checkout-page .woocommerce-checkout .form-row input.input-text,
.checkout-page .woocommerce-checkout .form-row select,
.checkout-page .woocommerce-checkout .form-row textarea,
.checkout-card .checkout-field-grid .form-row input.input-text,
.checkout-card .checkout-field-grid .form-row select,
.checkout-card .checkout-field-grid .form-row textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--text-sm);
    box-sizing: border-box;
    background: var(--bg);
    color: var(--text-dark);
}

.checkout-page .woocommerce-checkout .form-row input.input-text:focus,
.checkout-page .woocommerce-checkout .form-row select:focus,
.checkout-page .woocommerce-checkout .form-row textarea:focus,
.checkout-card .checkout-field-grid .form-row input.input-text:focus,
.checkout-card .checkout-field-grid .form-row select:focus,
.checkout-card .checkout-field-grid .form-row textarea:focus {
    border-color: var(--text-heading);
    outline: none;
}

.checkout-card .woocommerce-checkout-payment {
    background: none;
    border: none;
    padding: 0;
    border-radius: 0;
}

.checkout-card .woocommerce-checkout-payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.checkout-card .woocommerce-checkout-payment ul.payment_methods li {
    margin: 0;
}

.checkout-card .woocommerce-checkout-payment ul.payment_methods li label {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text-heading);
    cursor: pointer;
}

.checkout-card .woocommerce-checkout-payment .payment_box {
    background: var(--bg);
    border: 1px solid var(--border-light);
    padding: 12px 16px;
    border-radius: 4px;
    font-size: var(--text-xs);
    color: var(--text-muted);
    line-height: 1.6;
    margin-top: 8px;
}

.checkout-card .woocommerce-checkout-payment .place-order {
    margin: 0;
    padding: 0;
    border: none;
}

.checkout-card .woocommerce-checkout-payment button#place_order img,
.checkout-card .btn-light img {
    height: 12px;
    transform: rotate(180deg);
}

.checkout-card #customer_details {
    display: block;
}

.checkout-card .ship-to-different-address {
    margin-bottom: 20px;
}

.checkout-card .ship-to-different-address label {
    font-size: var(--text-sm);
    color: var(--text-subtle);
}

.checkout-card .checkout-field-grid .form-row select,
.checkout-page .woocommerce-checkout .form-row select {
    appearance: none;
    background-color: var(--bg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer;
}

.checkout-card .select2-container {
    width: 100% !important;
}

.checkout-card .select2-container--default .select2-selection--single {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: auto;
    min-height: 40px;
    padding: 6px 12px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    background: var(--bg);
}

.checkout-card .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 1.4;
    color: var(--text-dark);
    font-size: var(--text-sm);
}

.checkout-card .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    right: 8px;
}

.checkout-card .select2-container--default.select2-container--focus .select2-selection--single,
.checkout-card .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--text-heading);
}

.checkout-card .woocommerce-terms-and-conditions-wrapper {
    margin-bottom: 16px;
}

.checkout-card .woocommerce-privacy-policy-text,
.checkout-card .woocommerce-privacy-policy-text p {
    font-size: var(--text-xs);
    color: var(--text-muted);
    line-height: 1.5;
    margin: 0 0 16px;
}

.checkout-card .woocommerce-privacy-policy-text a {
    color: var(--text-subtle);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.checkout-card .woocommerce-terms-and-conditions-checkbox-text {
    font-size: var(--text-xs);
    color: var(--text-muted);
}

.checkout-order-review .tax-total span:first-child {
    text-transform: none;
}

@media (max-width: 768px) {
    .checkout-card .checkout-field-grid {
        grid-template-columns: 1fr;
    }
}

.cart-empty-page .cart-empty-message {
    max-width: 520px;
    padding: 40px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
}

.cart-empty-page .cart-empty-message .woocommerce-info,
.cart-empty-page .cart-empty-message .wc-empty-cart-message {
    font-size: var(--text-md);
    color: var(--text-subtle);
    margin-bottom: 24px;
    border: none;
    background: transparent;
    padding: 0;
}

.cart-empty-page .return-to-shop {
    margin: 0;
}

.cart-empty-page .return-to-shop .btn-outline-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    text-decoration: none;
}


/* =========================
   PRODUCT DETAIL PAGE
========================= */

.product-detail-page {
    margin-top: 7.5vh;
    padding: 40px 0 100px;
}

.breadcrumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--text-sm);
    color: var(--text-muted);
    margin-bottom: 40px;
}

.breadcrumbs .back-link {
    font-size: var(--text-2xl);
    margin-right: 20px;
    color: var(--text-disabled);
    text-decoration: none;
    transition: color 0.3s;
}

.breadcrumbs .back-link:hover {
    color: var(--text-heading);
}

.product-detail-container {
    display: flex;
    gap: 60px;
    margin-bottom: 100px;
}

.product-gallery {
    width: 55%;
    display: flex;
    gap: 20px;
}

.thumbnails {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 80px;
}

.thumb-btn {
    border: 1px solid transparent;
    background: transparent;
    padding: 0;
    cursor: pointer;
    border-radius: 4px;
    overflow: hidden;
    transition: border-color 0.3s;
}

.thumb-btn:hover,
.thumb-btn.active {
    border-color: var(--text-disabled);
}

.thumb-btn img {
    width: 100%;
    display: block;
}

.main-image {
    flex-grow: 1;
    border: 1px solid var(--border-light);
    border-radius: 4px;
    overflow: hidden;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}

.main-image img {
    width: 100%;
    display: block;
    pointer-events: none;
}

.product-info-detail {
    width: 45%;
    padding-top: 20px;
}

.product-title {
    font-size: var(--text-2xl);
    font-weight: 500;
    margin-bottom: 20px;
    letter-spacing: 1px;
}

.product-info-detail .product-price {
    font-size: var(--text-xl);
    font-weight: 600;
    margin-bottom: 15px;
}

.product-subtitle {
    font-size: var(--text-sm);
    color: var(--text-muted);
    margin-bottom: 30px;
    line-height: 1.5;
}

.product-colors,
.product-sizes {
    margin-bottom: 30px;
}

.product-colors .label,
.product-sizes .label-bold,
.size-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    margin-bottom: 15px;
    font-size: var(--text-sm);
    color: var(--text-subtle);
}

.product-colors .label strong {
    font-weight: 500;
    color: var(--text-heading);
}

.color-options {
    display: flex;
    gap: 15px;
}

.color-btn {
    width: 45px;
    height: 30px;
    border-radius: 15px;
    border: 1px solid var(--border);
    cursor: pointer;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
}

.color-btn:hover {
    transform: scale(1.1);
}

.color-btn.active {
    box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px var(--text-heading);
}

.color-btn.disabled,
.color-btn[aria-disabled="true"] {
    opacity: 0.35;
    cursor: not-allowed;
    transform: none;
    pointer-events: none;
}

.color-btn.disabled:hover,
.color-btn[aria-disabled="true"]:hover {
    transform: none;
}

.size-header .size-guide {
    color: var(--text-disabled);
    text-decoration: none;
    font-size: var(--text-xs);
    transition: color 0.3s;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font-family: inherit;
    letter-spacing: inherit;
    cursor: pointer;
    line-height: inherit;
}

.size-header .size-guide:hover {
    color: var(--text-heading);
}

.size-options {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.size-btn {
    width: 50px;
    height: 40px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all 0.3s;
}

.size-btn:hover,
.size-btn.active {
    border-color: var(--text-heading);
    background: #fcfcfc;
}

.size-btn.disabled,
.size-btn[aria-disabled="true"] {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
    text-decoration: line-through;
    color: var(--text-disabled);
}

.size-btn.disabled:hover,
.size-btn[aria-disabled="true"]:hover {
    border-color: var(--border);
    background: var(--bg);
}

/* OOS but selectable (for back-in-stock notify). */
.size-btn.out-of-stock {
    opacity: 0.7;
    text-decoration: line-through;
    cursor: pointer;
    pointer-events: auto;
}

.btn-primary-add {
    margin-bottom: 40px;
}

.btn-primary-add.disabled,
.btn-primary-add.wc-variation-selection-needed,
.btn-primary-add.wc-variation-is-unavailable,
.btn-primary-add:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: auto;
}

.btn-primary-add.disabled:hover,
.btn-primary-add.wc-variation-selection-needed:hover,
.btn-primary-add.wc-variation-is-unavailable:hover,
.btn-primary-add:disabled:hover {
    background: var(--bg-light);
}

/* WC variation templates — price already shown in .product-price */
.product-detail-page .woocommerce-variation-price {
    display: none;
}

.product-detail-page .woocommerce-variation-availability,
.product-detail-page .woocommerce-variation-description:not(:empty) {
    font-size: var(--text-sm);
    color: var(--text-muted);
    margin-bottom: 12px;
}

.product-detail-page .single_variation .wc-no-matching-variations,
.product-detail-page .wc-no-matching-variations,
.product-detail-page .single_variation_wrap > div[role="alert"] .woocommerce-info {
    display: block;
    padding: 12px 14px;
    margin: 0 0 16px;
    font-size: var(--text-sm);
    font-weight: 400;
    line-height: 1.45;
    color: var(--text-heading);
    background: #f7f5f2;
    border: 1px solid var(--border);
    border-radius: 4px;
}

.product-detail-page .woocommerce-variation > p[role="alert"] {
    display: block;
    padding: 12px 14px;
    margin: 0 0 16px;
    font-size: var(--text-sm);
    line-height: 1.45;
    color: var(--text-heading);
    background: #f7f5f2;
    border: 1px solid var(--border);
    border-radius: 4px;
}

.w-100 {
    width: 100%;
}

.stock-notification {
    margin-bottom: 40px;
}

.wc_bis_form.hidden,
.stock-notification.hidden {
    display: none !important;
}

.label-bold {
    display: block;
    font-size: var(--text-xs);
    font-weight: 600;
    margin-bottom: 10px;
}

.stock-notification input[type="email"],
.wc_bis_form input[type="email"].wc_bis_form__input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    margin-bottom: 15px;
    font-family: inherit;
    font-size: var(--text-sm);
    box-sizing: border-box;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--text-subtle);
    margin-bottom: 20px;
    cursor: pointer;
}

.btn-dark-notify {
    background: var(--btn-dark);
    color: var(--bg);
    border: none;
    border-radius: 4px;
    padding: 14px;
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s;
}

.btn-dark-notify:hover {
    background: var(--text-heading);
}

.wc_bis_form .btn-dark-notify.wc_bis_form__button {
    width: 100%;
}

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

.accordion-item {
    border-bottom: 1px solid var(--border-light);
}

.accordion-header {
    width: 100%;
    background: transparent;
    border: none;
    padding: 20px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}

.accordion-header .icon {
    width: 12px;
    height: 12px;
    position: relative;
}

.accordion-header .icon::before,
.accordion-header .icon::after {
    content: '';
    position: absolute;
    background: var(--text-heading);
    transition: transform 0.3s;
}

.accordion-header .icon::before {
    top: 5px;
    left: 0;
    width: 100%;
    height: 2px;
}

.accordion-header .icon::after {
    top: 0;
    left: 5px;
    width: 2px;
    height: 100%;
}

.accordion-item.active .icon::after {
    transform: rotate(90deg);
    opacity: 0;
}

.accordion-content {
    display: none;
    padding-bottom: 20px;
}

.accordion-content p {
    font-size: var(--text-sm);
    color: var(--text-muted);
    line-height: 1.6;
}

.suggested-products {
    margin-bottom: 80px;
}

.suggested-products .section-title {
    font-size: var(--text-xl);
    font-weight: 500;
    margin-bottom: 40px;
    text-align: center;
}

.suggested-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.suggested-card {
    width: 280px;
}

.suggested-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.suggested-card-link:hover,
.suggested-card-link:focus {
    color: inherit;
    text-decoration: none;
}

.suggested-card .img-wrapper {
    aspect-ratio: 1 / 1;
    background: var(--bg-product);
    margin-bottom: 15px;
    display: block;
    overflow: hidden;
}

.suggested-card .img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.suggested-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.suggested-info h3 {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text-heading);
    margin: 0;
}

.suggested-info .price {
    font-size: var(--text-sm);
    color: var(--text-muted);
}

/* =========================
   CONTACT US PAGE
========================= */
.contact-page {
    margin-top: 7.5vh;
    padding-top: .1px;
}

.manifesto-section {
    background: var(--bg2);
    margin-top: 12vw;
    margin-right: 180px;

    padding-top: 60px;
    padding-bottom: 60px;
    position: relative;
}

.manifesto-inner {
    display: flex;
    align-items: center;
    margin-bottom: -12vw;
}

.manifesto-text {
    width: 40%;
    padding-left: 5vw;
    padding-top: 2vw;
    padding-bottom: 10vw;
}



.manifesto-title {
    font-size: var(--text-5xl);
    font-weight: 300;
    letter-spacing: 4px;
    margin-bottom: 15px;
    color: var(--text-dark);
    position: relative;
    display: inline;
}


.manifesto-subtitle {
    font-size: var(--text-2xl);
    color: var(--text-subtle);
    margin-top: 20px;
    margin-bottom: 80px;
}

.manifesto-list {
    list-style: none;
    padding: 0;
    margin-bottom: 8vw;
}

.manifesto-list li {
    font-size: var(--text-2xl);
    font-weight: 300;
    letter-spacing: 2px;
    margin-bottom: 40px;
    color: var(--text-heading);
}

.btn-outline-dark {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    padding: 12px 24px;
    border: 1px solid var(--text-heading);
    color: var(--text-heading);
    text-decoration: none;
    font-size: var(--text-lg);
    font-weight: 500;
    transition: all 0.3s;
}

.btn-outline-dark:hover {
    background: var(--text-heading);
    color: var(--bg);
}

.btn-outline-dark:hover img {
    filter: invert(1);
}

.manifesto-image {
    width: 60%;
    position: absolute;
    top: -12vw;
    right: -180px;
    z-index: 2;
}

.manifesto-image img {
    width: 100%;
    display: block;
}

.manifesto-image-structure {
    width: 60%;
}

.manifesto-image-structure img {
    width: 100%;
    display: block;
    opacity: 0;
}

/* Story Participation */
.story-participation-section {
    padding: 100px 5vw;
}

.story-participation-layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
}

.participation-images {
    flex: 1;
    display: flex;
    gap: 15px;
    align-items: center;
}

.img-col {
    flex: 1;
}

.img-col img {
    width: 100%;
    display: block;
    object-fit: cover;
}

.img-1 {
    margin-top: 0;
}

.img-2 {
    margin-top: 40px;
}

.img-3 {
    margin-top: 80px;
}

.participation-content {
    flex: 1;
}

.participation-content h2 {
    font-size: var(--text-4xl);
    font-weight: 300;
    margin-bottom: 25px;
    color: var(--text-dark);
}

.participation-content p {
    font-size: var(--text-lg);
    color: var(--text-muted);
    line-height: 1.6;
    margin-bottom: 40px;
}

.participation-content h3 {
    font-size: 26px;
    font-weight: 400;
    margin-bottom: 20px;
    color: var(--text-heading);
}

.participate-list {
    list-style: none;
    padding: 0;
}

.participate-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--text-lg);
    color: var(--text-subtle);
    margin-bottom: 15px;
    line-height: 1.5;
}

.participate-list li img {
    width: 18px;
    margin-top: 2px;
}

.participation-content-mobile-image {
    display: none;
}

/* Stories Section */
.stories-section {
    padding: 60px 0 100px;
}

.section-title.text-left {
    text-align: left;
    font-size: var(--text-4xl);
    font-weight: 300;
    margin-bottom: 40px;
}

.stories-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 200px;
}

.story-card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 3/4;
}

.story-card>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.story-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 60px 30px 30px;
    background: linear-gradient(to top, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.7) 40%, rgba(255, 255, 255, 0) 100%);
    color: var(--text-dark);
    box-sizing: border-box;
}

.story-overlay h3 {
    font-size: var(--text-xl);
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--text-dark);
}

.story-overlay p {
    font-size: var(--text-md);
    line-height: 1.5;
    opacity: 0.9;
    color: var(--text-subtle);
}

/* =========================
   CUSTOMER CARE PAGE
========================= */
.customer-care-page {
    margin-top: 7.5vh;
    padding-top: 1px;
    background: var(--bg);
}

.customer-care-hero {
    padding-top: 120px;
    padding-bottom: 90px;
}

.customer-care-hero-inner h1 {
    text-align: center;
    font-family: 'cormorant_garamondlight', serif;
    font-size: var(--text-5xl);
    font-weight: 300;
    color: var(--text-heading);
}

.customer-care-container {
    max-width: 1220px;
}

.customer-care-faq {
    padding-bottom: 120px;
}

.customer-care-section-title {
    font-size: var(--text-5xl);
    font-family: 'cormorant_garamondlight', serif;
    font-weight: 300;
    color: var(--text-heading);
    margin-bottom: 40px;
}

.customer-faq-item {
    border-bottom: 1px solid var(--border-light);
}

.customer-faq-item:first-child {
    border-top: 1px solid var(--border-light);
}

.customer-faq-trigger {
    width: 100%;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 0;
    text-align: left;
    font-size: var(--text-xl);
    color: var(--text-heading);
    cursor: pointer;
    font-family: inherit;
}

.customer-faq-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    position: relative;
}

.customer-faq-icon::before,
.customer-faq-icon::after {
    content: '';
    position: absolute;
    background: var(--text-subtle);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.customer-faq-icon::before {
    top: 6px;
    left: 0;
    width: 14px;
    height: 1px;
}

.customer-faq-icon::after {
    top: 0;
    left: 6px;
    width: 1px;
    height: 14px;
}

.customer-faq-item.is-open .customer-faq-icon::after {
    transform: rotate(90deg);
    opacity: 0;
}

.customer-faq-content {
    display: none;
    padding: 0 0 22px;
}

.customer-faq-content p {
    width: 85%;
    font-size: var(--text-sm);
    line-height: 1.7;
    color: var(--text-subtle);
}

.customer-care-content {
    padding-bottom: 120px;
}

.customer-care-block {
    margin-bottom: 110px;
}

.customer-care-block:last-child {
    margin-bottom: 0;
}

.customer-care-block h3 {
    font-size: var(--text-3xl);
    font-family: 'cormorant_garamondlight', serif;
    font-weight: 400;
    margin-bottom: 36px;
    color: var(--text-heading);
}

.customer-care-block p {
    font-size: var(--text-sm);
    line-height: 1.9;
    color: var(--text-subtle);
    margin-bottom: 18px;
}

.customer-care-block p:last-child {
    margin-bottom: 0;
}

.woocommerce-notices-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 24px;
}

.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message,
.product-detail-page .woocommerce-error,
.product-detail-page .woocommerce-info,
.product-detail-page .woocommerce-message {
    padding: 12px 14px;
    font-size: var(--text-sm);
    font-weight: 400;
    line-height: 1.45;
    border-radius: 4px;
    border: 1px solid var(--border);
    margin-bottom: 0;
    color: var(--text-heading);
    background: #f7f5f2;
    list-style: none;
}

.woocommerce-notices-wrapper .woocommerce-message,
.product-detail-page .woocommerce-message {
    border-color: #c8d5c3;
    background: #f3f7f1;
}

.woocommerce-notices-wrapper .woocommerce-error,
.product-detail-page .woocommerce-error {
    border-color: #e0c8c8;
    background: #faf4f4;
}

.woocommerce-notices-wrapper .woocommerce-error li,
.product-detail-page .woocommerce-error li {
    margin: 0;
}



/* =========================
   RESPONSIVE
========================= */



@media (min-width: 769px) and (max-width: 1200px) {
    .product-card {
        flex: 0 0 calc((100% - 54px) / 4);
    }
}



@media (max-width: 1400px) {

    :root {
        /* FONTS SIZE */
        --text-xs: 11px;
        --text-sm: 13px;
        --text-md: 15px;
        --text-lg: 17px;
        --text-xl: 19px;
        --text-2xl: 23px;
        --text-3xl: 29px;
        --text-4xl: 35px;
        --text-5xl: 47px;
    }

    .stories-grid {
        gap: 100px;
    }

    .customer-care-hero {
        padding-top: 110px;
        padding-bottom: 80px;
    }

}

@media (max-width: 1200px) {

    :root {
        /* FONTS SIZE */
        --text-xs: 10px;
        --text-sm: 12px;
        --text-md: 14px;
        --text-lg: 16px;
        --text-xl: 18px;
        --text-2xl: 22px;
        --text-3xl: 28px;
        --text-4xl: 34px;
        --text-5xl: 46px;
    }

    #story {
        padding: 64px 16px;
        line-height: 1.25;
    }

    .home-banner h2 {
        width: 32%;
        font-size: var(--text-lg);
        line-height: 28px;
    }

    .home-banner-reverse h2 {
        text-align: right;
    }

    .hero-actions {
        bottom: 30px;
    }

    .hero-popup {
        padding: 34px 22px;
        width: min(420px, 92%);
        max-height: calc(100vh - 190px);
        overflow: auto;
    }

    .story-header h2 {
        padding: 20% 0;
    }

    .about-threads .section-title {
        padding-left: 40px;
    }

    .threads-quote-box p {
        width: 18%;
    }

    .threads-text {
        padding-left: 40px;
        width: 65%;
    }

    .fabrics-bg {
        padding: 60px 80px;
    }

    .shop-grid {
        gap: 20px;
    }

    .product-detail-container {
        gap: 40px;
    }

    .customer-care-faq {
        padding-bottom: 90px;
    }

    .customer-care-content {
        padding-bottom: 90px;
    }

    .customer-care-section-title {
        margin-bottom: 30px;
    }

    .customer-faq-trigger {
        padding: 20px 0;
    }

    .customer-faq-content p {
        width: 92%;
    }

    .customer-care-block {
        margin-bottom: 85px;
    }

    .customer-care-block h3 {
        margin-bottom: 28px;
    }
}

@media (max-width: 991px) {

    #story {
        padding: 56px 16px;
        line-height: 1.25;
    }

    .home-banner h2 {
        width: 46%;
        line-height: 26px;
    }

    .home-banner-reverse h2 {
        width: 46%;
        text-align: right;
        left: auto;
        right: 8%;
    }

    .hero-actions {
        bottom: 24px;
    }

    .btn-shop-now {
        padding: 0.95em 2.1em;
    }

    .hero-popup {
        padding: 28px 20px;
        width: min(380px, 92%);
        max-height: calc(100vh - 175px);
        overflow: auto;
    }

    .hero-popup p {
        margin-bottom: 22px;
    }

    .palettes-grid {
        gap: 20px;
    }

    .palette-card {
        padding: 35px 30px;
    }

    .collection-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .contact-section-container {
        gap: 30px;
    }

    .footer-middle {
        gap: 80px;
    }

    .about-tell-story {
        flex-direction: column;
        margin-top: 7.5vh;
        margin-bottom: 80px;
    }

    .about-tell-story .story-image {
        width: 100%;
    }

    .about-tell-story .story-content {
        width: 100%;
        padding: 40px;
    }

    .story-header {
        padding: 0;
        padding-bottom: 40px;
    }

    .story-header h2 {
        padding: 0;
    }

    .story-vision {
        position: relative;
        left: 0;
        right: 0;
        width: 100%;
        padding: 40px;
    }

    .about-threads {
        margin-bottom: 80px;
    }

    .threads-hero-inner img {
        width: 100%;
    }

    .threads-quote-box {
        position: relative;
        width: 100%;
        bottom: 0;
        margin: 0;
        flex-direction: column;
        padding: 40px;
        text-align: center;
        gap: 20px;
    }

    .threads-quote-box h3 {
        margin-bottom: 0;
    }

    .threads-quote-box p {
        width: 100%;
        padding: 0;
    }

    .threads-text {
        width: 100%;
        padding: 40px;
    }

    .fabrics-bg {
        padding: 60px 40px;
    }

    .fabrics-content {
        flex-direction: column;
        gap: 40px;
    }

    .fabrics-sidebar {
        width: 100%;
    }

    .fabric-nav {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .fabric-nav li {
        margin-bottom: 0;
        padding: 12px 20px;
    }

    .fabrics-display {
        width: 100%;
    }

    .shop-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    .shop-filters {
        flex-wrap: wrap;
        gap: 20px;
    }

    .product-detail-container {
        flex-direction: column;
    }

    .product-gallery {
        flex-direction: column-reverse;
        width: 100%;
        gap: 15px;
    }

    .product-info-detail {
        width: 100%;
    }

    .thumbnails {
        flex-direction: row;
        width: 100%;
        overflow-x: auto;
        padding-bottom: 10px;
        justify-content: center;
    }

    .thumb-btn {
        width: 80px;
        flex-shrink: 0;
    }

    .cart-layout {
        flex-direction: column;
    }

    .cart-sidebar {
        width: 100%;
    }

    .manifesto-inner,
    .story-participation-layout {
        flex-direction: column;
        gap: 40px;
    }

    .manifesto-line {
        height: 30px;
    }

    .manifesto-text {
        padding-left: 0;
        padding-top: 5vw;
        padding-bottom: 0;
    }

    .manifesto-text,
    .manifesto-image {
        width: 100%;
        padding-right: 0;
        top: 0;
        right: 0;
        margin-bottom: 20px;
        position: relative;
    }

    .manifesto-section {
        padding: 60px 40px;
        margin: 40px 20px;
    }

    .manifesto-title {
        letter-spacing: 2px;
        display: block;
        line-height: 2em;
        text-align: center;
    }

    .manifesto-image-structure {
        display: none;
    }

    .stories-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .story-participation-section {
        padding: 60px 0;
    }

    .contact-help-layout {
        flex-direction: column;
        gap: 40px;
    }

    .customer-care-hero {
        padding-top: 95px;
        padding-bottom: 65px;
    }

    .customer-care-faq {
        padding-bottom: 70px;
    }

    .customer-care-content {
        padding-bottom: 70px;
    }

    .customer-care-section-title {
        margin-bottom: 24px;
    }

    .customer-faq-trigger {
        padding: 17px 0;
    }

    .customer-faq-content {
        padding-bottom: 18px;
    }

    .customer-faq-content p {
        width: 100%;
    }

    .customer-care-block {
        margin-bottom: 65px;
    }

    .customer-care-block h3 {
        margin-bottom: 20px;
    }
}

@media (max-width: 768px) {

    :root {
        /* FONTS SIZE */
        --text-xs: 10px;
        --text-sm: 12px;
        --text-md: 14px;
        --text-lg: 16px;
        --text-xl: 18px;
        --text-2xl: 20px;
        --text-3xl: 24px;
        --text-4xl: 30px;
        --text-5xl: 36px;
    }


    .mobile-menu-toggle {
        display: flex;
    }

    .menu-overlay {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 7.5vh;
        left: -100%;
        width: 100%;
        height: 92.5vh;
        background: var(--bg);
        transition: left 0.3s ease-in-out;
        z-index: 9;
        align-items: center;
        justify-content: center;
        gap: 40px;
    }

    @supports (height: 100dvh) {
        .menu-overlay {
            height: 92.5dvh;
            top: 7.5dvh;
        }
    }

    .menu-overlay.is-open {
        left: 0;
    }

    .main-nav ul {
        flex-direction: column;
        gap: 30px;
        text-align: center;
    }

    .main-nav a {
        font-size: var(--text-md);
    }

    .header-actions {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .hero {
        margin-top: 0;
        height: 100svh;
    }

    @supports (height: 100dvh) {
        .hero {
            height: 100dvh;
        }
    }

    #color-palettes {
        padding: 35px 0;
    }

    #color-palettes .container-mid {
        width: 95%;
    }

    .palettes-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .palette-card {
        padding: 15px;
    }

    .palette-card h3 {
        margin-bottom: 10px;
        font-size: var(--text-md);
    }

    .palette-card p {
        font-size: var(--text-sm);
        margin-bottom: 20px;
    }

    .palette-colors {
        flex-direction: column;
        gap: 12px;
    }

    .core-collection {
        padding: 35px 0;
    }

    #core-collection .container-mid {
        width: 95%;
    }

    .collection-card-content {
        padding: 15px;
    }

    .core-collection .section-title {
        font-size: var(--text-3xl);
        margin-bottom: 30px;
    }

    .collection-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .collection-card img {
        aspect-ratio: 4 / 5;
    }

    .collection-card h3 {
        font-size: var(--text-md);
        margin-bottom: 8px;
    }

    .collection-card .price {
        font-size: var(--text-sm);
        margin-bottom: 15px;
    }

    #story {
        padding: 48px 16px;
        font-size: var(--text-xl);
        line-height: 1.35;
    }

    .home-banner h2,
    .home-banner-reverse h2 {
        position: absolute;
        top: 10%;
        bottom: auto;
        left: 0;
        right: 0;
        width: 100%;
        max-width: none;
        padding: 0 5%;
        box-sizing: border-box;
        font-size: var(--text-lg);
        line-height: 1.8;
        text-align: left;

        position: relative;
        padding-top: 35px;
        padding-bottom: 35px;
        top: auto;
        bottom: auto;
        left: auto;
        right: auto;

    }

    .home-banner-reverse h2 {
        top: auto;
        bottom: auto;
        left: auto;
        right: auto;
        text-align: left;
        border-bottom: 1px solid var(--border-light);
    }

    .home-products-section {
        padding: 44px 0 52px;
    }

    .home-products-wrapper {
        gap: 8px;
    }

    .product-track {
        gap: 12px;
    }

    .product-card {
        flex: 0 0 100%;
        min-width: 0;
    }

    .product-card h2 {
        margin: 10px 0 6px;
        font-size: var(--text-sm);
    }

    .product-card p {
        font-size: var(--text-sm);
    }

    .product-nav {
        width: 20px;
        height: 30px;
    }

    .hero-popup {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: min(360px, 92%);
        padding: 22px 18px;
        max-height: calc(100svh - 140px);
        overflow: auto;
    }

    @supports (height: 100dvh) {
        .hero-popup {
            max-height: calc(100dvh - 140px);
        }
    }

    .hero-popup h3 {
        font-size: var(--text-2xl);
        margin-bottom: 8px;
    }

    .hero-popup p {
        font-size: var(--text-md);
        margin-bottom: 18px;
    }

    .hero-popup small {
        margin-top: 14px;
    }

    .popup-close {
        top: 8px;
        right: 8px;
    }

    .hero-actions {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
    }

    .btn-shop-now {
        padding: 0.9em 2em;
    }

    .contact-section-help h2 {
        font-size: var(--text-2xl);
    }


    .contact-section {
        padding: 30px 0;
    }

    .contact-section-container {
        flex-direction: column;
        gap: 40px;
    }

    .contact-section-help,
    .contact-section-form {
        width: 100%;
    }

    .footer-middle {
        flex-direction: column;
        gap: 30px;
        padding: 30px 0;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .footer-bottom>* {
        width: 100%;
        flex-direction: column;
        gap: 20px;
        align-items: self-start;
    }


    .home-banner .home-banner-img-desktop {
        display: none;
    }

    .home-banner .home-banner-img-mobile {
        display: block;
    }

    .hero {
        background: url(images/hero-max-mobile.jpg) center/cover no-repeat;
    }

    .story-header {
        padding-bottom: 0;
    }

    .story-header h2 {
        font-size: var(--text-xl);
    }

    .story-header h2 br {
        display: none;
    }

    .story-vision h3 {
        display: none;
    }

    .story-vision p {
        font-size: var(--text-md);
    }

    /* Remove all overlaps for mobile */
    .story-vision {
        padding: 30px 20px;
        margin-top: 20px;
    }

    .about-tell-story {
        margin-bottom: 40px;
    }

    .about-tell-story .story-content {
        padding: 20px;
    }

    .about-threads {
        margin-bottom: 40px;
    }

    .threads-header,
    .threads-hero {
        background: var(--bg-overlap-box);
    }

    .about-threads .section-title {
        font-size: var(--text-lg);
        padding-left: 20px;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .threads-quote-box {
        padding: 30px 20px;
        margin-top: 0;
        background: transparent;
    }

    .threads-quote-box h3 {
        display: none;
    }

    .threads-quote-box p {
        font-size: var(--text-sm);
    }

    .threads-text {
        padding: 20px;
        font-size: var(--text-xl);
        padding-top: 10px;
    }

    .threads-text p {
        font-size: var(--text-sm);
    }

    .about-fabrics {
        margin-bottom: 40px;
    }

    .fabrics-bg {
        padding: 40px 20px;
    }

    .fabrics-header .section-title {
        font-size: var(--text-lg);
        text-align: left;
        margin-bottom: 15px;
    }

    .fabrics-sidebar h3 {
        font-size: var(--text-xl);
        margin-bottom: 10px;
    }

    .fabric-nav li {
        font-size: var(--text-sm);
        padding: 10px 12px;
        flex: 1;
        text-align: center;
    }

    .fabric-desc {
        padding: 20px;
    }

    .fabric-desc h4 {
        font-size: var(--text-xl);
    }

    .fabric-desc p {
        font-size: var(--text-md);
    }

    .about-content {
        padding-top: 20px;
        margin-bottom: 40px;
        border: none;
        width: 100%;
    }

    .shop-page {
        padding: 30px 0 60px;
        width: 92%;
    }

    .page-title {
        font-size: var(--text-3xl);
        margin-bottom: 30px;
    }

    .shop-page .page-title {
        margin-bottom: 20px;
    }

    .shop-filters {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding-bottom: 20px;
        margin-bottom: 24px;
    }

    .filters-left,
    .filters-right {
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 16px;
        width: 100%;
    }

    .filter-label {
        flex: 0 0 auto;
    }

    .shop-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        margin-bottom: 40px;
    }

    .shop-page .shop-product-card {
        border-radius: 6px;
    }

    .shop-page .product-img-wrapper {
        border-top-left-radius: 6px;
        border-top-right-radius: 6px;
    }

    .shop-page .product-info {
        padding: 10px;
    }

    .shop-page .product-info h3 {
        font-size: var(--text-md);
        margin-bottom: 6px;
    }

    .shop-page .product-info p {
        display: none;
    }

    .shop-page .product-info .price {
        font-size: var(--text-sm);
        margin-bottom: 12px;
    }

    .shop-page .btn-add-to-cart {
        padding: 8px;
        font-size: 11px;
        letter-spacing: 0.02em;
    }

    .shop-page .btn-load-more {
        padding: 10px 28px;
        font-size: var(--text-sm);
    }

    .suggested-grid {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }

    .suggested-card {
        width: 100%;
        max-width: 400px;
    }

    .product-detail-page {
        padding: 20px 0 60px;
    }

    .cart-page {
        padding: 20px 0 60px;
    }

    .cart-item {
        flex-direction: column;
        align-items: flex-start;
        position: relative;
    }

    .item-actions {
        width: 100%;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        margin-top: 10px;
    }

    .btn-remove {
        position: absolute;
        top: 20px;
        right: 20px;
    }

    .form-row.two-cols {
        flex-direction: column;
        gap: 15px;
    }

    .manifesto-inner,
    .story-participation-layout {
        flex-direction: column;
        gap: 40px;
    }

    .story-participation-layout {
        flex-direction: column-reverse;
        gap: 40px;
        margin-top: 60px;
    }

    .manifesto-text,
    .manifesto-image {
        width: 100%;
        padding-right: 0;
        top: 0;
        right: 0;
        margin-bottom: 20px;
    }

    .manifesto-image {
        position: relative;
        z-index: 0;
        margin: 0;
        padding: 0;
    }

    .manifesto-text {
        position: absolute;
        z-index: 1;
    }

    .manifesto-section {
        padding: 0 0;
        margin: 0;
        border-radius: 0;
    }

    .manifesto-title {
        font-size: var(--text-3xl);
        letter-spacing: 1px;
        margin-bottom: 0;
    }

    .manifesto-subtitle {
        font-size: var(--text-md);
        margin-bottom: 50px;
        text-align: center;
        margin-top: 0;
    }

    .manifesto-list {
        margin-bottom: 50px;
        padding: 0 20px;
    }

    .manifesto-list li {
        font-size: var(--text-md);
        margin-bottom: 15px;
    }

    .participation-content {
        background: var(--bg);
        margin: 20px;
    }

    .participation-content-header {
        background: var(--bg-overlap-box);
        margin-bottom: 20px;
        padding: 20px;
    }

    .participation-content-body {
        background: var(--bg-overlap-box);
        padding: 20px;
    }

    .participation-content h2 {
        font-size: var(--text-2xl);
        margin-bottom: 10px;
    }

    .participation-content h3 {
        font-size: var(--text-xl);
        margin-bottom: 10px;
    }

    .participation-content p {
        font-size: var(--text-md);
        margin-bottom: 20px;
    }

    .participate-list li {
        font-size: var(--text-md);
        margin-bottom: 10px;
    }

    .contact-page .btn-outline-dark {
        background: var(--bg-overlap-box);
        color: var(--white);
        font-size: var(--text-sm);
        border: 1px solid var(--danger-border);
        padding: 8px 16px;
        margin: 0 20px;
    }

    .stories-section {
        padding: 35px 0;
        width: 95%;
    }

    .stories-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .story-card:last-child {
        display: none;
    }

    .story-overlay {
        padding: 30px 10px 10px;
    }

    .story-overlay h3 {
        font-size: var(--text-md);
    }

    .story-overlay p {
        font-size: var(--text-sm);
        line-height: 1.2;
    }

    .story-participation-section {
        padding: 35px 0;
    }

    .participation-images {
        display: none;
    }

    .img-1,
    .img-2,
    .img-3 {
        margin-top: 0;
        width: 100%;
    }

    .section-title.text-left {
        font-size: var(--text-2xl);
    }


    .contact-help-layout {
        flex-direction: column;
        gap: 30px;
    }

    .customer-care-page {
        margin-top: 0;
    }

    .customer-care-hero {
        padding-top: 90px;
        padding-bottom: 50px;
    }

    .customer-care-hero-inner h1 {
        font-size: var(--text-4xl);
    }

    .customer-care-faq {
        padding-bottom: 55px;
    }

    .customer-care-content {
        padding-bottom: 60px;
    }

    .customer-care-section-title {
        font-size: var(--text-3xl);
        margin-bottom: 18px;
    }

    .customer-faq-trigger {
        font-size: var(--text-lg);
        padding: 15px 0;
        gap: 10px;
    }

    .customer-faq-icon {
        width: 12px;
        height: 12px;
    }

    .customer-faq-icon::before {
        top: 5px;
        width: 12px;
    }

    .customer-faq-icon::after {
        left: 5px;
        height: 12px;
    }

    .customer-care-block {
        margin-bottom: 50px;
    }

    .customer-care-block h3 {
        margin-bottom: 16px;
    }

    .customer-care-block p {
        font-size: var(--text-sm);
        line-height: 1.75;
        margin-bottom: 14px;
    }
}


/* Thank you */
.thankyou-page .thankyou-content {
    max-width: 760px;
    margin: 0 auto;
    padding: 40px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
}

.thankyou-page .woocommerce-thankyou-order-received {
    font-family: 'cormorant_garamondlight', serif;
    font-size: var(--text-2xl);
    color: var(--text-heading);
    margin: 0 0 24px;
}

.thankyou-page .woocommerce-order-overview {
    list-style: none;
    margin: 0 0 36px;
    padding: 0;
    border-bottom: 1px solid var(--border-light);
}

.thankyou-page .woocommerce-order-overview li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 20px;
    font-size: var(--text-sm);
    color: var(--text-subtle);
    padding: 14px 0;
    border-bottom: 1px solid var(--border-light);
}

.thankyou-page .woocommerce-order-overview li:last-child {
    border-bottom: none;
}

.thankyou-page .woocommerce-order-overview li strong {
    color: var(--text-dark);
    font-weight: 600;
    text-align: right;
}

.thankyou-section-title {
    font-size: var(--text-xl);
    font-weight: 400;
    color: var(--text-dark);
    margin: 0 0 20px;
    font-family: 'cormorant_garamondlight', serif;
}

.thankyou-order-details {
    margin-bottom: 36px;
}

.thankyou-order-review.summary-card-inner {
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 24px;
    background: var(--bg);
}

.thankyou-order-review .summary-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    font-size: var(--text-sm);
    color: var(--text-subtle);
    margin-bottom: 14px;
}

.thankyou-order-review .summary-row.total {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0;
}

.thankyou-order-review .summary-row.total span:last-child {
    font-weight: 700;
}

.thankyou-order-review hr {
    border: none;
    border-top: 1px solid var(--border-light);
    margin: 18px 0;
}

.thankyou-product-row .thankyou-product-name {
    flex: 1;
    color: var(--text-dark);
    line-height: 1.5;
}

.thankyou-product-row .thankyou-product-name a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.thankyou-product-row .thankyou-product-total {
    flex-shrink: 0;
    color: var(--text-dark);
    font-weight: 500;
    white-space: nowrap;
}

.thankyou-product-meta {
    display: block;
    margin-top: 4px;
    font-size: var(--text-xs);
    color: var(--text-muted);
}

.thankyou-product-meta dl,
.thankyou-product-meta dt,
.thankyou-product-meta dd {
    display: inline;
    margin: 0;
    font-size: inherit;
    color: inherit;
}

.thankyou-product-meta dt::after {
    content: ': ';
}

.thankyou-product-meta dd::after {
    content: ', ';
}

.thankyou-product-meta dd:last-child::after {
    content: '';
}

.thankyou-total-row span:last-child {
    color: var(--text-dark);
    font-weight: 500;
    text-align: right;
}

.thankyou-customer-note {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
    font-size: var(--text-sm);
    color: var(--text-subtle);
}

.thankyou-customer-note p {
    margin: 8px 0 0;
}

.thankyou-addresses {
    margin-bottom: 36px;
}

.thankyou-addresses-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.thankyou-addresses-grid.has-shipping {
    grid-template-columns: 1fr 1fr;
}

.thankyou-address-block {
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 24px;
    background: var(--bg);
}

.thankyou-address-block address {
    font-style: normal;
    font-size: var(--text-sm);
    line-height: 1.8;
    color: var(--text-subtle);
    margin: 0;
}

.thankyou-address-meta {
    margin: 12px 0 0;
    font-size: var(--text-sm);
    color: var(--text-dark);
}

.thankyou-page .thankyou-actions {
    margin: 0;
    padding-top: 8px;
}

.thankyou-page .thankyou-actions .btn-outline-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    text-decoration: none;
}

.thankyou-page .woocommerce-thankyou-order-failed-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.thankyou-page .woocommerce-order-details .shop_table,
.thankyou-page .woocommerce-customer-details .woocommerce-columns {
    display: none;
}

@media (max-width: 768px) {
    .thankyou-page .thankyou-content {
        padding: 24px 20px;
    }

    .thankyou-addresses-grid.has-shipping {
        grid-template-columns: 1fr;
    }

    .thankyou-order-review .summary-row,
    .thankyou-page .woocommerce-order-overview li {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .thankyou-product-row .thankyou-product-total,
    .thankyou-total-row span:last-child,
    .thankyou-page .woocommerce-order-overview li strong {
        text-align: left;
    }
}

/* =========================
   SEARCH RESULTS
========================= */

.search-results-page .search-no-results {
    max-width: 520px;
    padding: 40px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
}

.search-results-page .search-no-results-message {
    font-size: var(--text-md);
    color: var(--text-subtle);
    margin-bottom: 24px;
}

.search-results-page .search-no-results-actions {
    margin: 0;
}

.search-results-page .search-no-results-actions .btn-outline-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    text-decoration: none;
}

/* =========================
   404 ERROR PAGE
========================= */

body.error404,
body:has(> main.error-page) {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.error404 .error-page,
body:has(> main.error-page) .error-page {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding: calc(7.5vh + 32px) 24px 80px;
    box-sizing: border-box;
}

.error-page-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
}

.error-page .page-title {
    margin: 0 0 32px;
    text-align: center;
    width: 100%;
}

.error-page .error-message {
    width: 100%;
    max-width: 520px;
    padding: 40px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    text-align: center;
}

.error-page .error-message p {
    font-size: var(--text-md);
    color: var(--text-subtle);
    margin: 0 0 28px;
}

.error-page .error-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.error-page .error-actions .btn-outline-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    text-decoration: none;
}

@media (max-width: 768px) {
    body.error404 .error-page,
    body:has(> main.error-page) .error-page {
        padding: calc(7.5vh + 24px) 20px 64px;
    }

    .error-page .page-title {
        margin-bottom: 24px;
    }

    .error-page .error-message {
        padding: 28px 24px;
    }

    .error-page .error-actions {
        flex-direction: column;
        align-items: center;
    }

    .error-page .error-actions .btn-outline-dark {
        width: 100%;
        max-width: 280px;
    }
}

/* =========================
   MC4WP NEWSLETTER
========================= */

.footer-newsletter .mc4wp-form-wrapper {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-newsletter .mc4wp-form {
    margin: 0;
}

.footer-newsletter .mc4wp-form-fields {
    display: flex;
    border-bottom: 1px solid var(--border-input);
    padding-bottom: 5px;
    align-items: center;
}

.footer-newsletter .mc4wp-form-fields label {
    display: none;
}

.footer-newsletter .mc4wp-form-fields input[type="email"] {
    border: none;
    outline: none;
    font-size: var(--text-sm);
    width: 150px;
    background: transparent;
    flex: 1;
    min-width: 0;
}

.footer-newsletter .mc4wp-form-fields input[type="submit"],
.footer-newsletter .mc4wp-form-fields button[type="submit"] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 5px;
    font-size: 0;
    width: 24px;
    height: 24px;
    background-image: url('images/ico-left-arrow.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px;
    opacity: 0.6;
}

.footer-newsletter .mc4wp-form-fields input[type="submit"]:hover,
.footer-newsletter .mc4wp-form-fields button[type="submit"]:hover {
    opacity: 1;
}

.footer-newsletter .mc4wp-alert {
    font-size: var(--text-sm);
    color: var(--text-muted);
    margin: 0;
}

.footer-newsletter .mc4wp-success {
    color: var(--text-heading);
}

.footer-newsletter .mc4wp-error {
    color: #c97c7c;
}

@media (max-width: 768px) {
    .footer-newsletter {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .footer-newsletter .mc4wp-form-fields input[type="email"] {
        width: 100%;
    }
}

/* =========================
   BREVO NEWSLETTER
========================= */

.footer-newsletter .brevo-form-wrapper {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-newsletter .brevo-form-wrapper form,
.footer-newsletter .sib_signup_form,
.footer-newsletter .sibwp-form {
    margin: 0;
}

.footer-newsletter .brevo-form-wrapper .sib_signup_box,
.footer-newsletter .brevo-form-wrapper .sibwp-form-fields {
    display: flex;
    border-bottom: 1px solid var(--border-input);
    padding-bottom: 5px;
    align-items: center;
    gap: 0;
}

.footer-newsletter .brevo-form-wrapper label,
.footer-newsletter .brevo-form-wrapper .sib-label {
    display: none;
}

.footer-newsletter .brevo-form-wrapper input[type="email"],
.footer-newsletter .brevo-form-wrapper input.sib-email-area {
    border: none;
    outline: none;
    font-size: var(--text-sm);
    width: 150px;
    background: transparent;
    flex: 1;
    min-width: 0;
    padding: 0;
}

.footer-newsletter .brevo-form-wrapper input[type="submit"],
.footer-newsletter .brevo-form-wrapper button[type="submit"],
.footer-newsletter .brevo-form-wrapper .sib-default-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 5px;
    font-size: 0;
    width: 24px;
    height: 24px;
    min-width: 24px;
    background-image: url('images/ico-left-arrow.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px;
    opacity: 0.6;
    color: transparent;
}

.footer-newsletter .brevo-form-wrapper input[type="submit"]:hover,
.footer-newsletter .brevo-form-wrapper button[type="submit"]:hover,
.footer-newsletter .brevo-form-wrapper .sib-default-btn:hover {
    opacity: 1;
}

.footer-newsletter .sib-alert-message,
.footer-newsletter .sib-alert-message-success,
.footer-newsletter .sib-alert-message-error {
    font-size: var(--text-sm);
    color: var(--text-muted);
    margin: 0;
    padding: 0;
    background: none;
    border: none;
}

.footer-newsletter .sib-alert-message-success {
    color: var(--text-heading);
}

.footer-newsletter .sib-alert-message-error {
    color: #c97c7c;
}

@media (max-width: 768px) {
    .footer-newsletter .brevo-form-wrapper input[type="email"],
    .footer-newsletter .brevo-form-wrapper input.sib-email-area {
        width: 100%;
    }
}

/* Size / Fit Guide modal */
.soloma-size-guide-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.soloma-size-guide-modal[hidden] {
    display: none !important;
}

.soloma-size-guide-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(28, 25, 23, 0.45);
}

.soloma-size-guide-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: min(85vh, 720px);
    overflow: auto;
    background: var(--bg, #faf8f5);
    color: var(--text-heading, #1c1917);
    padding: 40px 36px 36px;
    box-shadow: 0 24px 48px rgba(28, 25, 23, 0.18);
}

.soloma-size-guide-modal__close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: var(--text-muted, #78716c);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.soloma-size-guide-modal__close:hover {
    color: var(--text-heading, #1c1917);
}

.soloma-size-guide-modal__title {
    font-family: var(--font-heading, Georgia, serif);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0 0 1.25rem;
    padding-right: 28px;
}

.soloma-size-guide-modal__body {
    font-size: var(--text-sm, 0.9rem);
    line-height: 1.65;
    color: var(--text-muted, #57534e);
}

.soloma-size-guide-modal__body p {
    margin: 0 0 1rem;
}

.soloma-size-guide-modal__body p:last-child {
    margin-bottom: 0;
}

.soloma-size-guide-modal__body table,
.soloma-size-guide-table table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.25rem 0;
    font-size: var(--text-xs, 0.8rem);
}

.soloma-size-guide-modal__body th,
.soloma-size-guide-modal__body td,
.soloma-size-guide-table th,
.soloma-size-guide-table td {
    border-bottom: 1px solid var(--border, #e7e5e4);
    padding: 0.65rem 0.5rem;
    text-align: left;
    vertical-align: top;
}

.soloma-size-guide-modal__body th,
.soloma-size-guide-table th {
    color: var(--text-heading, #1c1917);
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 0.7rem;
}

body.soloma-size-guide-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .soloma-size-guide-modal {
        padding: 16px;
        align-items: flex-end;
    }

    .soloma-size-guide-modal__dialog {
        width: 100%;
        max-height: 90vh;
        padding: 32px 20px 28px;
    }
}
