/* ==========================================================================
   _pages.css
   PLP, PDP, cart, checkout, account, wishlist, login, modals, CMS.
   Implements THEME_STYLING_GUIDE §D rows 7–14 and Strata page-pattern spec.
   ========================================================================== */

/* ==========================================================================
   PLP — Category + Search results
   ========================================================================== */

.catalog-category-view .page-main,
.catalogsearch-result-index .page-main {
    padding-top: var(--sp-4, 1rem);
    padding-bottom: var(--sp-6, 1.5rem);
}

.catalog-category-view main.page-main,
.catalogsearch-result-index main.page-main {
    padding-top: 0;
}

.catalog-category-view .page-title-wrapper,
.catalogsearch-result-index .page-title-wrapper {
    margin-bottom: var(--sp-3, 0.75rem);
    padding-bottom: var(--sp-3, 0.75rem);
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}

.catalog-category-view .page-title-wrapper h1,
.catalogsearch-result-index h1 {
    font-size: 3rem;
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: var(--sp-2, 0.5rem);
}

.catalog-category-view .category-description,
.catalogsearch-result-index .search.results .message.notice {
    max-width: 48rem;
    color: var(--color-text-muted, #7A6A52);
    font-size: var(--text-md, 1rem);
    line-height: 1.7;
}

.catalog-category-view .category-description p:last-child {
    margin-bottom: 0;
}

.catalog-category-view .page.messages,
.catalogsearch-result-index .page.messages {
    margin: 0;
    padding: 0;
}

.catalog-category-view .columns,
.catalogsearch-result-index .columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 17.5rem);
    gap: var(--sp-6, 1.5rem);
    align-items: start;
}

.catalog-category-view .column.main,
.catalogsearch-result-index .column.main {
    grid-column: 1;
    min-width: 0;
}

.catalog-category-view .sidebar-main,
.catalog-category-view .sidebar-additional,
.catalogsearch-result-index .sidebar-main,
.catalogsearch-result-index .sidebar-additional {
    grid-column: 2;
    width: auto;
    min-width: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.catalog-category-view .sidebar-main,
.catalog-category-view .sidebar-additional,
.catalogsearch-result-index .sidebar-main,
.catalogsearch-result-index .sidebar-additional {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4, 1rem);
}

.catalog-category-view .filter.block,
.catalogsearch-result-index .filter.block {
    background: var(--card, #FDFAF4);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 0.875rem);
    padding: var(--sp-4, 1rem);
    box-shadow: var(--shadow-xs, 0 1px 1px rgba(28, 22, 18, 0.04));
    margin: 0;
}

.catalog-category-view .sidebar .block,
.catalogsearch-result-index .sidebar .block {
    background: var(--card, #FDFAF4);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 0.875rem);
    box-shadow: var(--shadow-xs, 0 1px 1px rgba(28, 22, 18, 0.04));
    margin: 0;
    padding: var(--sp-4, 1rem);
}

.catalog-category-view .sidebar .block.filter,
.catalogsearch-result-index .sidebar .block.filter {
    padding: var(--sp-4, 1rem);
}

.catalog-category-view .filter-content,
.catalogsearch-result-index .filter-content,
.catalog-category-view .filter-options,
.catalogsearch-result-index .filter-options {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    margin: 0;
}

.catalog-category-view .filter-subtitle,
.catalogsearch-result-index .filter-subtitle {
    display: block;
    margin: 0 0 var(--sp-3, 0.75rem);
    padding: 0 0 var(--sp-3, 0.75rem);
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    color: var(--color-text-muted, #7A6A52);
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.catalog-category-view .sidebar .block-title,
.catalogsearch-result-index .sidebar .block-title {
    margin: 0 0 var(--sp-3, 0.75rem);
    padding: 0 0 var(--sp-3, 0.75rem);
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}

.catalog-category-view .sidebar .block-title strong,
.catalogsearch-result-index .sidebar .block-title strong {
    color: var(--color-text, #1C1612);
    display: block;
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-xs, 0.75rem);
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.catalog-category-view .sidebar .block-content,
.catalogsearch-result-index .sidebar .block-content,
.catalog-category-view .sidebar .empty,
.catalogsearch-result-index .sidebar .empty {
    color: var(--color-text-muted, #7A6A52);
    font-size: var(--text-sm, 0.8125rem);
    line-height: 1.5;
}

.catalog-category-view .toolbar,
.catalogsearch-result-index .toolbar {
    background: rgba(253, 250, 244, 0.72);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 0.875rem);
    padding: var(--sp-3, 0.75rem) var(--sp-4, 1rem);
    box-shadow: var(--shadow-xs, 0 1px 1px rgba(28, 22, 18, 0.04));
}

.price-as-configured .price-box .price {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
}


/* ==========================================================================
   PDP — Product detail
   ========================================================================== */

.catalog-product-view .page-main {
    padding-top: var(--sp-6, 1.5rem);
    padding-bottom: var(--sp-8, 2rem);
}

.catalog-product-view .column.main {
    display: flow-root;
}

.catalog-product-view .product.media {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-xl, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    overflow: hidden;
    box-shadow: var(--shadow-xs, 0 1px 1px rgba(28, 22, 18, 0.04));
}

.catalog-product-view .fotorama__stage,
.catalog-product-view .fotorama__nav-wrap {
    background: var(--card, #FDFAF4);
}

.catalog-product-view .fotorama__nav__frame {
    border-radius: var(--radius-sm, 0.5rem);
    overflow: hidden;
}

.catalog-product-view .product-info-main {
    background: rgba(253, 250, 244, 0.72);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-xl, 0.875rem);
    box-shadow: var(--shadow-xs, 0 1px 1px rgba(28, 22, 18, 0.04));
    padding: var(--sp-6, 1.5rem);
}

.page-product-view .product-info-main .page-title-wrapper h1 {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: var(--sp-3, 0.75rem);
    color: var(--color-text, #1C1612);
}

.catalog-product-view .product-info-main .product.attribute.overview,
.catalog-product-view .product-info-main .overview {
    color: var(--color-text-muted, #7A6A52);
    font-size: var(--text-md, 1rem);
    line-height: 1.75;
    margin: var(--sp-4, 1rem) 0;
}

.catalog-product-view .product-info-main .product.attribute.sku,
.catalog-product-view .product-info-main .stock {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(184, 137, 58, 0.22);
    border-radius: var(--radius-full, 9999px);
    background: rgba(184, 137, 58, 0.08);
    color: var(--gold-dark, #8B6220);
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    letter-spacing: 0.04em;
    line-height: 1.2;
    margin: 0 var(--sp-2, 0.5rem) var(--sp-2, 0.5rem) 0;
    padding: 0.25rem 0.625rem;
    text-transform: uppercase;
}

.product.info.detailed .product.data.items {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    margin-top: var(--sp-8, 2rem);
}
.product.info.detailed .product.data.items > .item.title {
    border-right: none;
    border-bottom: 2px solid transparent;
}
.product.info.detailed .product.data.items > .item.title > .switch {
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-sm, 0.8125rem);
    font-weight: var(--font-weight-medium, 500);
    letter-spacing: 0.02em;
    padding: var(--sp-3, 0.75rem) var(--sp-4, 1rem);
    color: var(--color-text-muted, #7A6A52);
    text-transform: none;
}
.product.info.detailed .product.data.items > .item.title.active > .switch {
    border-bottom: 2px solid var(--gold, #B8893A);
    color: var(--color-text, #1C1612);
}
.product.info.detailed .product.data.items .content {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-md, 0.75rem);
    padding: var(--sp-5, 1.25rem);
}

.product.info.detailed .additional-attributes,
.product.info.detailed .data.table.additional-attributes {
    background: transparent;
}

.product.info.detailed .additional-attributes th,
.product.info.detailed .additional-attributes td {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    padding: var(--sp-3, 0.75rem) 0;
}

.product.info.detailed .additional-attributes th {
    color: var(--color-text-muted, #7A6A52);
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.box-tocart .field.qty .control {
    max-width: 8rem;
}
.box-tocart {
    border-top: 1px solid rgba(184, 137, 58, 0.22);
    margin-top: var(--sp-5, 1.25rem);
    padding-top: var(--sp-5, 1.25rem);
}

.box-tocart .fieldset {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--sp-4, 1rem);
    margin: 0;
}

.box-tocart .field.qty {
    margin: 0;
}

.box-tocart .field.qty .label {
    color: var(--color-text-muted, #7A6A52);
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.box-tocart .actions {
    display: flex;
    gap: var(--sp-3, 0.75rem);
    margin: 0;
}

.product-info-price {
    padding: var(--sp-4, 1rem) 0 var(--sp-5, 1.25rem);
    border-bottom: 1px solid rgba(184, 137, 58, 0.22);
    margin-bottom: var(--sp-4, 1rem);
}
.product-info-price .price {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-size: 2.25rem;
    font-weight: 400;
}

.catalog-product-view .product-add-form {
    margin-top: var(--sp-4, 1rem);
}

.catalog-product-view .product-social-links {
    border-top: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    margin-top: var(--sp-5, 1.25rem);
    padding-top: var(--sp-4, 1rem);
}

.catalog-product-view .product-social-links .action {
    color: var(--color-text-muted, #7A6A52);
    font-size: var(--text-sm, 0.8125rem);
}

.catalog-product-view .product-social-links .action:hover {
    color: var(--gold, #B8893A);
}


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

.cart-index-index .page-main,
.cart-index-index .cart-container {
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: var(--sp-6, 1.5rem) var(--sp-4, 1rem);
}

.cart.table-wrapper .cart.items tbody tr {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}

.cart-summary,
.cart-shipping,
.totals {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-lg, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    padding: var(--sp-5, 1.25rem);
}


/* ==========================================================================
   CHECKOUT
   ========================================================================== */

.checkout-index-index .page-main {
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: var(--sp-6, 1.5rem) var(--sp-4, 1rem);
}

.opc-wrapper {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-lg, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    padding: var(--sp-5, 1.25rem);
}

.opc-progress-bar {
    gap: 0;
}
.opc-progress-bar-item {
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: var(--text-sm, 0.8125rem);
}
.opc-progress-bar-item.completed span {
    font-weight: var(--font-weight-medium, 500);
}

.step-title {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-weight: 400;
    font-size: 1.25rem;
    color: var(--color-text, #1C1612);
}

.checkout-shipping-address input,
.checkout-shipping-address select {
    background: var(--input-background, #FDFAF4);
}

.checkout-payment-method .payment-method-title {
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-weight: var(--font-weight-medium, 500);
}


/* ==========================================================================
   ACCOUNT DASHBOARD
   ========================================================================== */

.account .page-main {
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: var(--sp-6, 1.5rem) var(--sp-4, 1rem);
}

.account .page-title-wrapper h1 {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-size: 2rem;
    font-weight: 400;
}

.account .block-collapsible-nav {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-lg, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    overflow: hidden;
}
.account .block-collapsible-nav .item {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}
.account .block-collapsible-nav .item:last-child {
    border-bottom: none;
}
.account .block-collapsible-nav .item.current strong,
.account .block-collapsible-nav .item.current a {
    color: var(--gold, #B8893A);
    font-weight: var(--font-weight-medium, 500);
}

.account .column.main .block {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-lg, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    padding: var(--sp-5, 1.25rem);
    margin-bottom: var(--sp-4, 1rem);
}

.account .orders-history .data.table tbody tr {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}
.account .order-status {
    padding: var(--sp-1, 0.25rem) var(--sp-2, 0.5rem);
    border-radius: var(--radius-sm, 0.5rem);
    font-size: var(--text-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
}
.account .order-status.complete {
    background: rgba(47, 107, 58, 0.1);
    color: #2F6B3A;
}
.account .order-status.pending {
    background: rgba(184, 137, 58, 0.15);
    color: var(--gold-dark, #8B6220);
}
.account .order-status.canceled {
    background: rgba(139, 47, 47, 0.1);
    color: var(--destructive, #8B2F2F);
}

/* My Account dashboard typography
   Keep Magento's native two-column layout; only refine the visual hierarchy. */
.customer-account-index .page-title-wrapper {
    margin-bottom: var(--sp-3, 0.75rem);
}

.customer-account-index .page-title-wrapper .page-title {
    font-size: clamp(1.8rem, 2.4vw, 2.15rem);
    line-height: 1.12;
}

.customer-account-index .column.main > .block {
    padding: clamp(1.15rem, 2vw, 1.5rem);
}

.customer-account-index .column.main .block-title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--sp-2, 0.5rem) var(--sp-3, 0.75rem);
    margin-bottom: var(--sp-4, 1rem);
    padding-bottom: var(--sp-3, 0.75rem);
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}

.customer-account-index .column.main .block-title > strong {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-size: clamp(1.45rem, 2vw, 1.7rem) !important;
    font-weight: 500;
    line-height: 1.2 !important;
    letter-spacing: -0.01em;
}

.customer-account-index .column.main .block-title > .action {
    margin: 0;
    font-size: var(--text-sm, 0.8125rem);
    line-height: 1.4;
}

.customer-account-index .column.main .box-title,
.customer-account-index .column.main .box-title > span {
    font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
    font-size: 1rem !important;
    font-weight: 600;
    line-height: 1.35 !important;
}

.customer-account-index .column.main .box-title {
    display: block;
    margin-bottom: var(--sp-2, 0.5rem);
}

.customer-account-index .column.main .box-content,
.customer-account-index .column.main .box-content p,
.customer-account-index .column.main .box-content address {
    font-size: 0.9375rem;
    line-height: 1.6;
}

.customer-account-index .column.main .box-actions {
    margin-top: var(--sp-2, 0.5rem);
    font-size: var(--text-sm, 0.8125rem);
    line-height: 1.45;
}

.customer-account-index .block-collapsible-nav .nav.item a,
.customer-account-index .block-collapsible-nav .nav.item > strong {
    font-size: 0.875rem !important;
    line-height: 1.35 !important;
}

@media (max-width: 767px) {
    .customer-account-index .page-title-wrapper .page-title {
        font-size: 1.75rem;
    }

    .customer-account-index .column.main > .block {
        padding: var(--sp-4, 1rem);
    }

    .customer-account-index .column.main .block-title > strong {
        font-size: 1.4rem !important;
    }

    .customer-account-index .column.main .block-content .box {
        margin-bottom: var(--sp-5, 1.25rem);
    }

    .customer-account-index .column.main .block-content .box:last-child {
        margin-bottom: 0;
    }
}


/* ===========================================================================
   WISHLIST
   ========================================================================== */

.wishlist-index-index .page-main {
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: var(--sp-6, 1.5rem) var(--sp-4, 1rem);
}
.wishlist-index-index .product-item {
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-xl, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    overflow: hidden;
    transition: box-shadow var(--motion-duration-normal, 0.3s) cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.wishlist-index-index .product-item:hover {
    box-shadow: var(--shadow-lg, 0 12px 40px rgba(28, 22, 18, 0.15));
}
.wishlist-index-index .product-item-photo {
    overflow: hidden;
}
.wishlist-index-index .product-item-actions {
    padding: 0 var(--sp-4, 1rem) var(--sp-4, 1rem);
}
.wishlist-index-index .product-item-name {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
}


/* ==========================================================================
   LOGIN / REGISTER
   ========================================================================== */

.customer-account-login .page-main,
.customer-account-create .page-main {
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: var(--sp-8, 2rem) var(--sp-4, 1rem);
}

.customer-account-login .login-container,
.customer-account-create .form-create-account {
    max-width: 28rem;
    background: var(--card, #FDFAF4);
    border-radius: var(--radius-lg, 0.875rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    padding: var(--sp-6, 1.5rem) var(--sp-5, 1.25rem);
    margin: 0 auto;
}

.block-customer-login .block-title strong,
.block-new-customer .block-title strong {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-weight: 400;
    font-size: 1.5rem;
}

.customer-account-login .actions-toolbar .primary,
.customer-account-create .actions-toolbar .primary {
    width: 100%;
}
.customer-account-login .actions-toolbar .primary .action.primary,
.customer-account-create .actions-toolbar .primary .action.primary {
    width: 100%;
}

/* ==========================================================================
   CMS / HOMEPAGE — deferred styling until live markup exists
   Placeholder only — do not edit until Admin HTML content is published.
   ========================================================================== */

.cms-page-view:not(.cms-index-index) .page-main,
.cms-page-view:not(.cms-index-index) .page-main-full-width {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--max-w, 80rem);
    margin: 0 auto;
    padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 7vw, 6rem);
}

.cms-page-view:not(.cms-index-index) .columns {
    display: block;
}

.cms-page-view:not(.cms-index-index) .column.main {
    box-sizing: border-box;
    float: none;
    width: 100%;
    min-width: 0;
    padding: 0;
}

.cms-page-view:not(.cms-index-index) .page-title-wrapper,
.cms-page-view:not(.cms-index-index) .column.main > [data-content-type="html"],
.cms-page-view:not(.cms-index-index) .column.main [data-content-type="html"][data-element="main"] {
    width: 100%;
    max-width: 72rem;
    margin-right: auto;
    margin-left: auto;
}

.cms-about-us .page-title-wrapper,
.cms-our-partners .page-title-wrapper,
.cms-authenticity .page-title-wrapper,
.cms-terms-and-conditions .page-title-wrapper {
    display: none;
}

.cms-page-view:not(.cms-index-index) .page-title-wrapper {
    margin-bottom: 2rem;
}

.cms-page-view:not(.cms-index-index) .page-title-wrapper .page-title {
    max-width: 18ch;
    margin-bottom: 0;
    font-size: clamp(2.75rem, 6vw, 4.75rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
}

.cms-page-view:not(.cms-index-index) .column.main h1 {
    max-width: 16ch;
    margin-bottom: 1.5rem;
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
}

.cms-page-view:not(.cms-index-index) .column.main h2 {
    margin-top: clamp(2.75rem, 6vw, 4.5rem);
    margin-bottom: 1rem;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
}

.cms-page-view:not(.cms-index-index) .column.main h3 {
    margin-bottom: 0.625rem;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    line-height: 1.2;
}

.cms-page-view:not(.cms-index-index) .column.main p,
.cms-page-view:not(.cms-index-index) .column.main li {
    max-width: 68ch;
    font-size: 1rem;
    line-height: 1.75;
}

.cms-page-view:not(.cms-index-index) .column.main h1 + p {
    max-width: 62ch;
    margin-bottom: 1.75rem;
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--color-text-muted, #7A6A52);
}

.cms-page-view:not(.cms-index-index) .column.main ul,
.cms-page-view:not(.cms-index-index) .column.main ol {
    max-width: 72ch;
    margin: 0 0 1.5rem;
    padding-left: 1.4rem;
}

.cms-page-view:not(.cms-index-index) .column.main li + li {
    margin-top: 0.55rem;
}

.cms-page-view:not(.cms-index-index) .column.main hr {
    width: 100%;
    height: 1px;
    margin: clamp(2.5rem, 5vw, 4rem) 0;
    border: 0;
    background: var(--border, rgba(28, 22, 18, 0.1));
}

.cms-page-view:not(.cms-index-index) .prov-cms-eyebrow,
.cms-page-view:not(.cms-index-index) .prov-faq-group-title {
    margin-bottom: 0.75rem;
    font-family: var(--font-sans, 'Raleway', sans-serif);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-accent, #B8893A);
}

.cms-page-view:not(.cms-index-index) .prov-cms-pullquote {
    width: 100%;
    margin: clamp(2rem, 5vw, 3.5rem) 0;
}

.cms-page-view:not(.cms-index-index) .prov-cms-pullquote blockquote {
    position: relative;
    margin: 0;
    padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 5vw, 3rem);
    overflow: hidden;
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-left: 4px solid var(--color-accent, #B8893A);
    border-radius: var(--radius-lg, 1rem);
    background: var(--color-surface, #FDFAF4);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(28, 22, 18, 0.06));
}

.cms-page-view:not(.cms-index-index) .prov-cms-pullquote blockquote::after {
    content: '\201C';
    position: absolute;
    top: -1.25rem;
    right: 1rem;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 8rem;
    line-height: 1;
    color: rgba(184, 137, 58, 0.1);
    pointer-events: none;
}

.cms-page-view:not(.cms-index-index) .prov-cms-pullquote p {
    position: relative;
    z-index: 1;
    max-width: 48ch;
    margin: 0;
    font-family: var(--font-serif, Georgia, serif);
    font-size: clamp(1.25rem, 2.5vw, 1.65rem);
    font-style: italic;
    line-height: 1.55;
    color: var(--color-text, #1C1612);
}

.cms-page-view:not(.cms-index-index) .prov-cms-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    width: 100%;
    margin: 2rem 0 1rem;
}

.cms-page-view:not(.cms-index-index) .prov-cms-card {
    min-width: 0;
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 1rem);
    background: var(--color-surface, #FDFAF4);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(28, 22, 18, 0.06));
}

.cms-page-view:not(.cms-index-index) .prov-cms-card::before {
    content: '';
    display: block;
    width: 2.25rem;
    height: 2px;
    margin-bottom: 1.25rem;
    background: var(--color-accent, #B8893A);
}

.cms-page-view:not(.cms-index-index) .prov-cms-card h3 {
    margin-top: 0;
}

.cms-page-view:not(.cms-index-index) .prov-cms-card p {
    margin-bottom: 0;
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-text-muted, #7A6A52);
}

.cms-page-view:not(.cms-index-index) .prov-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid currentColor;
    font-weight: 600;
}

/* FAQ */
.cms-page-view.cms-faqs .column.main > [data-content-type="html"] {
    max-width: 54rem !important;
}

.cms-page-view.cms-faqs .page-title-wrapper,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .page-title-wrapper {
    max-width: 54rem;
}

.cms-page-view.cms-faqs .page-title-wrapper .page-title {
    max-width: 16ch;
    font-size: clamp(2.75rem, 5vw, 4rem);
}

.cms-faqs .prov-faq-group-title {
    margin-top: 2.25rem;
    margin-bottom: 0.65rem;
}

.cms-faqs .prov-faq {
    width: 100%;
    margin: 0;
    border-top: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    background: transparent;
}

.cms-faqs .prov-faq:last-of-type {
    border-bottom: 1px solid var(--border, rgba(28, 22, 18, 0.1));
}

.cms-faqs .prov-faq summary {
    position: relative;
    padding: 1.25rem 3rem 1.25rem 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--font-sans, 'Raleway', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-text, #1C1612);
}

.cms-faqs .prov-faq summary::-webkit-details-marker {
    display: none;
}

.cms-faqs .prov-faq summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 0.25rem;
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: 50%;
    place-items: center;
    transform: translateY(-50%);
    color: var(--color-accent, #B8893A);
    transition: transform var(--motion-duration-normal, 0.3s) var(--ease-out-expo, ease),
                background var(--motion-duration-fast, 0.15s) ease;
}

.cms-faqs .prov-faq[open] summary::after {
    content: '\2212';
    transform: translateY(-50%) rotate(180deg);
    background: var(--secondary, #EDE4D0);
}

.cms-faqs .prov-faq summary:hover,
.cms-faqs .prov-faq summary:focus-visible {
    color: var(--color-link-hover, #8B6220);
}

.cms-faqs .prov-faq summary:focus-visible {
    outline: 2px solid var(--ring, #B8893A);
    outline-offset: 4px;
}

.cms-faqs .prov-faq-body {
    padding: 0 3rem 1.5rem 0;
}

.cms-faqs .prov-faq-body p:last-child,
.cms-faqs .prov-faq-body ul:last-child {
    margin-bottom: 0;
}

/* Legal documents */
.cms-page-view.cms-terms-and-conditions .column.main > [data-content-type="html"],
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .privacy-policy {
    box-sizing: border-box;
    max-width: 54rem !important;
    margin-right: auto;
    margin-left: auto;
    padding: clamp(1.5rem, 5vw, 3.5rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 1rem);
    background: var(--color-surface, #FDFAF4);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(28, 22, 18, 0.06));
}

.cms-page-view.cms-terms-and-conditions .column.main h1,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .page-title-wrapper .page-title {
    font-size: clamp(2.5rem, 5vw, 4rem);
}

.cms-page-view.cms-terms-and-conditions .column.main h2,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main h2 {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    font-size: clamp(1.65rem, 3vw, 2.15rem);
}

.cms-page-view.cms-terms-and-conditions .column.main h3 {
    margin-top: 2rem;
    font-size: 1.35rem;
}

.cms-page-view.cms-terms-and-conditions .column.main p,
.cms-page-view.cms-terms-and-conditions .column.main li,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main p,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main li {
    max-width: 76ch;
}

.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main table {
    width: 100%;
    margin-top: 1.5rem;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main th,
.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main td {
    padding: 0.8rem;
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    text-align: left;
    vertical-align: top;
}

.cms-page-view.cms-privacy-policy-cookie-restriction-mode .column.main th {
    background: var(--secondary, #EDE4D0);
    font-weight: 700;
}

/* Contact page */
.contact-index-index .page-main {
    box-sizing: border-box;
    width: 100%;
    max-width: 64rem;
    margin: 0 auto;
    padding: clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 7vw, 6rem);
}

.contact-index-index .page-title-wrapper,
.contact-index-index .form.contact {
    width: 100%;
    max-width: 46rem;
    margin-right: auto;
    margin-left: auto;
}

.contact-index-index .page-title-wrapper {
    margin-bottom: 1.5rem;
}

.contact-index-index .page-title {
    margin-bottom: 0;
    font-size: clamp(2.75rem, 6vw, 4rem);
    line-height: 1.05;
}

.contact-index-index .form.contact {
    box-sizing: border-box;
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid var(--border, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-lg, 1rem);
    background: var(--color-surface, #FDFAF4);
    box-shadow: var(--shadow-md, 0 4px 16px rgba(28, 22, 18, 0.08));
}

.contact-index-index .form.contact .fieldset {
    margin-bottom: 1.5rem;
}

.contact-index-index .form.contact .legend {
    margin-bottom: 0.75rem;
    border: 0;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 1.75rem;
}

.contact-index-index .form.contact .field.note {
    margin-bottom: 1.75rem;
    color: var(--color-text-muted, #7A6A52);
}

.contact-index-index .form.contact .field {
    margin-bottom: 1.25rem;
}

.contact-index-index .form.contact .label {
    display: inline-block;
    margin-bottom: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 600;
}

.contact-index-index .form.contact .input-text {
    min-height: 3rem;
    border-color: var(--input, rgba(28, 22, 18, 0.1));
    border-radius: var(--radius-sm, 0.625rem);
    background: var(--background, #F5F0E8);
}

.contact-index-index .form.contact textarea.input-text {
    min-height: 10rem;
    resize: vertical;
}

.contact-index-index .form.contact .actions-toolbar {
    margin-top: 0;
}


/* ==========================================================================
   RESPONSIVE — PAGES
   ========================================================================== */

@media (max-width: 1024px) {
    .cms-page-view:not(.cms-index-index) .prov-cms-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-product-view .column.main {
        padding-right: 0;
    }
    .opc-wrapper {
        max-width: 100%;
    }
}
@media (max-width: 768px) {
    .cms-page-view:not(.cms-index-index) .prov-cms-cards {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .cms-page-view:not(.cms-index-index) .prov-cms-pullquote blockquote {
        border-radius: var(--radius-md, 0.75rem);
    }

    .cms-faqs .prov-faq summary {
        padding-top: 1.1rem;
        padding-bottom: 1.1rem;
    }

    .cms-page-view.cms-terms-and-conditions .column.main > [data-content-type="html"],
    .cms-page-view.cms-privacy-policy-cookie-restriction-mode .privacy-policy,
    .contact-index-index .form.contact {
        border-radius: var(--radius-md, 0.75rem);
    }

    .catalog-category-view .columns,
    .catalogsearch-result-index .columns {
        display: block;
    }

    .catalog-category-view .sidebar-main,
    .catalog-category-view .sidebar-additional,
    .catalogsearch-result-index .sidebar-main,
    .catalogsearch-result-index .sidebar-additional {
        margin-top: var(--sp-4, 1rem);
    }

    .catalog-category-view .page-title-wrapper h1,
    .catalogsearch-result-index h1,
    .page-product-view .product-info-main .page-title-wrapper h1 {
        font-size: 2.25rem;
    }

    .product-info-price .price {
        font-size: 1.875rem;
    }

    .catalog-category-view .page-main,
    .catalogsearch-result-index .page-main,
    .catalog-product-view .page-main,
    .checkout-index-index .page-main,
    .account .page-main,
    .wishlist-index-index .page-main,
    .customer-account-login .page-main,
    .customer-account-create .page-main,
    .cart-index-index .page-main {
        padding-left: var(--sp-3, 0.75rem);
        padding-right: var(--sp-3, 0.75rem);
        padding-top: var(--sp-4, 1rem);
        padding-bottom: var(--sp-4, 1rem);
    }
}
@media (max-width: 480px) {
    .cms-page-view:not(.cms-index-index) .prov-cms-card {
        padding: 1.25rem;
    }

    .cms-faqs .prov-faq summary {
        padding-right: 2.5rem;
    }

    .cms-faqs .prov-faq-body {
        padding-right: 0;
    }

    .contact-index-index .form.contact .actions-toolbar .primary,
    .contact-index-index .form.contact .actions-toolbar .action.primary {
        width: 100%;
    }

    .catalog-category-view .page-title-wrapper h1,
    .catalogsearch-result-index h1 {
        font-size: 2rem;
    }

    .page-product-view .product-info-main .page-title-wrapper h1 {
        font-size: 1.75rem;
    }
    .product.info.detailed .product.data.items > .item.title > .switch {
        font-size: var(--text-xs, 0.75rem);
        padding: var(--sp-2, 0.5rem);
    }
    .opc-progress-bar-item {
        font-size: var(--text-xs, 0.75rem);
    }
}
