@font-face {
    font-family: "Libertinus Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Regular-LatinExt.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Libertinus Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Regular-Latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Libertinus Sans";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Italic-LatinExt.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Libertinus Sans";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Italic-Latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Libertinus Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Bold-LatinExt.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Libertinus Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/LibertinusSans-Bold-Latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/InstrumentSans-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/InstrumentSans-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/InstrumentSans-SemiBold.woff2") format("woff2");
}

@font-face {
    font-family: "Instrument Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/InstrumentSans-Bold.woff2") format("woff2");
}

@font-face {
    font-family: "Roboto";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/Roboto-Variable-Latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --koshi-ui-unit: 1.6rem;
    --koshi-ink: #322a22;
    --koshi-black: var(--koshi-ink);
    --koshi-dark: #22372b;
    --koshi-soft: var(--koshi-ink);
    --koshi-ink-20: rgb(50 42 34 / 20%);
    --koshi-taupe: #b9a890;
    --koshi-beige: #d9cfbb;
    --koshi-line: var(--koshi-taupe);
    --koshi-burgundy: #683431;
    --koshi-line-dark: var(--koshi-burgundy);
    --koshi-paper: #fffcf4;
    --koshi-mist: #f4f1e7;
    --koshi-forest: var(--koshi-dark);
    --koshi-sage: #819e87;
    --koshi-sage-dark: #667f6b;
    --koshi-sage-muted: #7d9175;
    --koshi-sage-soft: #dee4dc;
    --koshi-panel: var(--koshi-sage-soft);
    --koshi-panel-dark: var(--koshi-sage);
    --koshi-media-placeholder: #ded9cc;
    --koshi-clay: #a4493d;
    --koshi-clay-dark: var(--koshi-burgundy);
    --koshi-river: #005670;
    --koshi-navy: #1f2a44;
    --koshi-ocean: var(--koshi-navy);
    --koshi-terracotta-soft: #e9d2d1;
    --koshi-blue: #647692;
    --koshi-blue-soft: #bfcfe6;
    --koshi-blue-ash-soft: #e7eff1;
    --koshi-mimosa: #d69a2d;
    --koshi-mimosa-soft: #fcf7e0;
    --koshi-sun: #f5e1a4;
    /* Figma Terra 12202:15976; homologous gradient samples for the other tones. */
    --koshi-audio-terra: #819e87;
    --koshi-audio-aqua: #8db0b6;
    --koshi-audio-aria: #d8c38a;
    --koshi-audio-ignis: #b05552;
    --koshi-white: #fff;
    --koshi-card: #fffdf4;
    --koshi-hero-dark: #1b1713;
    --koshi-overlay-dark-20: rgb(0 0 0 / 20%);
    --koshi-max: 1440px;
    --koshi-content: 1280px;
    --koshi-radius: 16px;
    --koshi-frame-width: var(--koshi-max);
    --koshi-content-width: var(--koshi-content);
    --koshi-radius-media: var(--koshi-radius);
    --koshi-radius-panel: var(--koshi-radius);
    --koshi-radius-control: 5px;
    --koshi-radius-compact-control: 4px;
    --koshi-display: "Libertinus Sans", Candara, Corbel, "Trebuchet MS", sans-serif;
    --koshi-serif: var(--koshi-display);
    --koshi-sans: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body {
    background: var(--koshi-black);
    color: var(--koshi-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.45;
}
body a { color: inherit; }
.page-wrapper {
    width: min(var(--koshi-max), calc(100vw - 32px));
    min-height: 100vh;
    margin: 0 auto;
    background: var(--koshi-paper);
}

.header.panel.wrapper,
.sections.nav-sections,
.nav-toggle,
.block-search,
.minicart-wrapper,
.authorization-link,
.customer-welcome,
.switcher,
.navigation { display: none !important; }

.logo { float: none; margin: 0; max-width: none; }

.breadcrumbs,
.cms-home .page-title-wrapper { display: none; }
.columns .column.main { padding-bottom: 0; }
.page-main {
    max-width: none;
    padding: 0;
}
.cms-home .page-main { margin: 0; }
.koshi-hero {
    min-height: 330px;
    display: grid;
    place-items: center;
    border-bottom: 1px solid var(--koshi-line);
    padding: 72px 24px;
    text-align: center;
    background-color: #f0f0f0;
    background-image: linear-gradient(45deg, #dedede 25%, transparent 25%), linear-gradient(-45deg, #dedede 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #dedede 75%), linear-gradient(-45deg, transparent 75%, #dedede 75%);
    background-position: 0 0, 0 32px, 32px -32px, -32px 0;
    background-size: 64px 64px;
}
.koshi-hero h1,
.koshi-section-title,
.page-title .base {
    margin: 0;
    color: var(--koshi-black);
    font-size: 42px;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.06;
}
.koshi-hero p,
.koshi-section-lead {
    max-width: 620px;
    margin: 18px auto 0;
    color: var(--koshi-ink);
    font-size: 13px;
}
.koshi-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 26px;
}
.koshi-section { padding: 78px 56px; border-top: 1px solid var(--koshi-line); }
.koshi-section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.koshi-section-title { font-size: 34px; }
.koshi-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid var(--koshi-black);
    border-right: 0;
    margin: 34px auto 0;
}
.koshi-tabs a {
    min-height: 44px;
    display: grid;
    place-items: center;
    border-right: 1px solid var(--koshi-black);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
.koshi-split {
    display: grid;
    align-items: center;
    gap: 44px;
    grid-template-columns: minmax(0, .95fr) minmax(220px, .75fr);
}
.koshi-media {
    display: grid;
    min-height: 300px;
    place-items: center;
    background: var(--koshi-panel);
    padding: 22px;
}
.koshi-media img { width: 100%; max-height: 430px; object-fit: contain; }
.koshi-split h2 { margin: 0 0 22px; font-size: 34px; line-height: 1.08; }
.koshi-track { border-top: 1px solid var(--koshi-line); margin-top: 14px; padding-top: 14px; }
.koshi-track strong { display: block; margin-bottom: 4px; }
.koshi-product-grid {
    display: grid;
    gap: 36px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.koshi-card { min-width: 0; text-align: center; }
.koshi-card h3 { margin: 18px 0 5px; font-size: 13px; font-weight: 800; }
.koshi-card p { margin: 0; color: var(--koshi-soft); font-size: 12px; }
.koshi-card strong { display: block; margin-top: 8px; }
.koshi-steps,
.koshi-dual-cta {
    display: grid;
    gap: 42px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    text-align: center;
}
.koshi-dual-cta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.koshi-step-icon { display: grid; width: 38px; height: 38px; place-items: center; margin: 0 auto 14px; font-size: 25px; font-weight: 700; }

.page-title-wrapper,
.cart-container,
.login-container,
.form-create-account,
.account .columns,
.catalog-product-view .columns,
.catalog-category-view .columns,
.checkout-cart-index .columns,
.customer-account-login .columns {
    padding-left: 56px;
    padding-right: 56px;
}
.page-title-wrapper { padding-top: 54px; }
.products-grid .product-item-info,
.cart.table-wrapper,
.block,
.box,
.fieldset,
.table-wrapper { border-radius: 0; }
@media (max-width: 760px) {
    .page-wrapper { width: 100%; }
    .koshi-hero h1,
    .page-title .base { font-size: 34px; }
    .koshi-section { padding: 54px 24px; }
    .koshi-split,
    .koshi-product-grid,
    .koshi-steps,
    .koshi-dual-cta{ grid-template-columns: 1fr; }
    .koshi-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-title-wrapper,
    .cart-container,
    .login-container,
    .form-create-account,
    .account .columns,
    .catalog-product-view .columns,
    .catalog-category-view .columns,
    .checkout-cart-index .columns,
    .customer-account-login .columns { padding-left: 24px; padding-right: 24px; }

}

/* KOSHI_CATALOG_REFINEMENTS */
.koshi-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.koshi-card-link:hover h3 { text-decoration: underline; }
.koshi-card .koshi-price {
    display: block;
    margin-top: 10px;
    color: var(--koshi-black);
    font-size: 13px;
    font-weight: 800;
}
.koshi-card .koshi-notes {
    margin-bottom: 8px;
    color: var(--koshi-black);
    font-family: var(--koshi-display);
    font-size: 13px;
}
.koshi-melody-list {
    display: grid;
    gap: 12px;
    margin: 22px 0;
    padding: 0;
    list-style: none;
}
.koshi-melody-list li {
    display: grid;
    gap: 8px;
    border-top: 1px solid var(--koshi-line);
    padding-top: 12px;
}
.koshi-melody-list audio,
.koshi-track audio {
    width: 100%;
    max-width: 320px;
}

.koshi-melody-list li.koshi-inline-audio-enhanced,
.koshi-track.koshi-inline-audio-enhanced {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 16px;
}

.koshi-inline-audio-enhanced .koshi-inline-audio {
    display: none;
}

.koshi-inline-audio-play {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    justify-self: start;
    min-width: 108px;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid rgba(50, 42, 34, .42);
    border-radius: 999px;
    background: rgba(244, 241, 231, .72);
    color: var(--koshi-ink);
    cursor: pointer;
    font: 700 10px/1 var(--koshi-sans);
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.koshi-inline-audio-play span {
    font-size: 10px;
    line-height: 1;
}

.koshi-inline-audio-play em {
    font-style: normal;
}

.koshi-inline-audio-play:hover,
.koshi-inline-audio-play:focus-visible,
.koshi-inline-audio-play.is-playing {
    border-color: var(--koshi-ink);
    background: var(--koshi-ink);
    color: var(--koshi-white);
}

.koshi-inline-audio-play:active {
    transform: scale(.97);
}

@media (max-width: 520px) {
    .koshi-melody-list li.koshi-inline-audio-enhanced,
    .koshi-track.koshi-inline-audio-enhanced {
        grid-template-columns: 1fr;
    }
}
.catalog-product-view .product-info-main {
    margin-top: 24px;
}
@media (max-width: 980px) {
    .koshi-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Figma design token fallback polish - 2026-07-08 */

body {
    --koshi-commerce-flow: 1152px;
    --koshi-commerce-summary: 324px;
    --koshi-commerce-gap: 20px;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 15px;
    line-height: 1.6;
}

body button,
body input,
body select,
body textarea,
body .action {
    font-family: var(--koshi-sans) !important;
}

body input,
body select,
body textarea {
    color: var(--koshi-ink) !important;
}

body .page-wrapper {
    width: min(100%, var(--koshi-max));
    margin: 0 auto;
    background: var(--koshi-mist);
}

.page-main {
    background: var(--koshi-mist);
}

.breadcrumbs {
    display: block;
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 28px clamp(24px, 5vw, 64px) 0;
    color: var(--koshi-soft);
    font-size: 10px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.breadcrumbs a {
    color: inherit;
}

.page-title .base,
.koshi-hero h1,
.koshi-section-title {
    font-family: var(--koshi-serif);
    font-weight: 400;
    letter-spacing: -.025em;
}

.page-title-wrapper {
    max-width: var(--koshi-content);
    margin-left: auto;
    margin-right: auto;
    padding-top: 48px;
}

.action.secondary,
.action.viewcart {
    border: 1px solid var(--koshi-line) !important;
    border-radius: 2px !important;
    background: transparent !important;
    color: var(--koshi-ink) !important;
    box-shadow: none !important;
}

.koshi-section {
    border-top: 0;
    padding: clamp(72px, 8vw, 118px) clamp(24px, 5.6vw, 80px);
}

.koshi-section-title {
    font-size: clamp(36px, 4vw, 56px);
}

.koshi-media,
.product-image-container,
.product-item-photo {
    overflow: hidden;
    border-radius: var(--koshi-radius);
}

.products-grid .product-items {
    display: grid;
    gap: 28px 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.products-grid .product-item {
    width: auto !important;
    margin: 0 !important;
    padding: 0;
}

.products-grid .product-item-info {
    width: 100%;
    border: 0;
    background: transparent;
}

.products-grid .product-item-info:hover,
.products-grid .product-item-info.active {
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
}

.product-item-photo {
    display: block;
    background: var(--koshi-paper);
}

.product-image-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-item-details {
    padding: 14px 4px 0;
    text-align: center;
}

.product-item-name,
.product.name a {
    font-family: var(--koshi-serif);
    font-size: 18px;
    font-weight: 400;
}

.price-box .price {
    color: var(--koshi-ink);
    font-size: 13px;
    font-weight: 600;
}

.catalog-category-view .columns,
.catalogsearch-result-index .columns {
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 28px clamp(24px, 5vw, 64px) 90px;
}

.catalog-product-view .columns {
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 30px clamp(24px, 5vw, 64px) 0;
}

.catalog-product-view .product-info-main {
    position: sticky;
    top: 118px;
    width: 42%;
    margin-top: 0;
    padding: 8px 0 40px;
}

.catalog-product-view .product.attribute.overview {
    color: var(--koshi-soft);
    font-size: 13px;
}

.product.data.items {
    border-color: var(--koshi-line);
    margin-top: 38px;
}

.product.data.items > .item.title > .switch {
    border: 0;
    border-top: 1px solid var(--koshi-line);
    background: transparent;
    color: var(--koshi-ink);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.product.data.items > .item.content {
    border-color: var(--koshi-line);
    background: transparent;
}

.block.related,
.block.upsell,
.product.info.detailed {
    clear: both;
    max-width: var(--koshi-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(24px, 5vw, 64px);
    padding-right: clamp(24px, 5vw, 64px);
}

.block.related,
.block.upsell {
    padding-top: 80px;
    padding-bottom: 80px;
}

.block-title strong {
    font-family: var(--koshi-serif);
    font-size: 38px !important;
    font-weight: 400 !important;
}

.cart-container,
.login-container,
.form-create-account,
.account .columns,
.checkout-cart-index .columns,
.customer-account-login .columns {
    max-width: var(--koshi-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(24px, 5vw, 64px);
    padding-right: clamp(24px, 5vw, 64px);
}

.cart.table-wrapper,
.block,
.box,
.fieldset,
.table-wrapper {
    border-color: var(--koshi-line);
}

@media (max-width: 980px) {

    .catalog-product-view .product-info-main {
        width: 100%;
    }

    .catalog-product-view .product-info-main {
        position: static;
        padding-top: 36px;
    }

    .products-grid .product-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {

    .products-grid .product-items{
        grid-template-columns: 1fr;
    }

}

/* KOSHI_SHELL_20260702 */

.page-header .panel.wrapper {
    display: none !important;
}

.koshi-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    white-space: nowrap !important;
}

/* Online Figma visual coherence pass - 2026-07-03 */

.cms-index-index .page-main {
    max-width: none;
    padding: 0;
}

.cms-index-index .column.main {
    min-height: 0;
    padding-bottom: 0;
}

.koshi-eyebrow {
    margin: 0 0 14px;
    color: var(--koshi-clay);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.koshi-boutique-hero {
    position: relative;
    min-height: min(72vh, 760px);
    overflow: hidden;
    background: var(--koshi-dark);
    color: var(--koshi-white);
}

.koshi-boutique-hero-media {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(31, 27, 22, .82), rgba(31, 27, 22, .15)),
        radial-gradient(circle at 72% 38%, rgba(226, 230, 221, .28), transparent 34%),
        linear-gradient(135deg, #514a3e, #211e19);
}

.koshi-boutique-hero-copy {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: min(72vh, 760px);
    max-width: 660px;
    flex-direction: column;
    justify-content: center;
    padding: 80px clamp(24px, 8vw, 120px);
}

.koshi-boutique-hero h1,
.koshi-editorial-copy h2,
.koshi-boutique-closing h2,
.koshi-product-faq h2,
.koshi-listing-footer h2 {
    margin: 0 0 22px;
    font-family: var(--koshi-display);
    font-size: clamp(42px, 6vw, 82px);
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: .96;
}

.koshi-boutique-hero p:not(.koshi-eyebrow) {
    max-width: 520px;
    margin: 0 0 30px;
    font-size: 17px;
    line-height: 1.7;
}

.koshi-editorial-split {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
    min-height: 700px;
    background: var(--koshi-sage-soft);
}

.koshi-editorial-media {
    min-height: 540px;
}

.koshi-placeholder-media {
    background:
        radial-gradient(circle at 50% 32%, rgba(255, 255, 255, .5), transparent 22%),
        linear-gradient(145deg, #6f806f, #27352c);
}

.koshi-editorial-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(54px, 8vw, 120px);
}

.koshi-editorial-copy h2 {
    font-size: clamp(40px, 5vw, 68px);
}

.koshi-editorial-copy p:not(.koshi-eyebrow) {
    font-size: 16px;
    line-height: 1.8;
}

.koshi-text-link {
    width: max-content;
    border-bottom: 1px solid currentColor;
    color: var(--koshi-ink);
    font-size: 11px;
    letter-spacing: .08em;
    margin-top: 18px;
    padding-bottom: 4px;
    text-transform: uppercase;
}

.koshi-text-link--light {
    color: var(--koshi-white);
}

.koshi-button--dark {
    background: var(--koshi-ink);
    color: var(--koshi-white);
}

.koshi-use-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.koshi-use-grid > a {
    display: grid;
    min-height: 260px;
    align-content: end;
    border: 1px solid var(--koshi-line);
    border-radius: var(--koshi-radius);
    color: var(--koshi-ink);
    padding: 28px;
}

.koshi-use-grid span { color: var(--koshi-clay); font-size: 10px; }
.koshi-use-grid strong { font: 400 30px/1.1 var(--koshi-display); }
.koshi-use-grid p { margin-bottom: 0; }

.koshi-service-band {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--koshi-line);
    border-bottom: 1px solid var(--koshi-line);
    background: var(--koshi-paper);
}

.koshi-service-band > div {
    min-height: 170px;
    border-right: 1px solid var(--koshi-line);
    padding: 34px;
    text-align: center;
}

.koshi-service-band > div:last-child { border-right: 0; }
.koshi-service-band span { display: block; color: var(--koshi-clay); font-size: 10px; margin-bottom: 20px; }
.koshi-service-band strong { display: block; font: 400 21px/1.2 var(--koshi-display); }
.koshi-service-band p { margin: 8px 0 0; font-size: 12px; }

.koshi-boutique-closing {
    max-width: 920px;
    margin: 0 auto;
    padding: 110px 56px;
    text-align: center;
}

.koshi-boutique-closing h2 { font-size: clamp(42px, 6vw, 76px); }
.koshi-boutique-closing > p:last-child { font-size: 17px; line-height: 1.8; }

.koshi-product-structure {
    clear: both;
    margin: 80px 0 0;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

.catalog-product-view .product-info-main {
    position: relative;
    top: auto;
}

.koshi-product-structure .koshi-section,
.koshi-product-structure .koshi-product-faq,
.koshi-product-structure .koshi-guide-links {
    padding-left: clamp(24px, 6vw, 88px);
    padding-right: clamp(24px, 6vw, 88px);
}

.koshi-product-faq {
    display: grid;
    grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
    gap: clamp(40px, 8vw, 120px);
    background: var(--koshi-paper);
    padding-bottom: 100px;
    padding-top: 100px;
}

.koshi-product-faq h2 { font-size: clamp(38px, 5vw, 62px); }
.koshi-faq-list details { border-top: 1px solid var(--koshi-line); padding: 20px 0; }
.koshi-faq-list details:last-child { border-bottom: 1px solid var(--koshi-line); }
.koshi-faq-list summary { cursor: pointer; font: 400 22px/1.3 var(--koshi-display); }
.koshi-faq-list p { line-height: 1.7; padding-right: 40px; }

.koshi-guide-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    background: var(--koshi-sage-soft);
    padding-bottom: 90px;
    padding-top: 90px;
}

.koshi-guide-links a {
    display: grid;
    min-height: 190px;
    align-content: space-between;
    border-radius: var(--koshi-radius);
    background: var(--koshi-paper);
    color: var(--koshi-ink);
    padding: 28px;
}

.koshi-guide-links span { color: var(--koshi-clay); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.koshi-guide-links strong { font: 400 28px/1.15 var(--koshi-display); }

.koshi-listing-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px 70px;
    margin: 80px 0 0;
    border-radius: var(--koshi-radius);
    background: var(--koshi-sage-soft);
    padding: clamp(40px, 6vw, 78px);
}

.koshi-listing-footer h2 { font-size: clamp(36px, 4vw, 58px); }
.koshi-listing-footer > p { font-size: 16px; line-height: 1.8; }
.koshi-listing-footer-links { grid-column: 1 / -1; display: flex; gap: 28px; flex-wrap: wrap; }
.koshi-listing-footer-links a { border-bottom: 1px solid currentColor; color: var(--koshi-ink); padding-bottom: 4px; }

@media (max-width: 980px) {
    .koshi-editorial-split { grid-template-columns: 1fr; }
    .koshi-use-grid,
    .koshi-guide-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .koshi-service-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .koshi-service-band > div:nth-child(2) { border-right: 0; }
    .koshi-product-faq { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {

    .koshi-boutique-hero,
    .koshi-boutique-hero-copy { min-height: 620px; }
    .koshi-boutique-hero-copy { padding: 72px 24px; }
    .koshi-use-grid,
    .koshi-guide-links,
    .koshi-service-band { grid-template-columns: 1fr; }
    .koshi-service-band > div { border-right: 0; border-bottom: 1px solid var(--koshi-line); }
    .koshi-service-band > div:last-child { border-bottom: 0; }
    .koshi-editorial-copy { padding: 56px 24px; }
    .koshi-editorial-media { min-height: 420px; }
    .koshi-boutique-closing { padding: 78px 24px; }
    .koshi-listing-footer { grid-template-columns: 1fr; }
    .koshi-listing-footer-links { grid-column: 1; }
}

/* Figma online reprise - 2026-07-02 */
.koshi-boutique-home--figma {
    background: var(--koshi-mist);
}

.koshi-boutique-hero--video {
    min-height: min(82vh, 860px);
    overflow: hidden;
    background: #050706;
}

.koshi-boutique-hero--video video,
.koshi-boutique-hero--video .koshi-boutique-hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.koshi-boutique-hero--video .koshi-boutique-hero-media {
    background:
        linear-gradient(90deg, rgba(2, 6, 5, .76), rgba(2, 6, 5, .18) 54%, rgba(2, 6, 5, .56)),
        linear-gradient(180deg, rgba(2, 6, 5, .22), rgba(2, 6, 5, .48));
}

.koshi-boutique-hero--video .koshi-boutique-hero-copy {
    min-height: min(82vh, 860px);
    color: var(--koshi-white);
}

.koshi-boutique-hero--video .koshi-boutique-hero-copy h1 {
    text-transform: uppercase;
    letter-spacing: -.04em;
    font-size: clamp(56px, 7vw, 112px);
}

.koshi-boutique-hero--video .koshi-boutique-hero-copy p:not(.koshi-eyebrow) {
    color: rgba(255, 255, 255, .78);
}

/* Local .fig reference pass - 2026-07-06: boutique home closer to Carillons Koshi frame */

.koshi-boutique-hero--catalog {
    display: grid;
    min-height: clamp(560px, 72vh, 760px);
    place-items: end start;
    background: #777874;
    color: var(--koshi-white);
    text-align: left;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media {
    position: absolute;
    inset: 0;
    background: #777874;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(17, 19, 17, .10), rgba(17, 19, 17, .28) 50%, rgba(17, 19, 17, .64)),
        linear-gradient(90deg, rgba(17, 19, 17, .38), transparent 58%);
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media video {
    display: block;
    width: 100%;
    height: 100%;
    filter: saturate(.72) brightness(.68);
    object-fit: cover;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
    display: grid;
    min-height: 0;
    max-width: 740px;
    gap: 18px;
    justify-items: start;
    padding: clamp(120px, 14vw, 190px) clamp(24px, 7vw, 96px) clamp(76px, 9vw, 118px);
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy h1 {
    margin: 0;
    color: var(--koshi-white);
    font-size: clamp(58px, 8.4vw, 112px);
    letter-spacing: -.055em;
    line-height: .86;
    text-transform: uppercase;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy p:not(.koshi-eyebrow) {
    max-width: 440px;
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 13px;
    line-height: 1.65;
}

.koshi-boutique-hero--catalog .koshi-eyebrow {
    color: rgba(255, 255, 255, .72);
}

.koshi-boutique-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
}

.koshi-boutique-hero--catalog .koshi-button--listen {
    min-height: 50px;
    border: 1px solid rgba(255, 255, 255, .82) !important;
    border-radius: 2px;
    background: var(--koshi-white) !important;
    color: var(--koshi-ink) !important;
    gap: 10px;
    padding: 0 26px;
}

.koshi-boutique-hero--catalog .koshi-button--listen span {
    font-size: 13px;
    line-height: 1;
}

.koshi-boutique-hero--catalog .koshi-text-link {
    color: var(--koshi-white);
    margin-top: 0;
}

.koshi-boutique-home--figma .koshi-collection,
.koshi-boutique-home--figma .koshi-earth-section,
.koshi-boutique-home--figma .koshi-use-section {
    padding-top: clamp(72px, 8vw, 112px);
    padding-bottom: clamp(72px, 8vw, 112px);
}

.koshi-boutique-home--figma .koshi-collection {
    background: var(--koshi-mist);
}

.koshi-boutique-home--figma .koshi-section-head {
    max-width: 610px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.koshi-boutique-home--figma .koshi-collection .koshi-section-head {
    margin-bottom: clamp(42px, 5vw, 64px);
}

.koshi-boutique-home--figma .koshi-collection .koshi-section-title {
    color: var(--koshi-ink);
    font-size: clamp(40px, 4.8vw, 56px);
    line-height: 1.08;
}

.koshi-boutique-home--figma .koshi-collection .koshi-section-lead {
    max-width: 560px;
    margin-top: 20px;
    color: rgba(50, 42, 34, .78);
    font-size: 15px;
}

.koshi-element-audio {
    display: none;
}

.koshi-earth-section {
    background: var(--koshi-mist);
}

.koshi-earth-section {
    padding-top: clamp(72px, 9vw, 128px);
}

.koshi-earth-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(18px, 3vw, 36px);
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 clamp(24px, 6vw, 88px);
}

.koshi-earth-grid article {
    display: grid;
    gap: 10px;
}

.koshi-earth-grid a {
    display: grid;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}

.koshi-earth-grid img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
}

.koshi-earth-grid strong {
    font: 400 clamp(24px, 3vw, 34px)/1.1 var(--koshi-display);
}

.koshi-earth-grid span {
    color: var(--koshi-soft);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.koshi-earth-landing {
    overflow: hidden;
    background: var(--koshi-mist);
}

.koshi-earth-hero {
    position: relative;
    display: grid;
    min-height: clamp(680px, 82vh, 920px);
    place-items: end start;
    color: var(--koshi-white);
    overflow: hidden;
}

.koshi-earth-hero > video,
.koshi-earth-hero-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.koshi-earth-hero > video {
    object-fit: cover;
}

.koshi-earth-hero-shade {
    background:
        linear-gradient(90deg, rgba(5, 10, 9, .78), rgba(5, 10, 9, .12) 58%, rgba(5, 10, 9, .50)),
        linear-gradient(0deg, rgba(5, 10, 9, .64), transparent 56%);
}

.koshi-earth-hero-copy {
    position: relative;
    z-index: 1;
    display: grid;
    max-width: 760px;
    gap: 20px;
    padding: clamp(150px, 19vw, 220px) clamp(24px, 7vw, 96px) clamp(92px, 10vw, 150px);
}

.koshi-earth-hero-copy h1 {
    margin: 0;
    font-family: var(--koshi-serif);
    font-size: clamp(58px, 8vw, 116px);
    font-weight: 400;
    letter-spacing: -.06em;
    line-height: .9;
}

.koshi-earth-hero-copy p:not(.koshi-eyebrow) {
    max-width: 610px;
    margin: 0;
    color: rgba(255, 255, 255, .84);
    font-size: 16px;
    line-height: 1.75;
}

.koshi-earth-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
}

.koshi-earth-family {
    background: var(--koshi-mist);
}

/* Figma Earth Symphony polish - 2026-07-08 */
.koshi-earth-tabs {
    display: flex;
    max-width: 900px;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: clamp(24px, 4vw, 42px) auto clamp(34px, 5vw, 70px);
    padding: 0 24px;
}

.koshi-earth-tabs a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(50, 42, 34, .18);
    border-radius: 999px;
    background: rgba(255, 252, 244, .58);
    color: var(--koshi-ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    padding: 0 18px;
    text-decoration: none;
    text-transform: uppercase;
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}

.koshi-earth-tabs a:hover,
.koshi-earth-tabs a:focus-visible {
    border-color: var(--koshi-clay);
    color: var(--koshi-clay);
    transform: translateY(-1px);
}

.koshi-earth-landing-grid {
    display: grid;
    gap: clamp(24px, 4vw, 52px);
    max-width: 1280px;
    margin: 0 auto;
}

.koshi-earth-landing-grid article {
    display: grid;
    grid-template-columns: minmax(220px, .46fr) minmax(0, .54fr);
    gap: clamp(24px, 5vw, 76px);
    align-items: center;
    border-top: 1px solid rgba(35, 39, 35, .14);
    padding-top: clamp(28px, 5vw, 64px);
}

.koshi-earth-landing-grid article:nth-child(even) img {
    order: 2;
}

.koshi-earth-landing-grid img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: var(--koshi-radius-media);
    box-shadow: 0 24px 70px rgba(58, 45, 34, .12);
}

.koshi-earth-landing-grid h2,
.koshi-earth-commerce h2 {
    margin: 0;
    font-family: var(--koshi-serif);
    font-size: clamp(42px, 5vw, 76px);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .96;
}

.koshi-earth-landing-grid p,
.koshi-earth-commerce p {
    max-width: 620px;
    color: var(--koshi-soft);
    line-height: 1.8;
}

.koshi-earth-landing-grid span,
.koshi-earth-landing-grid small {
    color: var(--koshi-clay);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.koshi-earth-commerce {
    display: grid;
    grid-template-columns: minmax(0, .9fr) auto;
    gap: clamp(28px, 5vw, 76px);
    align-items: center;
    padding: clamp(72px, 8vw, 118px) clamp(24px, 6vw, 88px);
    background: var(--koshi-paper);
}

.koshi-earth-guide-links {
    background: #121816;
}

.koshi-editorial-split--figma .koshi-editorial-media {
    min-height: 620px;
    background: #171b17;
}

.koshi-editorial-split--figma .koshi-editorial-media img {
    width: 100%;
    height: 100%;
    min-height: 620px;
    object-fit: cover;
}

.koshi-product-craft .koshi-editorial-media img {
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;
}

@media (max-width: 960px) {
    .koshi-earth-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .koshi-earth-landing-grid article,
    .koshi-earth-commerce {
        grid-template-columns: 1fr;
    }

    .koshi-earth-landing-grid article:nth-child(even) img {
        order: 0;
    }
}

@media (max-width: 640px) {
    .koshi-boutique-hero--video,
    .koshi-boutique-hero--video .koshi-boutique-hero-copy {
        min-height: 720px;
    }

    .koshi-boutique-hero--video .koshi-boutique-hero-copy {
        padding-bottom: 220px;
    }

    .koshi-earth-grid {
        grid-template-columns: 1fr;
        padding: 0 24px;
    }

    .koshi-earth-hero {
        min-height: 680px;
    }

    .koshi-earth-hero-copy {
        padding: 132px 24px 78px;
    }

    .koshi-earth-hero-copy h1 {
        font-size: clamp(48px, 15vw, 68px);
    }

    .koshi-earth-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .koshi-earth-tabs {
        justify-content: flex-start;
        padding: 0 24px;
    }

    .koshi-earth-landing-grid img {
        border-radius: var(--koshi-radius-media);
    }

    .koshi-earth-commerce {
        padding: 68px 24px;
    }
}

/* Local .fig reference pass - 2026-07-06: product buy box closer to Figma */
.catalog-product-view .product-info-main {
    color: var(--koshi-ink);
}

.catalog-product-view .stock.available {
    color: var(--koshi-ink);
    font-weight: 700;
}

.catalog-product-view .product-addto-links,
.catalog-product-view .product-social-links,
.catalog-product-view .action.towishlist,
.catalog-product-view .action.tocompare {
    display: none !important;
}

.catalog-product-view .product.attribute.overview {
    max-width: 460px;
    margin-top: 20px;
    color: var(--koshi-soft);
}

.product.info.detailed {
    padding-top: 28px;
}

.product.data.items {
    border: 1px solid var(--koshi-line);
    background: rgba(255, 252, 244, .62);
}

.product.data.items > .item.title > .switch {
    background: rgba(255, 255, 255, .46);
}

.product.data.items > .item.title.active > .switch {
    background: var(--koshi-paper);
    color: var(--koshi-ink);
}

.product.data.items > .item.content {
    border: 0;
    background: var(--koshi-paper);
    padding: clamp(22px, 4vw, 38px);
}

/* Local .fig reference pass - 2026-07-06: boutique mobile coherence */

@media (max-width: 680px) {

    .koshi-boutique-hero--catalog,
    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        min-height: 650px;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        align-content: end;
        gap: 16px;
        padding: 92px 24px 74px;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy h1 {
        max-width: 342px;
        font-size: clamp(45px, 12.4vw, 50px);
        letter-spacing: -.07em;
        line-height: .84;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy p:not(.koshi-eyebrow) {
        max-width: 310px;
        font-size: 12px;
    }

    .koshi-boutique-hero-actions {
        display: grid;
        gap: 10px;
    }

    .koshi-boutique-hero--catalog .koshi-button--listen {
        width: max-content;
        min-width: 146px;
        min-height: 50px;
        justify-content: center;
    }

    .koshi-boutique-hero--catalog .koshi-text-link {
        display: none;
    }

    .koshi-boutique-home--figma .koshi-collection,
    .koshi-boutique-home--figma .koshi-earth-section,
    .koshi-boutique-home--figma .koshi-use-section {
        padding-top: 82px;
        padding-bottom: 82px;
    }

}

/* Shared Magento commerce shell: cart integration */
.checkout-cart-index .page-main {
    padding: 0 80px;
}

.checkout-cart-index .columns {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 0;
}

.checkout-cart-index .cart-empty {
    display: grid;
    place-items: center;
    min-height: 440px;
    padding: clamp(24px, 5vw, 72px) 0 clamp(82px, 8vw, 128px);
}

.koshi-cart-empty__panel {
    box-sizing: border-box;
    display: grid;
    width: min(100%, 1080px);
    min-height: 500px;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(50, 42, 34, .16);
    border-radius: var(--koshi-radius-panel);
    background: rgba(255, 252, 244, .92);
    box-shadow: 0 28px 90px rgba(63, 47, 34, .09);
}

.koshi-cart-empty__media {
    min-width: 0;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
}

.koshi-cart-empty__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.koshi-cart-empty__content {
    display: grid;
    gap: 18px;
    align-content: center;
    justify-items: start;
    background: var(--koshi-paper);
    padding: clamp(42px, 5vw, 68px);
    text-align: left;
}

.koshi-cart-empty__panel h1,
.koshi-order-success__panel h1 {
    max-width: 520px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(38px, 5vw, 62px);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .94;
}

/* Order confirmation reuses the validated empty-cart editorial split panel. */
.checkout-onepage-success .page-main {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 0 20px;
}

.checkout-onepage-success .columns {
    padding: clamp(48px, 6vw, 80px) 0 0;
}

.checkout-onepage-success .column.main {
    min-height: 0;
}

.checkout-onepage-success .checkout-success {
    display: grid;
    place-items: center;
    min-height: 440px;
    padding: clamp(24px, 5vw, 72px) 0 clamp(82px, 8vw, 128px);
}

.koshi-order-success__media img {
    object-position: 52% center;
}

.koshi-order-success__content {
    gap: 15px;
}

.koshi-order-success__number {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: baseline;
}

.koshi-order-success__number strong,
.koshi-order-success__number a {
    color: var(--koshi-ink);
    font-weight: 600;
    text-decoration: none;
}

.koshi-order-success__number a:hover,
.koshi-order-success__number a:focus-visible {
    color: var(--koshi-clay);
}

.koshi-order-success__additional:empty {
    display: none;
}

.koshi-order-success__discovery {
    width: 100%;
    margin-top: 10px;
    border-top: 1px solid rgb(50 42 34 / 16%);
    padding-top: 20px;
}

.koshi-order-success__links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(8px, 1.5vw, 18px);
}

.koshi-order-success__link-icon--craft,
.koshi-order-success__link-icon--story {
    background: currentColor;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
}

.koshi-order-success__link-icon--craft {
    width: 58px;
    mask-image: url("../images/koshi-reassurance-craft-figma.svg");
    -webkit-mask-image: url("../images/koshi-reassurance-craft-figma.svg");
}

.koshi-order-success__link-icon--story {
    width: 34px;
    mask-image: url("../images/koshi-reassurance-tuning-figma.svg");
    -webkit-mask-image: url("../images/koshi-reassurance-tuning-figma.svg");
}

.koshi-ui-icon-link__icon path,
.koshi-order-success__social-dot {
    fill: currentColor;
    stroke: none;
}

.checkout-onepage-success #registration {
    width: min(100%, 1080px);
    margin: 0 auto clamp(72px, 8vw, 120px);
}

.koshi-cart-empty__content > p:not(.koshi-eyebrow) {
    max-width: 520px;
    margin: 0;
    color: var(--koshi-soft);
    font-size: 15px;
    line-height: 1.8;
}

.koshi-cart-empty__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
    justify-content: flex-start;
    margin-top: 6px;
}

/* The longest translated action defines one shared button width. */
.checkout-cart-index .koshi-cart-empty__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: max-content;
    max-width: 100%;
}

.checkout-cart-index .koshi-cart-empty__actions .koshi-ui-button {
    width: 100%;
}

.checkout-cart-index .cart-container {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-commerce-flow);
    margin: 0 auto;
    padding-bottom: clamp(72px, 8vw, 120px);
}

.checkout-cart-index .cart.table-wrapper {
    box-sizing: border-box;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.checkout-cart-index .cart.table-wrapper {
    width: 100%;
    margin: 0;
    overflow: hidden;
}

.checkout-cart-index .cart-summary {
    width: 100%;
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.checkout-cart-index .koshi-cart-summary-panel {
    box-sizing: border-box;
    display: flex;
    width: 100%;
    flex-direction: column;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.checkout-cart-index .koshi-cart-summary-panel > .summary.title,
.checkout-cart-index .koshi-cart-list-title {
    display: block;
    order: 1;
    margin: 0 0 12px;
    border-bottom: 1px solid rgba(50, 42, 34, .14);
    color: var(--koshi-ink);
    padding: 0 0 10px;
    font-family: var(--koshi-serif);
    font-size: clamp(24px, 2.2vw, 28px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.6;
}

.checkout-cart-index .cart-summary .block > .title,
.checkout-cart-index .cart-discount .block > .title {
    border-top: 1px solid var(--koshi-ink-20);
    border-bottom: 1px solid var(--koshi-ink-20);
}

.checkout-cart-index .cart-summary .block > .title {
    padding: 14px 0;
}

.checkout-cart-index .cart-summary .block > .title strong,
.checkout-cart-index .cart-summary .block > .title .action,
.checkout-cart-index .cart-discount .block > .title strong,
.checkout-cart-index .cart-discount .block > .title .action {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
}

.checkout-cart-index .cart-summary .table.totals {
    width: 100%;
    margin: 10px 0 6px;
}

.checkout-cart-index .cart-summary .table.totals th,
.checkout-cart-index .cart-summary .table.totals td {
    border: 0;
    padding: 8px 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
    line-height: 1.4;
}

.checkout-cart-index .cart-summary .table.totals td {
    font-weight: 600;
    padding-left: 12px;
    text-align: right;
    white-space: nowrap;
}

.checkout-cart-index .cart-summary .table.totals .totals.discount .discount.coupon {
    display: inline !important;
}

.checkout-cart-index .cart-summary .grand.totals th,
.checkout-cart-index .cart-summary .grand.totals td {
    border-top: 1px solid rgb(185 168 144 / 48%);
    padding-top: 12px;
    font-family: var(--koshi-serif);
    font-size: 18px;
    font-weight: 400;
}

.checkout-cart-index .cart-summary .table.totals tr:not(.grand) + tr:not(.grand) th,
.checkout-cart-index .cart-summary .table.totals tr:not(.grand) + tr:not(.grand) td {
    border-top: 1px solid rgb(185 168 144 / 24%);
}

.checkout-cart-index .checkout-methods-items {
    margin: 0;
}

.checkout-cart-index .koshi-cart-summary-actions .action.primary.checkout {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
}

.checkout-cart-index .cart.table-wrapper .cart > thead th,
.checkout-cart-index .cart.table-wrapper .cart > tbody td {
    border-color: var(--koshi-ink-20);
}

.checkout-cart-index .cart.table-wrapper .cart > thead th {
    background: transparent;
    color: var(--koshi-ink);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .01em;
    padding: 20px 24px;
}

.checkout-cart-index .koshi-cart-group-heading th {
    border: 0 !important;
    padding: 0 !important;
    background: var(--koshi-cart-collection-color, var(--koshi-sage-soft));
    text-align: left;
}

.checkout-cart-index .koshi-cart-group-heading__brand {
    box-sizing: border-box;
    display: flex;
    width: 100%;
    min-height: 72px;
    gap: 18px;
    align-items: center;
    padding: 14px 24px;
}

.checkout-cart-index .koshi-cart-group-heading__mark {
    display: block;
    width: 92px;
    height: 40px;
    object-fit: contain;
    object-position: left center;
}

.checkout-cart-index .koshi-cart-group-heading__label {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.checkout-cart-index .koshi-cart-group-heading:not(:first-of-type) th {
    border-top: 1px solid var(--koshi-ink-20) !important;
}

.checkout-cart-index .cart.table-wrapper .cart > tbody td {
    vertical-align: middle;
    padding-top: 28px;
    padding-bottom: 28px;
}

.checkout-cart-index .cart.table-wrapper .cart > tbody td:first-child {
    padding-left: 24px;
}

.checkout-cart-index .cart.table-wrapper .cart > tbody td:last-child {
    padding-right: 24px;
}

.checkout-cart-index #shopping-cart-table > tbody.cart.item:last-of-type {
    border-bottom: 0;
}

.checkout-cart-index .cart.table-wrapper .product-item-photo {
    width: 152px;
    padding-right: 24px;
}

.checkout-cart-index .cart.table-wrapper .product-item-details {
    width: auto;
    vertical-align: middle;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-item .item-info > .col.item {
    display: flex;
    min-width: 0;
    align-items: center;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__media {
    box-sizing: border-box;
    display: block;
    width: 172px;
    min-width: 172px;
    overflow: visible;
    border-radius: 0;
    background: transparent;
    padding: 0 24px 0 0;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__image {
    display: block;
    width: 148px;
    height: 188px;
    border-radius: var(--koshi-radius-media);
    background: var(--koshi-media-placeholder);
    object-fit: cover;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__details {
    box-sizing: border-box;
    min-width: 0;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__identity {
    display: block;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__identity-heading {
    display: flex;
    min-width: 0;
    gap: 14px;
    align-items: center;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__variant-mark {
    display: block;
    width: 44px;
    min-width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__variant-mark img {
    display: block;
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__identity-copy {
    min-width: 0;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-product__collection {
    display: block;
    margin: 0 0 7px;
    color: var(--koshi-burgundy);
    font-family: var(--koshi-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.checkout-cart-index .koshi-cart-groups .koshi-cart-product__collection {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.checkout-cart-index .cart.table-wrapper .product-item-name,
.checkout-cart-index .cart.table-wrapper .product-item-name a {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-item .product-item-name,
.checkout-cart-index .cart.table-wrapper .koshi-cart-item .product-item-name a {
    font-size: 22px;
}

.checkout-cart-index .cart.table-wrapper .item-options {
    margin-top: 18px;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-item .item-options {
    display: flex;
    gap: 5px;
    align-items: baseline;
    margin: 10px 0 0;
}

.checkout-cart-index .cart.table-wrapper .item-options dt,
.checkout-cart-index .cart.table-wrapper .item-options dd {
    color: var(--koshi-ink);
    font-size: 14px;
    line-height: 1.5;
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-item .item-options dt::after {
    content: " :";
}

.checkout-cart-index .cart.table-wrapper .koshi-cart-item .item-options dd {
    margin: 0;
}

.checkout-cart-index .koshi-cart-product__audio {
    margin-top: 14px;
}

.checkout-cart-index .koshi-cart-product__actions {
    margin-top: 14px;
}

.checkout-cart-index .koshi-cart-product__actions .actions-toolbar {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: flex-start;
}

.checkout-cart-index .koshi-cart-product__actions .action,
.koshi-sketch-icon-button {
    box-sizing: border-box;
    display: grid !important;
    width: 28px;
    min-width: 28px;
    height: 28px;
    min-height: 28px;
    place-items: center;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--koshi-ink);
    box-shadow: none !important;
    line-height: 1;
    transition: color .18s ease;
}

.checkout-cart-index .koshi-cart-product__actions .action.towishlist {
    display: none !important;
}

.checkout-cart-index .koshi-cart-product__actions .action::before,
.koshi-sketch-icon-button::before {
    display: block;
    width: 24px;
    height: 24px;
    background: currentColor;
    content: "" !important;
    font-family: inherit !important;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
}

.checkout-cart-index .koshi-cart-product__actions .action-edit::before,
.koshi-sketch-icon-button--edit::before {
    -webkit-mask-image: url("../images/koshi-cart-edit-sketch.svg");
    mask-image: url("../images/koshi-cart-edit-sketch.svg");
}

.checkout-cart-index .koshi-cart-product__actions .action-delete::before,
.koshi-sketch-icon-button--delete::before {
    -webkit-mask-image: url("../images/koshi-cart-remove-sketch.svg");
    mask-image: url("../images/koshi-cart-remove-sketch.svg");
}

.koshi-sketch-icon-button--default::before {
    -webkit-mask-image: url("../images/koshi-address-default-sketch.svg");
    mask-image: url("../images/koshi-address-default-sketch.svg");
}

.checkout-cart-index .koshi-cart-product__actions .action > span,
.koshi-sketch-icon-button > span {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.checkout-cart-index .koshi-cart-product__actions .action:hover,
.checkout-cart-index .koshi-cart-product__actions .action:focus-visible,
.koshi-sketch-icon-button:hover,
.koshi-sketch-icon-button:focus-visible {
    background: transparent !important;
    color: var(--koshi-burgundy);
}

.checkout-cart-index .koshi-cart-product__actions .action:focus-visible,
.koshi-sketch-icon-button:focus-visible {
    outline: 1px solid var(--koshi-burgundy);
    outline-offset: 3px;
}

/* Shared Figma color audio player: product presentation cards and cart lines. */
.koshi-figma-audio-player {
    --koshi-figma-audio-track: #d9d9d9;
    --koshi-figma-audio-control-hover: rgba(255, 255, 255, .14);
    --koshi-figma-audio-color: var(--koshi-audio-terra);
    box-sizing: border-box;
    display: grid;
    width: min(267px, 100%);
    height: 35px;
    min-height: 35px;
    grid-template-columns: 20px minmax(0, 1fr) 20px;
    gap: 5px;
    align-items: center;
    padding: 0 9.5px;
    background: var(--koshi-figma-audio-color);
    color: var(--koshi-paper);
}

.koshi-figma-audio-player[data-koshi-audio-tone="terra"] {
    --koshi-figma-audio-color: var(--koshi-audio-terra);
}

.koshi-figma-audio-player[data-koshi-audio-tone="aqua"] {
    --koshi-figma-audio-color: var(--koshi-audio-aqua);
}

.koshi-figma-audio-player[data-koshi-audio-tone="aria"] {
    --koshi-figma-audio-color: var(--koshi-audio-aria);
}

.koshi-figma-audio-player[data-koshi-audio-tone="ignis"] {
    --koshi-figma-audio-color: var(--koshi-audio-ignis);
}

.koshi-figma-audio-player__play,
.koshi-figma-audio-player__volume {
    display: grid;
    width: 20px;
    min-width: 20px;
    height: 20px;
    min-height: 20px;
    place-items: center;
    border: 0 !important;
    border-radius: 0;
    padding: 0 !important;
    background: transparent;
    color: inherit;
    box-shadow: none !important;
    cursor: pointer;
}

.koshi-figma-audio-player__play:hover,
.koshi-figma-audio-player__play:focus-visible,
.koshi-figma-audio-player__volume:hover,
.koshi-figma-audio-player__volume:focus-visible {
    background: var(--koshi-figma-audio-control-hover);
    color: var(--koshi-white);
    border: 0 !important;
    box-shadow: none !important;
}

.koshi-figma-audio-player__play:disabled,
.koshi-figma-audio-player__volume:disabled {
    cursor: default;
    opacity: .45;
}

.koshi-figma-audio-player__play:focus-visible,
.koshi-figma-audio-player__volume:focus-visible,
.koshi-figma-audio-player__progress:focus-visible {
    outline: 2px solid var(--koshi-white);
    outline-offset: -3px;
}

.koshi-figma-audio-player__play-icon,
.koshi-figma-audio-player__volume-icon {
    position: relative;
    display: block;
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 20px 20px;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: 20px 20px;
}

.koshi-figma-audio-player__play-icon {
    -webkit-mask-image: url("../images/koshi-earth-player-play-figma.svg");
    mask-image: url("../images/koshi-earth-player-play-figma.svg");
}

.koshi-figma-audio-player__volume-icon {
    -webkit-mask-image: url("../images/koshi-earth-player-volume-figma.svg");
    mask-image: url("../images/koshi-earth-player-volume-figma.svg");
}

.koshi-figma-audio-player__play.is-playing .koshi-figma-audio-player__play-icon {
    background: transparent;
    -webkit-mask-image: none;
    mask-image: none;
}

.koshi-figma-audio-player__play.is-playing .koshi-figma-audio-player__play-icon::before,
.koshi-figma-audio-player__play.is-playing .koshi-figma-audio-player__play-icon::after {
    position: absolute;
    top: 5px;
    width: 3px;
    height: 10px;
    background: currentColor;
    content: "";
}

.koshi-figma-audio-player__play.is-playing .koshi-figma-audio-player__play-icon::before {
    left: 6px;
}

.koshi-figma-audio-player__play.is-playing .koshi-figma-audio-player__play-icon::after {
    right: 6px;
}

.koshi-figma-audio-player__volume.is-muted .koshi-figma-audio-player__volume-icon {
    opacity: .55;
}

.koshi-figma-audio-player__progress {
    --koshi-audio-progress: 0%;
    width: 100%;
    height: 11px;
    min-height: 11px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    appearance: none;
}

.koshi-figma-audio-player__progress:disabled {
    cursor: default;
    opacity: 1;
}

.koshi-figma-audio-player__progress::-webkit-slider-runnable-track {
    height: 11px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(
        to right,
        var(--koshi-white) 0 var(--koshi-audio-progress),
        var(--koshi-figma-audio-track) var(--koshi-audio-progress) 100%
    );
}

.koshi-figma-audio-player__progress::-webkit-slider-thumb {
    width: 1px;
    height: 11px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    opacity: 0;
    appearance: none;
}

.koshi-figma-audio-player__progress::-moz-range-track {
    height: 11px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(
        to right,
        var(--koshi-white) 0 var(--koshi-audio-progress),
        var(--koshi-figma-audio-track) var(--koshi-audio-progress) 100%
    );
}

.koshi-figma-audio-player__progress::-moz-range-thumb {
    width: 1px;
    height: 11px;
    border: 0;
    border-radius: 0;
    background: transparent;
    opacity: 0;
}

.koshi-figma-audio-player__audio {
    display: none;
}

.checkout-cart-index .cart.table-wrapper .cart-price .price {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 16px;
    font-weight: 600;
}

.checkout-cart-index .cart.table-wrapper .input-text.qty {
    box-sizing: border-box;
    width: 60px;
    height: 44px;
    border: 1px solid var(--koshi-ink-20);
    border-radius: var(--koshi-radius-compact-control);
    background: var(--koshi-card);
    color: var(--koshi-ink);
    box-shadow: none;
    font-family: var(--koshi-sans);
    font-size: 15px;
    text-align: center;
}

.checkout-cart-index .cart.table-wrapper .control.qty > label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.checkout-cart-index .cart.table-wrapper .control.qty > label > .label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.checkout-cart-index .koshi-cart-quantity-multiplier {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 17px;
    font-weight: 500;
    line-height: 1;
}

.checkout-cart-index .cart.table-wrapper .cart.item .item-info > td::before {
    display: none !important;
    content: none !important;
}

.checkout-cart-index .cart.table-wrapper .input-text.qty:focus {
    border-color: var(--koshi-clay);
    box-shadow: 0 0 0 3px rgba(164, 73, 61, .1);
    outline: 0;
}

.checkout-cart-index .cart.table-wrapper .item-actions td {
    padding: 12px 24px 20px;
}

.checkout-cart-index .cart.table-wrapper .item-actions .actions-toolbar {
    display: flex;
    gap: 18px;
    justify-content: flex-end;
}

.checkout-cart-index .cart.table-wrapper .item-actions .action {
    color: var(--koshi-ink);
}

.checkout-cart-index .cart.table-wrapper .item-actions .action.towishlist {
    display: none !important;
}

.checkout-cart-index .cart.table-wrapper .item-actions .action:hover,
.checkout-cart-index .cart.table-wrapper .item-actions .action:focus-visible {
    color: var(--koshi-burgundy);
}

.checkout-cart-index .form-cart > .actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}

.checkout-cart-index .koshi-cart-pricing {
    width: 100%;
    margin: 0;
}

.checkout-cart-index .koshi-cart-update {
    box-sizing: border-box;
    width: 200px;
    margin: 0;
    padding: 0;
}

.checkout-cart-index .koshi-cart-update .action.update {
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    --koshi-button-surface: transparent;
    --koshi-button-surface-hover: var(--koshi-sage);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-dark);
    --koshi-button-foreground-hover: var(--koshi-white);
}

.checkout-cart-index .koshi-cart-summary-actions {
    display: flex;
    width: 100%;
    order: 4;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 22px;
}

.checkout-cart-index .koshi-cart-summary-actions .checkout-methods-items,
.checkout-cart-index .koshi-cart-summary-actions .checkout-methods-items > li {
    width: 200px;
    height: 100%;
}

.checkout-cart-index .cart-discount {
    width: 100%;
    order: 3;
    padding: 0;
    overflow: hidden;
}

.checkout-cart-index .cart-totals {
    box-sizing: border-box;
    width: 100%;
    order: 4;
    margin: 0;
    padding: 0 !important;
}

.checkout-cart-index .cart-totals > .table-wrapper {
    width: 100%;
    margin: 0;
}

.checkout-cart-index .cart-container .cart-discount .block.discount {
    box-sizing: border-box;
    float: none !important;
    width: 100% !important;
    margin: 0;
}

.checkout-cart-index .cart-container .cart-discount .block.discount > .title {
    box-sizing: border-box;
    border: 0;
    display: flex;
    width: 100%;
    height: 44px !important;
    min-height: 44px;
    align-items: center;
    border-bottom: 1px solid var(--koshi-ink-20);
    cursor: pointer;
    padding: 0 !important;
}

.checkout-cart-index .cart-container .cart-discount .block.discount > .title::after {
    position: static;
    display: block;
    margin-left: auto;
    color: var(--koshi-burgundy);
    content: "+" !important;
    font-family: var(--koshi-sans) !important;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
}

.checkout-cart-index .cart-container .cart-discount .block.discount.active > .title::after {
    content: "\2212" !important;
}

.checkout-cart-index .cart-container .cart-discount .block.discount > .content {
    box-sizing: border-box;
    width: 100%;
    border-top: 0;
    padding: 12px 0 16px !important;
}

.checkout-cart-index .cart-discount #discount-coupon-form {
    width: 100%;
}

.checkout-cart-index .cart-container .cart-discount .block.discount.has-coupon > .content {
    padding: 0 !important;
}

.checkout-cart-index .cart-discount .fieldset.coupon.applied {
    display: block;
}

.checkout-cart-index .koshi-coupon-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.checkout-cart-index .koshi-coupon-list__item {
    box-sizing: border-box;
    display: grid;
    min-height: 48px;
    grid-template-columns: 7px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--koshi-ink-20);
    padding: 8px 0;
}

.checkout-cart-index .koshi-coupon-list__marker {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--koshi-sage);
}

.checkout-cart-index .koshi-coupon-list__code {
    min-width: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.checkout-cart-index .koshi-coupon-list__remove.action.cancel {
    min-width: 0;
    min-height: 0;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0;
    padding: 4px 0 4px 8px !important;
    background: transparent !important;
    color: var(--koshi-burgundy) !important;
    box-shadow: none !important;
    font-family: var(--koshi-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.4;
    text-transform: uppercase;
}

.checkout-cart-index .koshi-coupon-list__remove.action.cancel:hover,
.checkout-cart-index .koshi-coupon-list__remove.action.cancel:focus-visible {
    color: var(--koshi-clay-dark) !important;
    text-decoration: underline;
    transform: none;
}

.checkout-cart-index .cart-discount .fieldset.coupon {
    box-sizing: border-box;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: end;
    margin: 0;
}

.checkout-cart-index .cart-discount .fieldset.coupon > .field,
.checkout-cart-index .cart-discount .fieldset.coupon > .actions-toolbar,
.checkout-cart-index .cart-discount .fieldset.coupon .primary {
    width: auto;
    margin: 0;
}

.checkout-cart-index .cart-discount .fieldset.coupon .label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.checkout-cart-index .cart-discount .fieldset.coupon .input-text {
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    border: 1px solid var(--koshi-ink-20);
    border-radius: var(--koshi-radius-compact-control);
    background: var(--koshi-card);
    color: var(--koshi-ink);
    box-shadow: none;
    padding: 0 16px;
    font-family: var(--koshi-sans);
    font-size: 14px;
}

.checkout-cart-index .cart-discount .fieldset.coupon .input-text:focus {
    border-color: var(--koshi-clay);
    box-shadow: 0 0 0 3px rgba(164, 73, 61, .1);
    outline: 0;
}

.checkout-cart-index .cart-discount .fieldset.coupon .action.primary {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    --koshi-button-surface: var(--koshi-sage);
    --koshi-button-surface-hover: var(--koshi-sage-dark);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-white);
    --koshi-button-foreground-hover: var(--koshi-white);
}

.checkout-cart-index #gift-options-cart:not(:has(> :not(script))) {
    display: none;
}

@media (min-width: 981px) {
    .checkout-index-index #checkout {
        max-width: var(--koshi-commerce-flow);
    }

    .checkout-cart-index .cart-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr) var(--koshi-commerce-summary);
        column-gap: var(--koshi-commerce-gap);
        align-items: start;
    }

    .checkout-cart-index .cart-summary {
        float: none;
    }

    .checkout-cart-index .form-cart {
        width: 100%;
        float: none;
        grid-column: 1;
        grid-row: 1;
        margin: 0;
        padding: 0;
    }

    .checkout-cart-index .cart-container .form-cart {
        width: 100%;
        padding-right: 0;
    }

    .checkout-cart-index .koshi-cart-pricing {
        width: var(--koshi-commerce-summary);
        grid-column: 2;
        grid-row: 1;
    }

    .checkout-cart-index .koshi-cart-summary-actions {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .checkout-cart-index .cart-discount {
        width: 100%;
        float: none;
        margin: 0;
    }
}

@media (max-width: 980px) {
    .checkout-cart-index .page-main {
        padding: 0 40px;
    }

    .checkout-cart-index .cart-container {
        display: flex;
        gap: 24px;
        flex-direction: column;
    }

    .checkout-cart-index .cart-summary,
    .checkout-cart-index .form-cart,
    .checkout-cart-index .cart-discount,
    .checkout-cart-index .koshi-cart-pricing {
        width: 100%;
        float: none;
        margin: 0;
        padding-right: 0;
    }

    .checkout-cart-index .koshi-cart-pricing {
        order: 3;
    }

    .checkout-cart-index .koshi-cart-summary-panel {
        display: flex;
        padding: 0;
    }

    .checkout-cart-index .form-cart {
        order: 1;
    }

    .koshi-cart-empty__panel {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .koshi-cart-empty__media {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .koshi-cart-empty__content {
        justify-items: center;
        padding: clamp(38px, 7vw, 58px) clamp(24px, 7vw, 64px);
        text-align: center;
    }

    .koshi-cart-empty__actions {
        justify-content: center;
    }
}

/* Local .fig reference pass - 2026-07-06: checkout integration */
.checkout-index-index .page-main {
    background: transparent;
    padding-bottom: clamp(72px, 8vw, 124px);
}

.checkout-index-index .columns,
.checkout-index-index #checkout {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(24px, 5vw, 64px);
    padding-right: clamp(24px, 5vw, 64px);
}

.checkout-index-index .page-title-wrapper {
    max-width: var(--koshi-content);
    margin: 0 auto;
    padding: 42px clamp(24px, 5vw, 64px) 10px;
}

.checkout-index-index .page-title .base {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(44px, 6vw, 76px);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .95;
    text-transform: none;
}

.checkout-index-index .opc-progress-bar {
    max-width: 520px;
    margin: 22px 0 44px;
}

.checkout-index-index .opc-progress-bar-item > span {
    color: var(--koshi-soft);
    font-family: var(--koshi-sans);
    font-size: 18px;
}

.checkout-index-index .opc-progress-bar-item._active > span,
.checkout-index-index .opc-progress-bar-item._complete > span {
    color: var(--koshi-ink);
}

.checkout-index-index .opc-progress-bar-item._complete > span {
    cursor: pointer;
}

/* Make blocking checkout recalculations visible instead of swallowing clicks silently. */
.checkout-index-index .loading-mask {
    background: rgba(20, 24, 21, .3);
    cursor: progress;
}

.checkout-index-index .loading-mask .loader img {
    width: 28px;
    height: 28px;
}

.checkout-index-index .opc-wrapper {
    box-sizing: border-box;
    width: calc(100% - 420px);
    max-width: 760px;
    padding-right: clamp(32px, 4vw, 56px);
}

.checkout-index-index .opc-sidebar {
    box-sizing: border-box;
    width: min(100%, 372px);
    margin: 0;
    background: transparent;
    box-shadow: none;
}

.checkout-index-index .opc-estimated-wrapper {
    border: 1px solid rgba(50, 42, 34, .13);
    border-radius: var(--koshi-radius-panel);
    background: rgba(255, 252, 244, .78);
    box-shadow: 0 24px 75px rgba(63, 47, 34, .07);
}

.checkout-index-index .opc-sidebar .modal-inner-wrap {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.checkout-index-index .opc-block-summary > .title,
.checkout-index-index .opc-block-summary .items-in-cart > .title strong,
.checkout-index-index .step-title {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-weight: 400;
    letter-spacing: -.035em;
    text-transform: none;
}

.checkout-index-index .step-title {
    border-bottom-color: rgba(50, 42, 34, .14);
    font-size: clamp(28px, 4vw, 38px);
    margin-bottom: 24px;
    padding-bottom: 18px;
}

.checkout-index-index .form-login,
.checkout-index-index .form-shipping-address,
.checkout-index-index .checkout-shipping-method,
.checkout-index-index .payment-method-content {
    border: 1px solid rgba(50, 42, 34, .12);
    border-radius: var(--koshi-radius-panel);
    background: rgba(255, 252, 244, .58);
    box-shadow: 0 18px 55px rgba(63, 47, 34, .045);
    box-sizing: border-box;
    margin-bottom: 28px;
    padding: clamp(22px, 3vw, 34px);
}

.checkout-index-index .fieldset,
.checkout-index-index .fieldset > .field,
.checkout-index-index .field .control {
    box-sizing: border-box;
    max-width: 100%;
}

.checkout-index-index input[type="text"],
.checkout-index-index input[type="email"],
.checkout-index-index input[type="password"],
.checkout-index-index input[type="tel"],
.checkout-index-index select,
.checkout-index-index textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--koshi-ink-20);
    border-radius: var(--koshi-radius-compact-control);
    background: rgba(255, 255, 255, .72);
    color: var(--koshi-ink);
    box-shadow: none;
}

.checkout-index-index input:focus,
.checkout-index-index select:focus,
.checkout-index-index textarea:focus {
    border-color: rgba(163, 69, 56, .72);
    box-shadow: 0 0 0 3px rgba(163, 69, 56, .1);
    outline: none;
}

.checkout-index-index .field-tooltip {
    top: 38px;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method {
    width: 100%;
}

.checkout-index-index .checkout-shipping-method .row,
.checkout-index-index .checkout-shipping-method tr {
    border-color: rgba(50, 42, 34, .12);
}

.checkout-index-index .actions-toolbar .primary,
.checkout-index-index .primary {
    max-width: 100%;
}

.checkout-index-index .action.primary,
.checkout-index-index .button.action.continue.primary {
    min-height: 48px;
}

.checkout-index-index .checkout-payment-method .payment-methods,
.checkout-index-index .checkout-payment-method .payment-option,
.checkout-index-index .checkout-payment-method .checkout-billing-address {
    border: 1px solid rgba(50, 42, 34, .12);
    border-radius: var(--koshi-radius-panel);
    background: rgba(255, 252, 244, .6);
    box-shadow: 0 18px 55px rgba(63, 47, 34, .045);
    box-sizing: border-box;
    margin-bottom: 24px;
    padding: clamp(22px, 3vw, 34px);
}

.checkout-index-index .checkout-payment-method .payment-methods.koshi-payment-unavailable {
    color: var(--koshi-ink);
    line-height: 1.75;
}

.checkout-index-index .checkout-payment-method .payment-methods.koshi-payment-unavailable::before {
    display: inline-flex;
    margin: 0 0 16px;
    border: 1px solid rgba(163, 69, 56, .28);
    border-radius: 999px;
    background: rgba(163, 69, 56, .08);
    color: var(--koshi-clay);
    content: "Paiement";
    font-family: var(--koshi-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 7px 12px;
    text-transform: uppercase;
}

.checkout-index-index .checkout-payment-method .billing-address-details,
.checkout-index-index .opc-block-shipping-information .shipping-information-content {
    color: var(--koshi-ink);
    font-size: 15px;
    line-height: 1.75;
}

.checkout-index-index .checkout-payment-method .payment-option-title,
.checkout-index-index .opc-block-shipping-information .shipping-information-title {
    border-color: rgba(50, 42, 34, .14);
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(24px, 3vw, 31px);
    font-weight: 400;
    letter-spacing: -.035em;
}

.checkout-index-index .checkout-payment-method .payment-option-title .action-toggle,
.checkout-index-index .opc-block-shipping-information .action-edit {
    color: var(--koshi-clay);
    text-decoration: none;
}

.checkout-index-index .checkout-payment-method .payment-option-content {
    padding-top: 18px;
}

/* Figma checkout native label polish - 2026-07-08 */
.checkout-index-index .field-tooltip .label span {
    display: inline-block;
    font-size: 0;
    line-height: 0;
}

.checkout-index-index .street.admin__control-fields .field._required > .label span,
.checkout-index-index .street.admin__control-fields .field.additional > .label span {
    display: inline-block;
    font-size: 0;
}

.checkout-index-index .street.admin__control-fields .field._required > .label span::after {
    content: "Adresse : ligne 1";
    font-size: 12px;
    line-height: 1.35;
}

.checkout-index-index .street.admin__control-fields .field.additional > .label span::after {
    content: "Compl\00E9 ment d\2019 adresse";
    font-size: 12px;
    line-height: 1.35;
}

.checkout-index-index .opc-block-shipping-information {
    color: var(--koshi-ink);
}

/* Figma product public SKU label polish - 2026-07-08 */
.catalog-product-view .product.attribute.sku .type::after {
    content: " :";
}

.checkout-index-index .minicart-items .product-item {
    border-color: rgba(50, 42, 34, .12);
}

.checkout-index-index .minicart-items .product-item-name,
.checkout-index-index .minicart-items .product-item-name a {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-weight: 400;
}

@media (max-width: 680px) {
    .checkout-onepage-success .page-main {
        padding: 0 20px;
    }

    .checkout-onepage-success .checkout-success {
        min-height: 0;
        padding-bottom: 76px;
    }

    .koshi-order-success__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 12px;
    }

    .checkout-cart-index .page-main {
        padding: 0 20px;
    }

    .checkout-cart-index .cart-empty {
        min-height: 0;
        padding-bottom: 76px;
    }

    .koshi-cart-empty__panel {
        border-radius: var(--koshi-radius-panel);
    }

    .koshi-cart-empty__media {
        aspect-ratio: 4 / 3;
    }

    .koshi-cart-empty__actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .koshi-cart-empty__actions .koshi-ui-button {
        box-sizing: border-box;
        justify-content: center;
        max-width: 100%;
        width: 100%;
    }

    .checkout-cart-index .cart.table-wrapper {
        border-radius: var(--koshi-radius-panel);
    }

    .checkout-cart-index .cart.table-wrapper .cart > tbody td {
        box-sizing: border-box;
    }

    .checkout-cart-index .cart.table-wrapper .cart > tbody td:first-child,
    .checkout-cart-index .cart.table-wrapper .cart > tbody td:last-child {
        padding-left: 20px;
        padding-right: 20px;
    }

    .checkout-cart-index .cart.table-wrapper .product-item-photo {
        width: 112px;
        padding-right: 16px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-item .item-info > .col.item {
        display: grid;
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 16px;
        align-items: start;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__media {
        position: static !important;
        inset: auto !important;
        float: none !important;
        width: 96px;
        min-width: 96px;
        padding: 0;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__image {
        width: 96px;
        height: 122px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__details {
        display: block !important;
        width: auto !important;
        min-width: 0;
        padding: 0 !important;
    }

    .checkout-cart-index .koshi-cart-group-heading,
    .checkout-cart-index .koshi-cart-group-heading tr,
    .checkout-cart-index .koshi-cart-group-heading th {
        box-sizing: border-box;
        display: block;
        width: 100%;
    }

    .checkout-cart-index .koshi-cart-group-heading__brand {
        min-height: 64px;
        gap: 14px;
        padding: 12px 20px;
    }

    .checkout-cart-index .koshi-cart-group-heading__mark {
        width: 76px;
        height: 34px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__identity-heading {
        gap: 6px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__variant-mark {
        width: 30px;
        min-width: 30px;
        height: 30px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-product__variant-mark img {
        width: 30px;
        height: 30px;
    }

    .checkout-cart-index .cart.table-wrapper .koshi-cart-item .product-item-name,
    .checkout-cart-index .cart.table-wrapper .koshi-cart-item .product-item-name a {
        font-size: 19px;
    }

    .checkout-cart-index .koshi-cart-summary-panel {
        box-sizing: border-box;
        width: 100%;
        padding: 24px 0 0;
    }

    .checkout-cart-index .koshi-cart-summary-actions {
        align-items: stretch;
        flex-direction: column;
        gap: 12px;
    }

    .checkout-cart-index .koshi-cart-update,
    .checkout-cart-index .koshi-cart-summary-actions .checkout-methods-items,
    .checkout-cart-index .koshi-cart-summary-actions .checkout-methods-items > li {
        width: 100%;
    }

    .checkout-cart-index .cart-container .cart-discount .block.discount > .content {
        padding: 20px 0 0 !important;
    }

    .checkout-cart-index .cart-discount .fieldset.coupon {
        grid-template-columns: 1fr;
    }

    .checkout-cart-index .cart-discount .fieldset.coupon .action.primary {
        width: 100%;
    }

    .checkout-index-index .page-main {
        overflow-x: hidden;
        padding-bottom: 78px;
    }

    .checkout-index-index .columns,
    .checkout-index-index #checkout {
        max-width: 100%;
        overflow-x: hidden;
        padding-left: 0;
        padding-right: 0;
    }

    .checkout-index-index .page-title-wrapper {
        padding: 36px 24px 0;
    }

    .checkout-index-index .opc-progress-bar {
        box-sizing: border-box;
        display: flex;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 18px 16px 20px;
    }

    .checkout-index-index .opc-progress-bar-item {
        box-sizing: border-box;
        flex: 1 1 0;
        min-width: 0;
    }

    .checkout-index-index .opc-progress-bar-item > span {
        font-size: 16px;
        line-height: 1.35;
    }

    .checkout-index-index .opc-wrapper,
    .checkout-index-index .opc-sidebar {
        float: none;
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    .checkout-index-index .opc-estimated-wrapper {
        border-left: 0;
        border-right: 0;
        border-radius: 0;
        margin: 0 0 22px;
        padding: 18px 24px;
    }

    .checkout-index-index .opc-wrapper .form-login,
    .checkout-index-index .form-shipping-address,
    .checkout-index-index .checkout-shipping-method,
    .checkout-index-index .payment-method-content,
    .checkout-index-index .checkout-payment-method .payment-methods,
    .checkout-index-index .checkout-payment-method .payment-option,
    .checkout-index-index .checkout-payment-method .checkout-billing-address {
        border-left: 0;
        border-right: 0;
        border-radius: 0;
        box-shadow: none;
        margin: 0 0 22px;
        padding: 24px 16px;
    }

    .checkout-index-index .checkout-payment-method .payment-methods.koshi-payment-unavailable::before {
        margin-left: 0;
    }

    .checkout-index-index .step-title {
        background: rgba(255, 252, 244, .72);
        border-top: 1px solid rgba(50, 42, 34, .1);
        font-size: 21px;
        margin: 0;
        padding: 18px 16px;
    }

    .checkout-index-index .fieldset > .field,
    .checkout-index-index .field,
    .checkout-index-index .control {
        width: 100%;
    }

    .checkout-index-index .field-tooltip {
        right: 8px;
    }

    .checkout-index-index .checkout-shipping-method .table-checkout-shipping-method,
    .checkout-index-index .checkout-shipping-method tbody,
    .checkout-index-index .checkout-shipping-method tr {
        box-sizing: border-box;
        max-width: 100%;
    }

    .checkout-index-index .actions-toolbar .primary,
    .checkout-index-index .button.action.continue.primary {
        width: 100%;
    }

    .checkout-index-index .button.action.continue.primary {
        margin: 10px 0 0;
    }
}

/* Figma final Boutique reconstruction - frame 12202:16247 - 2026-07-15 */
.cms-index-index .page-main,
.cms-index-index .page-main > .columns,
.cms-index-index .column.main {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0;
}

.cms-index-index .koshi-shop-final {
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    margin: 0 auto;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
    font-family: "Instrument Sans", Arial, sans-serif;
    overflow: hidden;
}

.cms-index-index .koshi-shop-final > section {
    box-sizing: border-box;
    position: relative;
    flex: 0 0 auto;
}

.cms-index-index .koshi-shop-final > section + section {
    margin-top: -1px;
}

.cms-index-index .page-footer {
    margin-top: -1px;
}

.koshi-shop-final-hero {
    height: 571px;
    overflow: hidden;
    background: var(--koshi-hero-dark);
    color: var(--koshi-white);
}

.koshi-shop-final-hero__media,
.koshi-shop-final-hero__shade {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.koshi-shop-final-hero__media {
    object-fit: cover;
    object-position: center;
}

.koshi-shop-final-hero__shade {
    background: rgba(0, 0, 0, .2);
}

.koshi-shop-final-hero__copy {
    position: absolute;
    z-index: 2;
    top: 224px;
    left: 50%;
    box-sizing: border-box;
    width: 768px;
    height: 235px;
    text-align: center;
    transform: translateX(-50%);
}

.koshi-shop-final-hero__copy h1 {
    height: 67px;
    margin: 0;
    color: var(--koshi-white);
    font-family: var(--koshi-display);
    font-size: 56px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: uppercase;
}

.koshi-shop-final-hero__copy p {
    width: 721px;
    margin: 24px auto 0;
    color: var(--koshi-white);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 24px;
}

.koshi-shop-collection {
    height: 1960px;
    background: var(--koshi-mist);
}

.koshi-shop-collection--elements {
    height: 1848px;
}

.koshi-shop-collection__inner {
    box-sizing: border-box;
    width: 1280px;
    height: 1736px;
    margin: 0 auto;
}

.koshi-shop-collection--earth .koshi-shop-collection__inner {
    padding-top: 112px;
}

.koshi-shop-collection__inner > h2 {
    box-sizing: border-box;
    width: 768px;
    height: 116px;
    margin: 0 auto;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 48px;
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
    text-align: center;
}

.koshi-shop-grid {
    display: grid;
    width: 1280px;
    height: 1540px;
    margin-top: 80px;
    grid-template-columns: repeat(3, 416px);
    grid-template-rows: repeat(2, 738px);
    column-gap: 16px;
    row-gap: 64px;
}

.koshi-shop-card {
    position: relative;
    box-sizing: border-box;
    width: 416px;
    height: 738px;
    color: var(--koshi-ink);
}

.koshi-shop-card--row-two {
    grid-row: 2;
}

.koshi-shop-card--wide {
    width: 848px;
    grid-column: 2 / span 2;
}

.koshi-shop-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.koshi-shop-card__link:hover,
.koshi-shop-card__link:focus-visible {
    color: inherit;
    text-decoration: none;
    outline: 0;
}

.koshi-card-media {
    position: relative;
    display: block;
    width: var(--koshi-card-media-width, 416px);
    height: var(--koshi-card-media-height, 600px);
    aspect-ratio: var(--koshi-card-media-ratio, auto);
    overflow: hidden;
    border-radius: 16px;
    background: var(--koshi-media-placeholder);
    transition: border-radius .3s cubic-bezier(.42, 0, .58, 1);
}

.koshi-card-media--elements {
    border-radius: 8px;
}

.koshi-shop-card:hover .koshi-card-media--elements,
.koshi-shop-card__link:focus-visible .koshi-card-media--elements,
.koshi-related-card:hover .koshi-card-media--elements,
.koshi-related-card:focus-within .koshi-card-media--elements {
    border-radius: 16px;
}

.koshi-shop-card--wide .koshi-card-media {
    width: 848px;
}

.koshi-card-image,
.koshi-card-media video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.koshi-card-image {
    transition: opacity .3s cubic-bezier(.42, 0, .58, 1), transform .3s cubic-bezier(.42, 0, .58, 1);
}

.koshi-card-image--hover {
    opacity: 0;
}

.koshi-shop-card:hover .koshi-card-image--default,
.koshi-shop-card__link:focus-visible .koshi-card-image--default,
.koshi-related-card:hover .koshi-card-image--default,
.koshi-related-card:focus-within .koshi-card-image--default {
    opacity: 0;
}

.koshi-shop-card:hover .koshi-card-image--hover,
.koshi-shop-card__link:focus-visible .koshi-card-image--hover,
.koshi-related-card:hover .koshi-card-image--hover,
.koshi-related-card:focus-within .koshi-card-image--hover {
    opacity: 1;
}

.koshi-shop-card__tag {
    position: absolute;
    z-index: 2;
    top: 16px;
    right: 13px;
    display: inline-flex;
    box-sizing: border-box;
    width: 48px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    background: rgba(0, 0, 0, .5);
    color: var(--koshi-white);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .08em;
    line-height: 18px;
}

.koshi-shop-card__copy {
    display: grid;
    box-sizing: border-box;
    width: 100%;
    height: 82px;
    margin-top: 16px;
    grid-template-rows: 50px 24px;
    row-gap: 8px;
    color: var(--koshi-ink);
    font-style: normal;
    text-align: center;
}

.koshi-shop-card__header {
    display: grid;
    width: 100%;
    height: 50px;
    grid-template-rows: 24px 18px;
    row-gap: 8px;
}

.koshi-shop-card__copy strong,
.koshi-shop-card__copy small,
.koshi-shop-card__copy em {
    display: block;
    overflow: hidden;
    margin: 0;
    color: inherit;
    font-style: normal;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.koshi-shop-card__copy strong {
    font-family: var(--koshi-display);
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
}

.koshi-shop-card__copy small {
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .08em;
    line-height: 18px;
    text-transform: uppercase;
}

.koshi-shop-card__copy em {
    font-family: var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .08em;
    line-height: 24px;
    text-transform: uppercase;
}

.koshi-shop-play {
    position: absolute;
    top: 714px;
    left: 50%;
    display: inline-flex;
    box-sizing: border-box;
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--koshi-ink);
    padding: 0;
    font: 400 11px/1 "Instrument Sans", Arial, sans-serif;
    opacity: 1;
    transform: translateX(-50%);
    cursor: pointer;
}

.koshi-shop-play:hover,
.koshi-shop-play:focus-visible {
    background: rgba(50, 42, 34, .08);
    color: var(--koshi-ink);
    outline: 1px solid rgba(50, 42, 34, .35);
}

.koshi-shop-play:disabled {
    color: var(--koshi-ink);
    opacity: 1;
    cursor: default;
}

.koshi-shop-play__icon {
    display: block;
    width: 24px;
    height: 24px;
    background: currentColor;
    font-size: 0;
    -webkit-mask: url("../images/koshi-product-related-audio-figma.svg") center / contain no-repeat;
    mask: url("../images/koshi-product-related-audio-figma.svg") center / contain no-repeat;
}

.koshi-shop-card .koshi-element-audio {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.koshi-shop-reassurance {
    box-sizing: border-box;
    height: 348px;
    background: var(--koshi-mist);
    padding: 80px;
}

.koshi-shop-reassurance__inner {
    display: grid;
    width: 1280px;
    height: 188px;
    margin: 0 auto;
    grid-template-columns: repeat(4, 296px);
    grid-template-rows: 188px;
    gap: 32px;
}

.koshi-shop-reassurance article {
    box-sizing: border-box;
    display: flex;
    width: 296px;
    height: 188px;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.koshi-shop-reassurance img {
    display: block;
    width: auto;
    max-width: 88px;
    height: 66px;
    margin: 0 auto 24px;
    flex: 0 0 66px;
    object-fit: contain;
}

.koshi-shop-reassurance h2 {
    display: flex;
    width: 256px;
    max-width: none;
    min-height: 48px;
    margin: 0;
    flex-direction: column;
    align-items: center;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .15em;
    line-height: 24px;
    text-transform: uppercase;
}

.koshi-shop-reassurance article:nth-child(2) h2 {
    width: 275px;
}

.koshi-shop-reassurance article:nth-child(3) h2 {
    width: 258px;
}

.koshi-shop-reassurance article:nth-child(4) h2 {
    width: 274px;
}

.koshi-shop-reassurance p {
    width: 260px;
    max-width: none;
    margin: 8px auto 0;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 21px;
}

.koshi-shop-manufacture {
    height: 968px;
    background: var(--koshi-mist);
}

.koshi-shop-manufacture > img {
    position: absolute;
    top: 112px;
    left: max(0px, calc(50% - 720px));
    display: block;
    width: 758px;
    height: 808px;
    border-radius: 0 16px 16px 0;
    object-fit: cover;
}

.koshi-shop-manufacture__copy {
    position: absolute;
    top: 557px;
    left: calc(50% + 118px);
    display: flex;
    box-sizing: border-box;
    width: 602px;
    height: 363px;
    flex-direction: column;
    align-items: flex-start;
    padding-right: 80px;
    gap: 32px;
}

.koshi-shop-manufacture__text {
    display: flex;
    width: 397px;
    height: 284px;
    flex-direction: column;
    gap: 24px;
}

.koshi-shop-manufacture__copy h2 {
    width: 359px;
    height: 116px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.2;
}

.koshi-shop-manufacture__copy h2 > span,
.koshi-shop-world__head h2 > span {
    display: block;
    white-space: nowrap;
}

.koshi-shop-manufacture__copy p {
    width: 397px;
    height: 144px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .32px;
    line-height: 24px;
}

.koshi-shop-manufacture__copy a {
    display: inline-flex;
    box-sizing: border-box;
    width: 146px;
    height: 26px;
    align-items: center;
    justify-content: center;
    margin: 0;
    border: 1px solid var(--koshi-ink);
    border-radius: 5px;
    color: var(--koshi-ink);
    padding: 0 12px;
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .96px;
    line-height: 18px;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.koshi-shop-manufacture__copy a:hover,
.koshi-shop-manufacture__copy a:focus-visible {
    background: var(--koshi-ink);
    color: #fffaf0;
    outline: 0;
}

.koshi-shop-world {
    box-sizing: border-box;
    height: 1232px;
    background: var(--koshi-mist);
    padding: 112px 80px;
}

.koshi-shop-world__head {
    width: 1280px;
    height: 166px;
    margin: 0 auto;
}

.koshi-shop-world__head-content {
    display: flex;
    width: 768px;
    height: 166px;
    flex-direction: column;
    gap: 16px;
}

.koshi-shop-world__head h2 {
    width: 485px;
    height: 96px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 40px;
    font-weight: 400;
    line-height: 1.2;
}

.koshi-shop-world__head p {
    width: 446px;
    height: 54px;
    margin: 0;
    color: var(--koshi-ink);
    font-size: 18px;
    font-weight: 400;
    line-height: 27px;
}

.koshi-shop-world__accordion {
    display: flex;
    width: 1280px;
    height: 810px;
    margin: 32px auto 0;
    overflow: hidden;
    border-radius: 24px;
    background: var(--koshi-paper);
    box-shadow: inset 0 0 0 1px var(--koshi-taupe);
}

.koshi-shop-world__pane {
    position: relative;
    display: flex;
    box-sizing: border-box;
    width: 82px;
    height: 810px;
    flex: 0 0 82px;
    overflow: hidden;
    border-right: 1px solid var(--koshi-taupe);
    background: var(--koshi-paper);
    transition: flex-basis .3s cubic-bezier(.33, 1, .68, 1);
}

.koshi-shop-world__pane.is-active {
    width: 870px;
    flex-basis: 870px;
}

.koshi-shop-world__pane:last-child {
    border-right: 0;
}

.koshi-shop-world__tab {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 82px;
    height: 810px;
    flex: 0 0 82px;
    border: 0;
    background: transparent;
    color: var(--koshi-ink);
    padding: 32px 24px;
    cursor: pointer;
    transition: background .25s ease;
}

.koshi-shop-world__pane:not(.is-active) .koshi-shop-world__tab:hover,
.koshi-shop-world__pane:not(.is-active) .koshi-shop-world__tab:focus-visible {
    background: rgba(185, 168, 144, .12);
    outline: 0;
}

.koshi-shop-world__tab:focus-visible {
    outline: 0;
    box-shadow: inset 0 0 0 2px var(--koshi-clay);
}

.koshi-shop-world__pane.is-active .koshi-shop-world__tab,
.koshi-shop-world__pane.is-active .koshi-shop-world__tab:hover,
.koshi-shop-world__pane.is-active .koshi-shop-world__tab:focus,
.koshi-shop-world__pane.is-active .koshi-shop-world__tab:active {
    background: transparent !important;
}

.koshi-shop-world__tab-label {
    position: absolute;
    bottom: 32px;
    left: 24px;
    display: block;
    width: 760px;
    height: 34px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 24px;
    font-weight: 400;
    line-height: 34px;
    text-align: left;
    white-space: nowrap;
    transform: rotate(-90deg);
    transform-origin: left bottom;
}

.koshi-shop-world__panel {
    display: flex;
    box-sizing: border-box;
    width: 640px;
    height: 810px;
    flex: 0 0 640px;
    flex-direction: column;
    justify-content: flex-end;
    gap: 48px;
    padding: 64px 48px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility 0s linear .2s;
}

.koshi-shop-world__pane.is-active .koshi-shop-world__panel {
    opacity: 1;
    visibility: visible;
    transition: opacity .3s cubic-bezier(.33, 1, .68, 1), visibility 0s;
}

.koshi-shop-world__copy {
    display: flex;
    width: 544px;
    height: 216px;
    flex: 0 0 216px;
    flex-direction: column;
    gap: 24px;
}

.koshi-shop-world__identity {
    width: 544px;
    height: 72px;
}

.koshi-shop-world__copy h3 {
    width: 544px;
    height: 48px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 40px;
    font-weight: 400;
    line-height: 48px;
}

.koshi-shop-world__place {
    width: 544px;
    height: 24px;
    margin: 0;
    color: var(--koshi-ink);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 1.28px;
    line-height: 24px;
    text-transform: uppercase;
}

.koshi-shop-world__description {
    width: 544px;
    height: 72px;
    margin: 0;
    color: var(--koshi-ink);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: .32px;
    line-height: 24px;
}

.koshi-shop-world__audio-icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
}

.koshi-shop-world__audio-icon img {
    display: block;
    width: 24px;
    height: 24px;
}

.koshi-shop-world__media {
    display: block;
    width: 544px;
    height: 400px;
    flex: 0 0 400px;
    border-radius: 16px;
    object-fit: cover;
}

.koshi-shop-about {
    height: 650px;
    background: var(--koshi-mist);
    padding-top: 112px;
}

.koshi-shop-about__inner {
    width: 1280px;
    height: 426px;
    margin: 0 auto;
}

.koshi-shop-about h2 {
    height: 38px;
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
}

.koshi-shop-about__columns {
    display: grid;
    margin-top: 48px;
    grid-template-columns: 622px 622px;
    column-gap: 35px;
}

.koshi-shop-about__columns > div {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5;
}

.koshi-shop-about p {
    margin: 0 0 18px;
    color: var(--koshi-ink);
}

.koshi-shop-about__columns > div:first-child p:last-child,
.koshi-shop-about__columns > div:last-child p:last-child {
    margin-bottom: 0;
}

.koshi-shop-about a {
    color: var(--koshi-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 980px) {
    .cms-index-index .koshi-shop-final > section,
    .cms-index-index .koshi-shop-final > section + section {
        height: auto;
        margin-top: 0;
    }

    .cms-index-index .page-footer {
        margin-top: 0;
    }

    .koshi-shop-final-hero {
        min-height: 520px;
    }

    .koshi-shop-final-hero__copy {
        top: 184px;
        left: 50%;
        width: min(100% - 48px, 768px);
        height: auto;
        transform: translateX(-50%);
    }

    .koshi-shop-final-hero__copy h1 {
        height: auto;
        font-size: clamp(42px, 9vw, 60px);
    }

    .koshi-shop-final-hero__copy p {
        width: min(100%, 640px);
        height: auto;
    }

    .koshi-shop-collection {
        padding: 72px 24px 96px;
    }

    .koshi-shop-collection__inner,
    .koshi-shop-collection--earth .koshi-shop-collection__inner {
        width: 100%;
        height: auto;
        padding-top: 0;
    }

    .koshi-shop-collection__inner > h2 {
        width: 100%;
        height: auto;
        font-size: clamp(36px, 7vw, 48px);
    }

    .koshi-shop-grid {
        width: 100%;
        height: auto;
        margin-top: 56px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        gap: 48px 16px;
    }

    .koshi-shop-card,
    .koshi-shop-card--wide,
    .koshi-shop-card--row-two {
        width: 100%;
        height: auto;
        grid-column: auto;
        grid-row: auto;
        padding-bottom: 40px;
    }

    .koshi-shop-card--wide {
        grid-column: 1 / -1;
    }

    .koshi-shop-card--image-only {
        padding-bottom: 0;
    }

    .koshi-card-media,
    .koshi-shop-card--wide .koshi-card-media {
        width: 100%;
        height: auto;
        aspect-ratio: 416 / 600;
    }

    .koshi-shop-card--wide .koshi-card-media {
        aspect-ratio: 848 / 600;
    }

    .koshi-shop-play {
        top: auto;
        bottom: 0;
    }

    .koshi-shop-reassurance {
        height: auto;
        padding: 72px 24px;
    }

    .koshi-shop-reassurance__inner {
        width: 100%;
        height: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 48px 24px;
    }

    .koshi-shop-reassurance article {
        width: 100%;
    }

    .koshi-shop-manufacture {
        display: grid;
        padding: 72px 24px 96px;
        gap: 48px;
    }

    .koshi-shop-manufacture > img,
    .koshi-shop-manufacture__copy {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
    }

    .koshi-shop-manufacture__copy {
        padding-right: 0;
    }

    .koshi-shop-manufacture__text {
        width: 100%;
        height: auto;
    }

    .koshi-shop-manufacture > img {
        border-radius: 16px;
        aspect-ratio: 16 / 12;
    }

    .koshi-shop-manufacture__copy h2,
    .koshi-shop-manufacture__copy p {
        width: 100%;
        height: auto;
    }

    .koshi-shop-manufacture__copy h2 {
        font-size: clamp(36px, 7vw, 48px);
    }

    .koshi-shop-world {
        height: auto;
        padding: 88px 24px 96px;
    }

    .koshi-shop-world__head,
    .koshi-shop-world__head-content,
    .koshi-shop-world__head h2,
    .koshi-shop-world__head p {
        width: 100%;
        height: auto;
    }

    .koshi-shop-world__accordion {
        flex-direction: column;
        width: 100%;
        height: auto;
        margin-top: 40px;
    }

    .koshi-shop-world__pane,
    .koshi-shop-world__pane.is-active {
        width: 100%;
        height: auto;
        flex: 0 0 auto;
        flex-direction: column;
        border-right: 0;
        border-bottom: 1px solid var(--koshi-taupe);
        transition: max-height .7s cubic-bezier(.65, 0, .35, 1);
    }

    .koshi-shop-world__pane {
        max-height: 72px;
    }

    .koshi-shop-world__pane.is-active {
        max-height: 900px;
    }

    .koshi-shop-world__pane:last-child {
        border-bottom: 0;
    }

    .koshi-shop-world__tab {
        display: flex;
        width: 100%;
        height: 72px;
        flex: 0 0 72px;
        align-items: center;
        padding: 0 24px;
        text-align: left;
    }

    .koshi-shop-world__tab-label {
        position: static;
        width: auto;
        height: auto;
        font-size: 20px;
        line-height: 28px;
        transform: none;
    }

    .koshi-shop-world__panel {
        width: 100%;
        height: auto;
        flex: 0 0 auto;
        justify-content: flex-start;
        gap: 32px;
        padding: 36px 48px 48px;
    }

    .koshi-shop-world__copy,
    .koshi-shop-world__identity,
    .koshi-shop-world__copy h3,
    .koshi-shop-world__place,
    .koshi-shop-world__description {
        width: 100%;
    }

    .koshi-shop-world__copy {
        height: auto;
        flex-basis: auto;
    }

    .koshi-shop-world__description {
        height: auto;
    }

    .koshi-shop-world__media {
        width: 100%;
        height: 352px;
        flex-basis: 352px;
    }

    .koshi-shop-world__pane:last-child {
        border-right: 0;
    }

    .koshi-shop-about {
        padding: 88px 24px 96px;
    }

    .koshi-shop-about__inner {
        width: 100%;
        height: auto;
    }

    .koshi-shop-about__columns {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .koshi-shop-about__columns > div:first-child,
    .koshi-shop-about__columns > div:last-child {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (max-width: 620px) {
    .koshi-shop-final-hero {
        display: flex;
        height: auto;
        min-height: 650px;
        align-items: center;
        padding: 96px 24px 72px;
    }

    .koshi-shop-final-hero__copy {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        margin: 0 auto;
        transform: none;
    }

    .koshi-shop-grid,
    .koshi-shop-reassurance__inner {
        grid-template-columns: 1fr;
    }

    .koshi-shop-card--wide {
        grid-column: auto;
    }

    .koshi-shop-reassurance h2,
    .koshi-shop-reassurance article:nth-child(n) h2,
    .koshi-shop-reassurance p {
        max-width: 100%;
    }

    .koshi-shop-world__panel {
        padding: 36px 24px 32px;
    }

    .koshi-shop-world__copy h3 {
        height: auto;
        font-size: 32px;
        line-height: 1.2;
    }

    .koshi-shop-world__media {
        width: 100%;
    }
}

/* .fig boutique hero structure pass - 2026-07-06 */
.koshi-boutique-hero--catalog {
    display: grid;
    min-height: min(100vh, 860px);
    place-items: center;
    background: #777874;
    color: var(--koshi-white);
    text-align: center;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media::after {
    background: rgba(0, 0, 0, .36);
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media video {
    filter: saturate(.72) brightness(.72);
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    max-width: none;
    min-height: min(100vh, 860px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 26px;
    padding: clamp(96px, 14vh, 150px) 24px clamp(70px, 10vh, 110px);
    color: var(--koshi-white);
    text-align: center;
    transform: translateY(44px);
}

.koshi-boutique-hero-play {
    position: relative;
    display: inline-grid;
    width: 52px;
    height: 36px;
    margin-bottom: clamp(86px, 15vh, 150px);
    place-items: center;
    border-radius: 9px;
    background: rgba(255, 252, 244, .94);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}

.koshi-boutique-hero-play::before {
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 13px solid rgba(35, 39, 35, .72);
    content: "";
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy h1 {
    max-width: min(92vw, 720px);
    margin: 0;
    color: var(--koshi-white);
    font-family: var(--koshi-sans);
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: .96;
    text-transform: uppercase;
}

.koshi-boutique-hero-listen {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, .78);
    background: var(--koshi-white);
    color: var(--koshi-ink);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    padding: 0 24px;
    text-decoration: none;
}

.koshi-boutique-hero-listen-icon {
    position: relative;
    width: 18px;
    height: 18px;
}

.koshi-boutique-hero-listen-icon::before,
.koshi-boutique-hero-listen-icon::after {
    position: absolute;
    display: block;
    width: 8px;
    height: 12px;
    border: 1.5px solid currentColor;
    border-radius: 6px 6px 2px 2px;
    content: "";
    transform: rotate(-38deg);
}

.koshi-boutique-hero-listen-icon::before {
    left: 2px;
    top: 5px;
}

.koshi-boutique-hero-listen-icon::after {
    right: 2px;
    top: 1px;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy .koshi-eyebrow,
.koshi-boutique-hero--catalog .koshi-boutique-hero-copy > p,
.koshi-boutique-hero--catalog .koshi-boutique-hero-actions,
.koshi-boutique-hero--catalog .koshi-text-link {
    display: none !important;
}

@media (max-width: 680px) {
    .koshi-boutique-hero--catalog,
    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        min-height: 640px;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        padding-top: 92px;
        transform: translateY(18px);
    }

    .koshi-boutique-hero-play {
        margin-bottom: 86px;
    }
}

/* .fig carillons catalog structure pass - 2026-07-06 */
.koshi-boutique-home--figma {
    display: flex;
    flex-direction: column;
}

.koshi-boutique-hero--catalog {
    order: 1;
    min-height: clamp(520px, 56vw, 720px);
    background:
        linear-gradient(180deg, rgba(244, 241, 231, .72), rgba(244, 241, 231, .96)),
        linear-gradient(45deg, rgba(50, 42, 34, .055) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(50, 42, 34, .055) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(50, 42, 34, .055) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(50, 42, 34, .055) 75%),
        var(--koshi-mist);
    background-position: 0 0, 0 0, 0 24px, 24px -24px, -24px 0;
    background-size: auto, 48px 48px, 48px 48px, 48px 48px, 48px 48px;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-media,
.koshi-boutique-hero-play,
.koshi-boutique-hero-listen,
.koshi-boutique-hero--catalog .koshi-boutique-hero-actions,
.koshi-boutique-hero--catalog .koshi-text-link {
    display: none !important;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
    min-height: clamp(520px, 56vw, 720px);
    align-content: center;
    justify-items: center;
    gap: 20px;
    padding: clamp(110px, 12vw, 154px) 24px clamp(74px, 9vw, 104px);
    text-align: center;
    transform: none;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy .koshi-eyebrow {
    display: block !important;
    color: rgba(50, 42, 34, .56);
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy h1 {
    max-width: min(820px, 86vw);
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: clamp(44px, 6vw, 82px);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: .95;
    text-transform: uppercase;
}

.koshi-boutique-hero--catalog .koshi-boutique-hero-copy > p {
    display: block !important;
    max-width: 570px;
    margin: 0;
    color: rgba(50, 42, 34, .72);
    font-size: 15px;
    line-height: 1.65;
}

.koshi-boutique-home--figma .koshi-earth-section { order: 2; }
.koshi-boutique-home--figma .koshi-collection { order: 3; }
.koshi-boutique-home--figma .koshi-harmony-banner { order: 4; }
.koshi-boutique-home--figma .koshi-hearts-section { order: 5; }
.koshi-boutique-home--figma .koshi-use-section { order: 6; }
.koshi-boutique-home--figma .koshi-knowledge-section { order: 7; }
.koshi-boutique-home--figma .koshi-service-band { order: 8; }

.koshi-boutique-home--figma .koshi-collection,
.koshi-boutique-home--figma .koshi-earth-section,
.koshi-boutique-home--figma .koshi-use-section,
.koshi-boutique-home--figma .koshi-knowledge-section {
    padding-top: clamp(72px, 7vw, 96px);
    padding-bottom: clamp(72px, 7vw, 96px);
}

.koshi-boutique-home--figma .koshi-earth-section .koshi-section-title,
.koshi-boutique-home--figma .koshi-collection .koshi-section-title,
.koshi-boutique-home--figma .koshi-use-section .koshi-section-title,
.koshi-boutique-home--figma .koshi-knowledge-section .koshi-section-title {
    color: var(--koshi-ink);
    font-size: clamp(38px, 4.4vw, 54px);
    line-height: 1.05;
}

.koshi-boutique-home--figma .koshi-earth-section .koshi-section-title em,
.koshi-boutique-home--figma .koshi-collection .koshi-section-title em {
    display: block;
    margin-top: .08em;
    font-style: italic;
    letter-spacing: -.03em;
}

.koshi-earth-feature {
    display: block;
    width: min(100%, 1120px);
    margin: clamp(44px, 4.8vw, 66px) auto 0;
    overflow: hidden;
    border-radius: 18px;
    background: #c99669;
}

.koshi-earth-feature img {
    display: block;
    width: 100%;
    aspect-ratio: 1.72;
    object-fit: cover;
    object-position: center;
}

.koshi-earth-feature:focus-visible {
    outline: 2px solid var(--koshi-ink);
    outline-offset: 5px;
}

.koshi-harmony-banner {
    position: relative;
    min-height: clamp(420px, 52vw, 620px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #0a1510;
    color: var(--koshi-white);
}

.koshi-harmony-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .56), rgba(0, 0, 0, .18) 54%, rgba(0, 0, 0, .08));
    pointer-events: none;
}

.koshi-harmony-banner > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(.95) contrast(1.05) brightness(.82);
}

.koshi-harmony-copy {
    position: relative;
    z-index: 1;
    width: min(100% - 64px, 560px);
    margin-left: clamp(42px, 5vw, 88px);
    margin-bottom: clamp(54px, 6vw, 92px);
}

.koshi-harmony-copy > p:first-child {
    margin: 0 0 8px;
    font-family: var(--koshi-serif);
    font-size: clamp(30px, 3.5vw, 44px);
    line-height: 1;
}

.koshi-harmony-copy h2 {
    margin: 0 0 26px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(255, 255, 255, .48);
    color: var(--koshi-white);
    font-family: var(--koshi-serif);
    font-size: clamp(34px, 4.2vw, 56px);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -.03em;
}

.koshi-harmony-copy > p:last-child {
    max-width: 530px;
    margin: 0;
    color: rgba(255, 255, 255, .9);
    font-size: 15px;
    line-height: 1.7;
}

.koshi-hearts-section {
    background: var(--koshi-mist);
}

.koshi-hearts-section > .koshi-section-title {
    width: min(100%, 1120px);
    margin: 0 auto clamp(36px, 4vw, 54px);
    text-align: left;
}

.koshi-hearts-layout {
    display: grid;
    grid-template-columns: minmax(280px, .82fr) minmax(0, 1.62fr);
    gap: clamp(28px, 3.2vw, 48px);
    align-items: stretch;
    width: min(100%, 1120px);
    margin: 0 auto;
}

.koshi-hearts-layout > img {
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;
    border-radius: 12px;
}

.koshi-testimonial-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(18px, 2vw, 28px);
    align-items: start;
}

.koshi-testimonial-grid article {
    display: grid;
    gap: 14px;
    min-height: 196px;
    padding: clamp(22px, 2.2vw, 32px);
    border-radius: 14px;
    background: rgba(255, 255, 255, .52);
    color: var(--koshi-ink);
}

.koshi-testimonial-grid blockquote {
    margin: 0;
    font-family: var(--koshi-serif);
    font-size: clamp(17px, 1.55vw, 21px);
    font-style: italic;
    line-height: 1.28;
}

.koshi-testimonial-grid strong {
    align-self: end;
    margin-top: 10px;
    font-size: 14px;
    font-weight: 800;
}

.koshi-testimonial-grid span {
    margin-top: -10px;
    color: rgba(50, 42, 34, .76);
    font-size: 13px;
    line-height: 1.35;
}

.koshi-use-section--figma {
    position: relative;
    min-height: clamp(720px, 72vw, 920px);
    background: var(--koshi-mist);
}

.koshi-use-section--figma > header {
    width: min(100%, 1120px);
    margin: 0 auto clamp(54px, 6vw, 84px);
    display: flex;
    justify-content: flex-end;
}

.koshi-use-section--figma .koshi-section-title {
    max-width: 620px;
    color: var(--koshi-ink);
    font-size: clamp(38px, 4.2vw, 56px);
    line-height: 1.05;
    text-align: left;
}

.koshi-use-visual-grid {
    display: grid;
    grid-template-columns: 1.02fr 1fr 1.02fr;
    gap: clamp(26px, 3vw, 42px);
    align-items: start;
    width: min(100%, 1120px);
    margin: 0 auto;
}

.koshi-use-visual-card {
    min-width: 0;
}

.koshi-use-visual-card--2 {
    margin-top: clamp(64px, 7vw, 104px);
}

.koshi-use-visual-card--3 {
    margin-top: clamp(128px, 13vw, 190px);
}

.koshi-use-visual-card a {
    display: grid;
    gap: 24px;
    color: var(--koshi-ink);
    text-decoration: none;
}

.koshi-use-visual-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1.26;
    object-fit: cover;
    border-radius: 10px;
    background: #d8d1c3;
}

.koshi-use-visual-card--1 img {
    aspect-ratio: 1 / 1.27;
}

.koshi-use-visual-card--2 img {
    aspect-ratio: 1 / 1.24;
}

.koshi-use-visual-card--3 img {
    aspect-ratio: 1 / 1.28;
}

.koshi-use-visual-card span {
    display: grid;
    gap: 18px;
}

.koshi-use-visual-card strong {
    display: block;
    font-family: var(--koshi-serif);
    font-size: clamp(25px, 2.45vw, 36px);
    font-weight: 400;
    line-height: 1.18;
    letter-spacing: -.025em;
}

.koshi-use-visual-card strong::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin-top: 18px;
    background: rgba(50, 42, 34, .18);
}

.koshi-use-visual-card em {
    max-width: 320px;
    color: rgba(50, 42, 34, .76);
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-style: normal;
    line-height: 1.65;
}

.koshi-use-visual-card a:focus-visible {
    outline: 2px solid var(--koshi-ink);
    outline-offset: 7px;
}

.koshi-boutique-home--figma .koshi-earth-section .koshi-section-head,
.koshi-boutique-home--figma .koshi-collection .koshi-section-head,
.koshi-boutique-home--figma .koshi-use-section .koshi-section-head {
    margin-bottom: clamp(40px, 4.2vw, 56px);
}

.koshi-earth-grid {
    width: min(100%, 1120px);
    max-width: 1120px;
    padding-left: 0;
    padding-right: 0;
}

.koshi-earth-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(22px, 2.4vw, 32px);
}

.koshi-editorial-split--figma {
    grid-template-columns: minmax(0, .96fr) minmax(360px, .74fr);
}

.koshi-editorial-split--figma .koshi-editorial-copy h2 {
    max-width: 430px;
    font-size: clamp(38px, 4.5vw, 62px);
}

.koshi-use-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.koshi-use-grid > a {
    min-height: 248px;
}

.koshi-knowledge-section {
    background: var(--koshi-mist);
}

.koshi-knowledge-copy {
    display: grid;
    max-width: 1040px;
    margin: 0 auto;
    grid-template-columns: minmax(260px, .86fr) minmax(0, 1.14fr);
    gap: clamp(42px, 7vw, 96px);
    padding: 0 clamp(24px, 6vw, 88px);
}

.koshi-knowledge-copy .koshi-eyebrow,
.koshi-knowledge-copy h2 {
    grid-column: 1;
}

.koshi-knowledge-copy p:not(.koshi-eyebrow) {
    grid-column: 2;
    margin: 0;
    color: rgba(50, 42, 34, .76);
    font-size: 15px;
    line-height: 1.85;
}

.koshi-knowledge-copy p:not(.koshi-eyebrow) + p {
    margin-top: 18px;
}

@media (max-width: 980px) {
    .koshi-earth-grid,
    .koshi-use-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .koshi-editorial-split--figma {
        grid-template-columns: 1fr;
    }

    .koshi-hearts-layout {
        grid-template-columns: 1fr;
    }

    .koshi-hearts-layout > img {
        min-height: 420px;
        max-height: 560px;
    }

    .koshi-use-section--figma {
        min-height: 0;
    }

    .koshi-use-section--figma > header {
        justify-content: flex-start;
    }

    .koshi-use-visual-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .koshi-use-visual-card--2,
    .koshi-use-visual-card--3 {
        margin-top: 0;
    }

    .koshi-use-visual-card a {
        grid-template-columns: minmax(160px, .72fr) minmax(0, 1fr);
        align-items: center;
    }

    .koshi-knowledge-copy {
        grid-template-columns: 1fr;
    }

    .koshi-knowledge-copy .koshi-eyebrow,
    .koshi-knowledge-copy h2,
    .koshi-knowledge-copy p:not(.koshi-eyebrow) {
        grid-column: 1;
    }
}

@media (max-width: 680px) {
    .koshi-boutique-hero--catalog,
    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        min-height: 520px;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy {
        padding: 96px 24px 72px;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy h1 {
        max-width: 330px;
        font-size: clamp(40px, 13vw, 50px);
        line-height: .9;
    }

    .koshi-boutique-hero--catalog .koshi-boutique-hero-copy > p {
        max-width: 310px;
        font-size: 13px;
    }

    .koshi-boutique-home--figma .koshi-collection,
    .koshi-boutique-home--figma .koshi-earth-section,
    .koshi-boutique-home--figma .koshi-use-section,
    .koshi-boutique-home--figma .koshi-knowledge-section {
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .koshi-earth-grid,
    .koshi-use-grid {
        width: min(100%, 327px);
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .koshi-harmony-banner {
        min-height: 540px;
    }

    .koshi-harmony-banner::after {
        background: linear-gradient(180deg, rgba(0, 0, 0, .08), rgba(0, 0, 0, .68));
    }

    .koshi-harmony-copy {
        width: min(100% - 48px, 420px);
        margin-left: 24px;
        margin-right: 24px;
        margin-bottom: 52px;
    }

    .koshi-testimonial-grid {
        grid-template-columns: 1fr;
    }

    .koshi-use-section--figma > header,
    .koshi-use-visual-grid {
        width: min(100%, 327px);
    }

    .koshi-use-section--figma .koshi-section-title {
        font-size: clamp(34px, 11vw, 46px);
    }

    .koshi-use-visual-card a {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .koshi-use-visual-card img {
        aspect-ratio: 1 / 1.12;
    }

    .koshi-use-visual-card strong {
        font-size: 27px;
    }

    .koshi-use-grid > a {
        min-height: 220px;
    }
}

/* Figma Design reference correction - Carillons Koshi • Desktop - 2026-07-07 */
.cms-index-index .page-wrapper {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    background: var(--koshi-mist);
}

.koshi-boutique-hero--carillons {
    order: 1;
    display: grid;
    position: relative;
    min-height: clamp(360px, 34vw, 520px);
    overflow: hidden;
    place-items: center;
    border: 0;
    background: #050505;
    color: var(--koshi-white);
    text-align: center;
}

/* Figma boutique bokeh hero pass - 2026-07-08 */
.koshi-boutique-hero--carillons .koshi-boutique-hero-media,
.koshi-boutique-hero--carillons .koshi-boutique-hero-shade {
    position: absolute;
    inset: 0;
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-media {
    z-index: 0;
    display: block;
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-media video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-shade {
    z-index: 1;
    background:
        radial-gradient(circle at 58% 30%, rgba(255, 255, 255, .08), transparent 28%),
        linear-gradient(180deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .72));
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-copy {
    display: grid;
    position: relative;
    z-index: 2;
    min-height: 0;
    max-width: 760px;
    gap: 22px;
    justify-items: center;
    padding: clamp(84px, 9vw, 132px) 24px clamp(76px, 8vw, 118px);
    color: var(--koshi-white);
    text-align: center;
    transform: none;
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-copy h1 {
    max-width: 820px;
    margin: 0;
    color: var(--koshi-white);
    font-family: var(--koshi-serif);
    font-size: clamp(42px, 4.8vw, 64px);
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 1.05;
    text-transform: uppercase;
}

.koshi-boutique-hero--carillons .koshi-boutique-hero-copy p {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(13px, 1.15vw, 16px);
    line-height: 1.68;
}

@media (max-width: 680px) {

    .koshi-boutique-hero--carillons {
        min-height: 430px;
    }

    .koshi-boutique-hero--carillons .koshi-boutique-hero-copy {
        padding: 72px 24px;
    }

    .koshi-boutique-hero--carillons .koshi-boutique-hero-copy h1 {
        max-width: 330px;
        font-size: clamp(38px, 12vw, 48px);
    }
}

/* Figma lower page pass: world accordion, services, newsletter, footer - 2026-07-07 */
.koshi-boutique-home--figma .koshi-world-section { order: 7; }
.koshi-boutique-home--figma .koshi-service-band { order: 8; }
.koshi-boutique-home--figma .koshi-newsletter-section { order: 9; }

.koshi-world-section {
    background: var(--koshi-mist);
    padding-top: clamp(86px, 8vw, 126px);
    padding-bottom: clamp(96px, 9vw, 146px);
}

.koshi-world-head {
    width: min(100%, 1120px);
    margin: 0 auto clamp(30px, 3vw, 42px);
}

.koshi-world-head .koshi-section-title {
    max-width: 640px;
    font-size: clamp(34px, 3.4vw, 48px);
    line-height: 1.12;
}

.koshi-world-head p {
    max-width: 520px;
    margin: 20px 0 0;
    color: rgba(50, 42, 34, .82);
    font-size: 15px;
    line-height: 1.55;
}

.koshi-world-accordion {
    display: grid;
    width: min(100%, 1120px);
    min-height: 532px;
    margin: 0 auto;
    overflow: hidden;
    grid-template-columns: minmax(520px, 1fr) repeat(5, minmax(56px, 72px));
    border: 1px solid rgba(50, 42, 34, .22);
    border-radius: 22px;
    background: rgba(255, 252, 244, .58);
}

.koshi-world-feature {
    display: grid;
    min-width: 0;
    grid-template-rows: auto 1fr;
    gap: clamp(34px, 4vw, 58px);
    padding: clamp(44px, 6vw, 74px) clamp(46px, 6vw, 88px) clamp(42px, 5vw, 62px);
}

.koshi-world-feature-copy h3,
.koshi-world-rail h3 {
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-weight: 400;
}

.koshi-world-feature-copy h3 {
    font-size: clamp(34px, 3vw, 46px);
    line-height: 1;
}

.koshi-world-place {
    margin: 9px 0 30px;
    color: var(--koshi-ink);
    font-size: 12px;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.koshi-world-feature-copy p:not(.koshi-world-place) {
    max-width: 520px;
    margin: 0;
    color: rgba(50, 42, 34, .82);
    font-size: 14px;
    line-height: 1.72;
}

.koshi-audio-glyph {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    margin-top: 26px;
    color: var(--koshi-ink);
    font-size: 20px;
}

.koshi-world-feature img {
    align-self: end;
    width: min(100%, 530px);
    aspect-ratio: 2.4 / 1;
    border-radius: 12px;
    object-fit: cover;
    object-position: center;
}

.koshi-world-rail {
    display: flex;
    position: relative;
    min-width: 0;
    align-items: flex-end;
    justify-content: center;
    border: 0;
    border-left: 1px solid rgba(50, 42, 34, .18);
    padding: 28px 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: inherit;
    transition: background .2s ease, box-shadow .2s ease, color .2s ease;
}

.koshi-world-accordion.is-world-interactive .koshi-world-rail {
    cursor: pointer;
}

.koshi-world-accordion.is-world-interactive .koshi-world-rail:hover,
.koshi-world-accordion.is-world-interactive .koshi-world-rail:focus-visible {
    background: rgba(183, 200, 175, .22);
}

.koshi-world-accordion.is-world-interactive .koshi-world-rail:focus-visible {
    outline: 0;
    box-shadow: inset 0 0 0 2px rgba(50, 42, 34, .42);
}

.koshi-world-feature-copy h3,
.koshi-world-place,
.koshi-world-feature-copy p[data-koshi-world-copy] {
    transition: opacity .2s ease, transform .2s ease;
}

.koshi-world-accordion.is-world-transitioning .koshi-world-feature-copy h3,
.koshi-world-accordion.is-world-transitioning .koshi-world-place,
.koshi-world-accordion.is-world-transitioning .koshi-world-feature-copy p[data-koshi-world-copy] {
    opacity: .72;
    transform: translateY(-2px);
}

.koshi-world-rail h3 {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    font-size: 21px;
    line-height: 1;
}

.koshi-world-rail span {
    position: absolute;
    bottom: 28px;
    left: 50%;
    width: max-content;
    max-width: 210px;
    transform: translateX(-50%) rotate(-90deg);
    transform-origin: center;
    color: rgba(50, 42, 34, .62);
    font-size: 10px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.koshi-boutique-home--figma .koshi-service-band {
    display: grid;
    gap: clamp(34px, 4vw, 64px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: clamp(72px, 7vw, 108px) clamp(42px, 6vw, 94px) clamp(92px, 9vw, 132px);
    background: var(--koshi-mist);
    border: 0;
}

.koshi-boutique-home--figma .koshi-service-band > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    border: 0;
    padding: 0;
    text-align: center;
}

.koshi-service-icon {
    display: inline-flex;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    color: var(--koshi-sage);
}

.koshi-service-icon svg {
    width: 52px;
    height: 52px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.koshi-service-icon--return {
    position: relative;
}

.koshi-service-icon--return em {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--koshi-sage);
    font-family: var(--koshi-serif);
    font-size: 16px;
    font-style: normal;
}

.koshi-boutique-home--figma .koshi-service-band strong {
    max-width: 240px;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .18em;
    line-height: 1.55;
    text-transform: uppercase;
}

.koshi-boutique-home--figma .koshi-service-band p {
    max-width: 260px;
    margin: 14px auto 0;
    color: rgba(50, 42, 34, .72);
    font-size: 12px;
    line-height: 1.55;
}

.koshi-newsletter-section {
    background: var(--koshi-mist);
    padding: 0 clamp(24px, 5.5vw, 80px) clamp(86px, 8vw, 124px);
}

.koshi-newsletter-card {
    display: grid;
    width: min(100%, 1120px);
    margin: 0 auto;
    grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr);
    overflow: hidden;
    border-radius: 7px;
}

.koshi-newsletter-card figure {
    height: clamp(330px, 30vw, 390px);
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background: #2d2019;
}

.koshi-newsletter-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 34% center;
}

.koshi-newsletter-copy {
    display: flex;
    height: clamp(330px, 30vw, 390px);
    min-height: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(42px, 6vw, 74px);
    background: #dfe8df;
}

.koshi-newsletter-copy h2 {
    margin: 0 0 24px;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(36px, 3.2vw, 52px);
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1;
}

.koshi-newsletter-copy > p:not(.koshi-newsletter-privacy) {
    max-width: 520px;
    margin: 0 0 28px;
    color: rgba(50, 42, 34, .86);
    font-size: 15px;
    line-height: 1.55;
}

.koshi-newsletter-form {
    display: grid;
    max-width: 520px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
}

.koshi-newsletter-form input {
    min-height: 44px;
    border: 0;
    border-radius: 5px;
    background: #e8dbc6;
    color: var(--koshi-ink);
    font-size: 14px;
    padding: 0 18px;
}

.koshi-newsletter-form input::placeholder {
    color: rgba(50, 42, 34, .72);
}

.koshi-newsletter-form button {
    min-height: 44px;
    border: 0;
    border-radius: 5px;
    background: #a5463c;
    color: var(--koshi-white);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
    padding: 0 26px;
    text-transform: uppercase;
}

.koshi-newsletter-privacy {
    max-width: 560px;
    margin: 10px 0 0;
    color: rgba(50, 42, 34, .66);
    font-size: 10px;
    line-height: 1.45;
}

.koshi-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

@media (max-width: 980px) {
    .koshi-world-accordion {
        grid-template-columns: 1fr;
    }

    .koshi-world-feature {
        min-height: auto;
    }

    .koshi-world-feature img {
        width: 100%;
    }

    .koshi-world-rail {
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid rgba(50, 42, 34, .16);
        border-left: 0;
        padding: 20px 28px;
    }

    .koshi-world-rail h3 {
        writing-mode: horizontal-tb;
        transform: none;
        white-space: normal;
        font-size: 22px;
    }

    .koshi-world-rail span {
        position: static;
        transform: none;
        text-align: right;
    }

    .koshi-boutique-home--figma .koshi-service-band {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .koshi-newsletter-card {
        grid-template-columns: 1fr;
    }

    .koshi-newsletter-card figure,
    .koshi-newsletter-copy {
        height: auto;
        min-height: 340px;
    }

}

@media (max-width: 680px) {
    .koshi-world-section {
        padding-left: 24px;
        padding-right: 24px;
    }

    .koshi-world-feature {
        padding: 34px 26px 28px;
    }

    .koshi-world-feature-copy h3 {
        font-size: 31px;
    }

    .koshi-boutique-home--figma .koshi-service-band {
        grid-template-columns: 1fr;
        padding-left: 28px;
        padding-right: 28px;
    }

    .koshi-newsletter-card figure,
    .koshi-newsletter-copy {
        min-height: 300px;
    }

    .koshi-newsletter-copy {
        padding: 36px 26px;
    }

    .koshi-newsletter-form {
        grid-template-columns: 1fr;
    }

}

/* Figma product accordion polish - 2026-07-07 */
.catalog-product-view .product.info.detailed {
    max-width: min(1120px, calc(100% - 48px));
    margin-top: clamp(58px, 7vw, 96px);
    padding: 0;
}

.catalog-product-view .product.data.items {
    display: grid;
    margin: 0;
    border: 0;
    background: transparent;
}

.catalog-product-view .product.data.items > .item.title {
    float: none;
    width: 100%;
    margin: 0;
}

.catalog-product-view .product.data.items > .item.title > .switch {
    display: flex;
    min-height: 66px;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid rgba(50, 42, 34, .22);
    background: transparent;
    color: var(--koshi-ink);
    font: 800 12px/1 var(--koshi-sans);
    letter-spacing: .16em;
    text-transform: uppercase;
}

.catalog-product-view .product.data.items > .item.title:last-of-type > .switch {
    border-bottom: 1px solid rgba(50, 42, 34, .22);
}

.catalog-product-view .product.data.items > .item.title > .switch::after {
    content: "+";
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid rgba(50, 42, 34, .28);
    border-radius: 50%;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
}

.catalog-product-view .product.data.items > .item.title.active > .switch::after {
    content: "–";
}

.catalog-product-view .product.data.items > .item.title.active > .switch,
.catalog-product-view .product.data.items > .item.title > .switch:hover,
.catalog-product-view .product.data.items > .item.title > .switch:focus-visible {
    background: transparent;
    color: var(--koshi-ink);
}

.catalog-product-view .product.data.items > .item.content {
    float: none;
    width: 100%;
    margin: 0;
    padding: clamp(24px, 4vw, 42px) 0 clamp(34px, 5vw, 56px);
    border: 0;
    background: transparent;
}

.catalog-product-view .product.attribute.description > .value {
    display: grid;
    gap: 18px;
    color: rgba(50, 42, 34, .82);
    font-size: 16px;
    line-height: 1.72;
}

.catalog-product-view .product.attribute.description > .value > p {
    max-width: 820px;
    margin: 0;
}

.catalog-product-view .product.attribute.description > .value > p:last-child {
    margin-top: 8px;
    color: rgba(50, 42, 34, .68);
    font-size: 14px;
}

.catalog-product-view .product.attribute.description > .value > p:last-child strong {
    color: var(--koshi-ink);
}

.catalog-product-view .review-form .legend,
.catalog-product-view .review-form .label,
.catalog-product-view .review-form input,
.catalog-product-view .review-form textarea {
    color: var(--koshi-ink);
}

@media (max-width: 680px) {
    .catalog-product-view .product.info.detailed {
        max-width: calc(100% - 32px);
        margin-top: 44px;
    }

    .catalog-product-view .product.data.items > .item.title > .switch {
        min-height: 58px;
    }
}

/* Figma customer account polish - 2026-07-07 */
.customer-account-login .page-title-wrapper,
.customer-account-create .page-title-wrapper {
    max-width: min(var(--koshi-content), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(66px, 8vw, 112px) 0 0;
    text-align: center;
}

.customer-account-login .page-title-wrapper .page-title,
.customer-account-create .page-title-wrapper .page-title {
    margin: 0;
}

.customer-account-login .page-title-wrapper .base,
.customer-account-create .page-title-wrapper .base {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(48px, 7vw, 96px);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .95;
}

.customer-account-login .login-container,
.customer-account-create .form-create-account {
    max-width: min(1120px, calc(100% - 48px));
    margin: clamp(36px, 5vw, 68px) auto clamp(86px, 10vw, 132px);
    padding: 0;
}

.customer-account-login .login-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 390px);
    align-items: stretch;
    gap: clamp(22px, 4vw, 52px);
}

.customer-account-login .login-container::before,
.customer-account-login .login-container::after,
.customer-account-create .form-create-account::before,
.customer-account-create .form-create-account::after {
    display: none;
    content: none;
}

.customer-account-create .form-create-account {
    width: min(1120px, calc(100% - 48px)) !important;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(22px, 4vw, 48px);
}

.customer-account-login .login-container .block,
.customer-account-create .form-create-account > .fieldset {
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0;
    border: 1px solid rgba(50, 42, 34, .16);
    background: rgba(255, 252, 244, .72);
    box-shadow: 0 22px 60px rgba(50, 42, 34, .08);
    padding: clamp(28px, 4vw, 46px);
}

.customer-account-login .login-container .block-new-customer {
    background: var(--koshi-ink);
    color: var(--koshi-paper);
}

.customer-account-login .block-title,
.customer-account-create .legend {
    margin: 0 0 24px;
    border: 0;
    padding: 0;
}

.customer-account-login .block-title strong,
.customer-account-create .legend span {
    color: inherit;
    font-family: var(--koshi-serif);
    font-size: clamp(30px, 3.2vw, 44px) !important;
    font-weight: 400 !important;
    letter-spacing: -.035em;
    line-height: 1;
}

.customer-account-login .block-content,
.customer-account-create .fieldset {
    color: rgba(50, 42, 34, .78);
}

.customer-account-login .block-new-customer .block-content,
.customer-account-login .block-new-customer p {
    color: rgba(255, 252, 244, .78);
}

.customer-account-login .field.note,
.customer-account-login .block-content p,
.customer-account-create .fieldset > .field {
    font-size: 14px;
    line-height: 1.72;
}

.customer-account-login .fieldset,
.customer-account-create .fieldset {
    border: 0;
}

.customer-account-login .field,
.customer-account-create .field {
    margin: 0 0 18px;
}

.customer-account-login .label,
.customer-account-create .label,
.customer-account-create .password-strength-meter {
    color: rgba(50, 42, 34, .68);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.customer-account-login .block-new-customer .label {
    color: rgba(255, 252, 244, .72);
}

.customer-account-login input.input-text,
.customer-account-create input.input-text {
    min-height: 50px;
    border: 1px solid rgba(50, 42, 34, .22);
    border-radius: 0;
    background: rgba(255, 252, 244, .82);
    color: var(--koshi-ink);
    box-shadow: none;
}

.customer-account-login input.input-text:focus,
.customer-account-create input.input-text:focus {
    border-color: var(--koshi-clay);
    box-shadow: 0 0 0 3px rgba(164, 72, 60, .12);
}

.customer-account-login .actions-toolbar,
.customer-account-create .actions-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 26px 0 0;
}

.customer-account-login .block-new-customer .actions-toolbar {
    justify-content: center;
}

.customer-account-login .block-new-customer .actions-toolbar > .primary {
    float: none;
    margin: 0;
}

.customer-account-login .block-new-customer .actions-toolbar > .primary .action {
    display: inline-flex;
    float: none;
    margin: 0;
}

.customer-account-create .actions-toolbar {
    grid-column: 1 / -1;
    justify-content: center;
}

.customer-account-login .action.remind {
    color: rgba(50, 42, 34, .62);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.customer-account-create #password-strength-meter-container {
    margin-top: 10px;
}

.customer-account-create .password-strength-meter {
    min-height: 34px;
    border: 1px solid rgba(50, 42, 34, .14);
    background: rgba(244, 241, 231, .72);
    padding: 9px 12px;
}

.customer-account-create .fieldset.additional_info {
    display: none;
}

@media (max-width: 780px) {
    .customer-account-login .page-title-wrapper,
    .customer-account-create .page-title-wrapper,
    .customer-account-login .login-container,
    .customer-account-create .form-create-account {
        max-width: calc(100% - 32px);
    }

    .customer-account-create .form-create-account {
        width: calc(100% - 32px) !important;
    }

    .customer-account-login .login-container,
    .customer-account-create .form-create-account {
        grid-template-columns: 1fr;
        margin-bottom: 72px;
    }

    .customer-account-login .login-container .block,
    .customer-account-create .form-create-account > .fieldset {
        padding: 26px 22px;
    }

    .customer-account-create .actions-toolbar {
        justify-content: flex-start;
    }
}

/* The checkout authentication popup reuses the Boutique card contract. */
.checkout-cart-index .popup-authentication .modal-inner-wrap {
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: min(1120px, calc(100% - 48px));
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: var(--koshi-radius-panel);
    background: var(--koshi-mist);
    box-shadow: 0 24px 75px rgba(50, 42, 34, .18);
    transform: translate(-50%, -50%);
}

.checkout-cart-index .popup-authentication .modal-header {
    box-sizing: border-box;
    min-height: 64px;
    padding: 0;
}

.checkout-cart-index .popup-authentication .action-close {
    top: 18px;
    right: 18px;
    box-sizing: border-box;
    width: 28px;
    height: 28px;
    margin: 0;
    border-radius: 50%;
    color: var(--koshi-ink);
}

.checkout-cart-index .popup-authentication .action-close:focus-visible {
    outline: 2px solid var(--koshi-ink);
    outline-offset: 2px;
}

.checkout-cart-index .popup-authentication .modal-content {
    box-sizing: border-box;
    overflow-y: auto;
    padding: 0 32px 32px;
}

.checkout-cart-index .popup-authentication .block-authentication {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
    border: 0;
}

.checkout-cart-index .popup-authentication .block-authentication .block {
    box-sizing: border-box;
    display: flex;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    flex-direction: column;
    border: 1px solid rgba(50, 42, 34, .13);
    border-radius: var(--koshi-radius-panel);
    padding: clamp(28px, 3vw, 40px);
    background: var(--koshi-card);
    box-shadow: none;
    color: var(--koshi-ink);
}

.checkout-cart-index .popup-authentication .block-authentication .block-new-customer {
    background: var(--koshi-sage-soft);
}

.checkout-cart-index .popup-authentication .block-customer-login::before {
    display: none;
    content: none;
}

.checkout-cart-index .popup-authentication .block-title {
    margin: 0 0 22px;
    border: 0;
    padding: 0;
}

.checkout-cart-index .popup-authentication .block-title strong {
    display: block;
    color: inherit;
    font-family: var(--koshi-display);
    font-size: clamp(30px, 2.45vw, 36px) !important;
    font-weight: 400 !important;
    letter-spacing: -.025em;
    line-height: 1.08;
}

.checkout-cart-index .popup-authentication .block-content {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    color: rgba(50, 42, 34, .78);
}

.checkout-cart-index .popup-authentication .block-new-customer .block-content > p {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.55;
}

.checkout-cart-index .popup-authentication .block-new-customer ul {
    display: grid;
    margin: 0 0 28px;
    padding: 0;
    gap: 10px;
    list-style: none;
}

.checkout-cart-index .popup-authentication .block-new-customer li {
    position: relative;
    margin: 0;
    padding-left: 18px;
    font-size: 14px;
    line-height: 1.45;
}

.checkout-cart-index .popup-authentication .block-new-customer li::before {
    position: absolute;
    top: .5em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--koshi-clay);
    content: "";
}

.checkout-cart-index .popup-authentication .block-new-customer .actions-toolbar {
    display: flex;
    margin: auto 0 0;
    justify-content: flex-start;
}

.checkout-cart-index .popup-authentication .block-new-customer .actions-toolbar > .primary {
    float: none;
    margin: 0;
}

.checkout-cart-index .popup-authentication .form-login,
.checkout-cart-index .popup-authentication .fieldset.login {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.checkout-cart-index .popup-authentication .fieldset.login {
    margin: 0;
    border: 0;
    padding: 0;
}

.checkout-cart-index .popup-authentication .field {
    margin: 0 0 18px;
}

.checkout-cart-index .popup-authentication .field .label {
    display: inline-block;
    margin: 0 0 8px;
    color: rgba(50, 42, 34, .72);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 1.4;
}

.checkout-cart-index .popup-authentication input.input-text {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(50, 42, 34, .22);
    border-radius: var(--koshi-radius-control);
    background: var(--koshi-paper);
    color: var(--koshi-ink);
    box-shadow: none;
}

.checkout-cart-index .popup-authentication input.input-text:focus {
    border-color: var(--koshi-clay);
    box-shadow: 0 0 0 3px rgba(164, 73, 61, .12);
}

.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar {
    display: flex;
    margin: auto 0 0;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .primary,
.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .secondary {
    float: none;
    margin: 0;
}

.checkout-cart-index .popup-authentication .action-login {
    --koshi-button-surface: var(--koshi-sage);
    --koshi-button-surface-hover: var(--koshi-sage-dark);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
}

.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .secondary .action {
    color: var(--koshi-ink);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .04em;
    text-decoration: none;
}

.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .secondary .action:hover,
.checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .secondary .action:focus-visible {
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width: 780px) {
    .checkout-cart-index .popup-authentication .modal-inner-wrap {
        width: calc(100% - 24px);
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
    }

    .checkout-cart-index .popup-authentication .modal-header {
        min-height: 52px;
    }

    .checkout-cart-index .popup-authentication .action-close {
        top: 12px;
        right: 12px;
    }

    .checkout-cart-index .popup-authentication .modal-content {
        padding: 0 12px 12px;
    }

    .checkout-cart-index .popup-authentication .block-authentication {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .checkout-cart-index .popup-authentication .block-authentication .block {
        padding: 24px 20px;
    }

    .checkout-cart-index .popup-authentication .block-title {
        margin-bottom: 18px;
    }

    .checkout-cart-index .popup-authentication .block-title strong {
        font-size: 28px !important;
    }
}

@media (max-width: 520px) {
    .checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .checkout-cart-index .popup-authentication .block-customer-login .actions-toolbar > .primary,
    .checkout-cart-index .popup-authentication .block-customer-login .action-login {
        width: 100%;
    }
}

/* Figma customer forgot password polish - 2026-07-07 */
.customer-account-forgotpassword .page-title-wrapper {
    max-width: min(var(--koshi-content), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(66px, 8vw, 112px) 0 0;
    text-align: center;
}

.customer-account-forgotpassword .page-title-wrapper .page-title {
    margin: 0;
}

.customer-account-forgotpassword .page-title-wrapper .base {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(48px, 7vw, 90px);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .95;
}

.customer-account-forgotpassword .form.password.forget {
    max-width: min(760px, calc(100% - 48px));
    margin: clamp(36px, 5vw, 68px) auto clamp(86px, 10vw, 132px);
    border: 1px solid rgba(50, 42, 34, .16);
    background: rgba(255, 252, 244, .72);
    box-shadow: 0 22px 60px rgba(50, 42, 34, .08);
    padding: clamp(28px, 4vw, 46px);
}

.customer-account-forgotpassword .form.password.forget .fieldset {
    margin: 0;
    border: 0;
    padding: 0;
}

.customer-account-forgotpassword .field.note {
    max-width: 560px;
    margin: 0 0 28px;
    color: rgba(50, 42, 34, .78);
    font-size: 15px;
    line-height: 1.72;
}

.customer-account-forgotpassword .field {
    margin: 0 0 18px;
}

.customer-account-forgotpassword .label {
    color: rgba(50, 42, 34, .68);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.customer-account-forgotpassword input.input-text {
    min-height: 50px;
    border: 1px solid rgba(50, 42, 34, .22);
    border-radius: 0;
    background: rgba(255, 252, 244, .82);
    color: var(--koshi-ink);
    box-shadow: none;
}

.customer-account-forgotpassword input.input-text:focus {
    border-color: var(--koshi-clay);
    box-shadow: 0 0 0 3px rgba(164, 72, 60, .12);
}

.customer-account-forgotpassword .field.captcha {
    margin-top: 22px;
}

.customer-account-forgotpassword .captcha-image {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.customer-account-forgotpassword .captcha-img {
    border: 1px solid rgba(50, 42, 34, .16);
    background: var(--koshi-paper);
}

.customer-account-forgotpassword .captcha-reload {
    border: 1px solid var(--koshi-ink-20);
    border-radius: 999px;
    background: transparent;
    color: var(--koshi-ink);
    padding: 10px 15px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.customer-account-forgotpassword .actions-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 30px 0 0;
}

@media (max-width: 780px) {
    .customer-account-forgotpassword .page-title-wrapper,
    .customer-account-forgotpassword .form.password.forget {
        max-width: calc(100% - 32px);
    }

    .customer-account-forgotpassword .form.password.forget {
        padding: 26px 22px;
    }
}

/* Koshi authenticated account content; page surface and width belong to the shared shell. */
.account.page-layout-2columns-left .page-main {
    padding: 0 0 96px;
}

.account.page-layout-2columns-left .columns {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-content-width);
    margin: 64px auto 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

.account.page-layout-2columns-left .sidebar-additional {
    display: none !important;
}

.account.page-layout-2columns-left .page-title-wrapper {
    max-width: none;
    margin: 0 0 48px;
    padding: 0;
    text-align: center;
}

.account.page-layout-2columns-left .page-title-wrapper .page-title {
    margin: 0;
}

.account.page-layout-2columns-left .page-title-wrapper .base {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.1;
}

.account.page-layout-2columns-left .block-collapsible-nav {
    box-sizing: border-box;
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.account.page-layout-2columns-left .block-collapsible-nav .content {
    overflow: visible;
    border-bottom: 1px solid var(--koshi-line-dark);
    border-radius: 0;
    padding: 0 0 14px;
    background: transparent;
}

.account.page-layout-2columns-left .block-collapsible-nav .items {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    column-gap: 16px;
    row-gap: 10px;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.account.page-layout-2columns-left .block-collapsible-nav .item {
    display: flex;
    margin: 0;
}

.account.page-layout-2columns-left .block-collapsible-nav .item a,
.account.page-layout-2columns-left .block-collapsible-nav .item > strong {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    border: 0;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    padding: 8px 0 7px;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    text-decoration: none;
}

.account.page-layout-2columns-left .block-collapsible-nav .item a:hover,
.account.page-layout-2columns-left .block-collapsible-nav .item a:focus-visible {
    border-bottom-color: var(--koshi-sage);
    background: transparent;
    color: var(--koshi-burgundy);
}

.account.page-layout-2columns-left .block-collapsible-nav .item.current > strong {
    border-bottom-color: var(--koshi-burgundy);
    background: transparent;
    color: var(--koshi-burgundy);
    font-weight: 600;
}

.account.page-layout-2columns-left .block-collapsible-nav .delimiter {
    display: none;
}

/* Shared content components for every authenticated account destination. */
.account.page-layout-2columns-left:not(.customer-account-index) .column.main > .table-wrapper {
    margin: 0;
    overflow-x: auto;
    border: 0;
    border-top: 1px solid var(--koshi-line-dark);
    border-bottom: 1px solid var(--koshi-line-dark);
    border-radius: 0;
}

.account.page-layout-2columns-left:not(.customer-account-index) .column.main table {
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

.account.page-layout-2columns-left:not(.customer-account-index) .column.main table thead th {
    border-top: 0;
    border-bottom: 1px solid var(--koshi-line-dark);
    padding: 16px 14px;
    background: transparent;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.account.page-layout-2columns-left:not(.customer-account-index) .column.main table tbody td {
    border-bottom: 1px solid var(--koshi-line-dark);
    padding: 17px 14px;
    background: transparent;
    color: var(--koshi-soft);
    font-family: var(--koshi-sans);
    font-size: 13px;
    line-height: 1.5;
    vertical-align: middle;
}

.account.page-layout-2columns-left:not(.customer-account-index) .column.main table tbody tr:last-child td {
    border-bottom: 0;
}

.account.page-layout-2columns-left:not(.customer-account-index) .column.main > .toolbar,
.account.page-layout-2columns-left:not(.customer-account-index) .column.main > .order-products-toolbar {
    margin: 20px 0 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
}

.account.page-layout-2columns-left:not(.customer-account-index) .toolbar select,
.account.page-layout-2columns-left:not(.customer-account-index) .limiter-options {
    min-height: 40px;
    border: 0;
    border-radius: var(--koshi-radius-control);
    background: var(--koshi-beige);
    box-shadow: none;
    color: var(--koshi-ink);
}

.account.page-layout-2columns-left .column.main > form {
    margin: 0;
}

.account.page-layout-2columns-left .column.main > .form-edit-account,
.account.page-layout-2columns-left .column.main > .form-newsletter-manage {
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
}

.account.page-layout-2columns-left .column.main > .form-address-edit {
    display: block;
    max-width: 860px;
    margin-right: auto;
    margin-left: auto;
}

.account.page-layout-2columns-left .column.main > .form-address-edit::before,
.account.page-layout-2columns-left .column.main > .form-address-edit::after {
    display: none !important;
    content: none !important;
}

.account.page-layout-2columns-left .column.main > .form-address-edit > .fieldset,
.account.page-layout-2columns-left .column.main > .form-address-edit > .actions-toolbar {
    width: 100% !important;
}

.account.page-layout-2columns-left .column.main > .form-address-edit > .actions-toolbar {
    width: auto !important;
}

.account.page-layout-2columns-left .column.main .fieldset {
    float: none !important;
    min-width: 0;
    width: 100% !important;
    margin: 0;
    border: 0;
    padding: 0;
}

.account.page-layout-2columns-left .column.main .fieldset::before,
.account.page-layout-2columns-left .column.main .fieldset::after {
    display: none !important;
    content: none !important;
}

.account.page-layout-2columns-left .column.main .fieldset + .fieldset {
    margin-top: 32px;
}

.account.page-layout-2columns-left .column.main .form-address-edit .fieldset + .fieldset {
    margin-top: 26px;
    border-top: 1px solid var(--koshi-line-dark);
    padding-top: 24px;
}

.account.page-layout-2columns-left .column.main .fieldset > .legend {
    width: 100%;
    margin: 0 0 28px !important;
    border: 0 !important;
    padding: 0 !important;
}

.account.page-layout-2columns-left .column.main .fieldset > .legend span {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.account.page-layout-2columns-left .column.main .field {
    margin: 0 0 22px;
}

.account.page-layout-2columns-left .column.main .field > .label {
    margin: 0 0 8px;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.account.page-layout-2columns-left .column.main .field.required > .label::after {
    color: var(--koshi-clay);
}

.account.page-layout-2columns-left .column.main input[type="text"],
.account.page-layout-2columns-left .column.main input[type="email"],
.account.page-layout-2columns-left .column.main input[type="tel"],
.account.page-layout-2columns-left .column.main input[type="password"],
.account.page-layout-2columns-left .column.main select,
.account.page-layout-2columns-left .column.main textarea {
    min-height: 44px;
    border: 0;
    border-radius: var(--koshi-radius-control);
    padding: 10px 12px;
    background-color: var(--koshi-beige);
    box-shadow: none;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
}

.account.page-layout-2columns-left .column.main input:focus,
.account.page-layout-2columns-left .column.main select:focus,
.account.page-layout-2columns-left .column.main textarea:focus {
    outline: 2px solid var(--koshi-sage);
    outline-offset: 1px;
    box-shadow: none;
}

.account.page-layout-2columns-left .column.main input[type="checkbox"],
.account.page-layout-2columns-left .column.main input[type="radio"] {
    accent-color: var(--koshi-clay);
}

.account.page-layout-2columns-left .column.main .field.street .nested .field.additional {
    margin-top: 8px;
}

/* Address form: compact native fields with a persistent return path. */
.customer-address-form .column.main > .koshi-address-form-back {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: min(100%, 860px);
    margin: -12px auto 18px;
}

.customer-address-form .koshi-address-form-back .koshi-ui-button {
    gap: 0;
}

.customer-address-form .koshi-address-form-heading {
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 24px;
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.customer-address-form .block-collapsible-nav .item a[href*="/customer/address/"] {
    border-bottom-color: var(--koshi-burgundy);
    color: var(--koshi-burgundy);
    font-weight: 600;
}

.customer-address-form .form-address-edit .field {
    margin-bottom: 14px;
}

.customer-address-form .form-address-edit .fieldset > .legend {
    margin-bottom: 14px !important;
}

.customer-address-form .form-address-edit .fieldset > .legend span {
    font-size: 24px;
}

.customer-address-form .form-address-edit > .fieldset > .legend,
.customer-address-form .form-address-edit > .fieldset > .legend + br {
    display: none !important;
}

.customer-address-form .form-address-edit input[type="text"],
.customer-address-form .form-address-edit input[type="tel"],
.customer-address-form .form-address-edit select {
    min-height: 40px !important;
    padding-top: 8px;
    padding-bottom: 8px;
}

.customer-address-form .form-address-edit > .actions-toolbar {
    display: flex;
    justify-content: center !important;
    margin: 26px auto 0 !important;
}

.customer-address-form .form-address-edit > .actions-toolbar > .primary {
    display: flex;
    justify-content: center;
    float: none;
}

.customer-address-form .form-address-edit > .actions-toolbar .action.primary,
.customer-address-index .koshi-address-actions .action.primary {
    margin-right: 0 !important;
}

.customer-address-form .form-address-edit > .actions-toolbar .secondary {
    display: none;
}

/* A default address is already identified in the address book; avoid repeating it as two alerts. */
.customer-address-form .form-address-edit .message.info {
    display: none !important;
}

@media (min-width: 761px) {
    .customer-address-form .form-address-edit > .fieldset {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 22px;
    }

    .customer-address-form .form-address-edit > .fieldset > .legend {
        grid-column: 1 / -1;
        margin-bottom: 2px !important;
    }

    .customer-address-form .form-address-edit > .fieldset > br {
        display: none;
    }

    .customer-address-form .form-address-edit > .fieldset > .field {
        min-width: 0;
        margin: 0 !important;
    }

    .customer-address-form .form-address-edit > .fieldset:nth-of-type(2) > .field.street {
        grid-column: 1 / -1;
    }

    .customer-address-form .form-address-edit .field.street > .control {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 22px;
    }

    .customer-address-form .form-address-edit .field.street > .control > .field.primary {
        display: none;
    }

    .customer-address-form .form-address-edit .field.street > .control > input,
    .customer-address-form .form-address-edit .field.street > .control > .nested {
        min-width: 0;
        margin: 0;
    }

    .customer-address-form .form-address-edit .field.street .nested .field.additional {
        margin: 0 !important;
    }
}

.account.page-layout-2columns-left .column.main > .form-edit-account {
    max-width: 720px !important;
}

.account.page-layout-2columns-left .form-edit-account .fieldset.info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    align-items: start;
}

.account.page-layout-2columns-left .form-edit-account .fieldset.info > .legend {
    display: none;
}

.account.page-layout-2columns-left .form-edit-account .fieldset.info > br {
    display: none;
}

.account.page-layout-2columns-left .form-edit-account .fieldset.info > .field.choice {
    grid-column: 1 / -1;
}

.account.page-layout-2columns-left .column.main .actions-toolbar {
    margin: 32px 0 0;
}

.account.page-layout-2columns-left .column.main .message.info.empty {
    margin: 0;
    border: 0;
    border-left: 3px solid var(--koshi-sage);
    border-radius: 0;
    padding: 14px 18px;
    background: transparent;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
    line-height: 1.5;
}

.account.page-layout-2columns-left .column.main .message.info.empty > *:first-child::before {
    display: none;
    content: none;
}

.account.page-layout-2columns-left .column.main .message.info.empty > *:first-child {
    padding-left: 0;
}

.customer-account-index .koshi-account-newsletter {
    box-sizing: border-box;
    max-width: 720px;
    margin: 56px auto 0;
    border-top: 1px solid var(--koshi-line-dark);
    padding-top: 40px;
}

.customer-account-index .koshi-account-newsletter .form-newsletter-manage {
    max-width: none;
    margin: 0;
}

/* Address book: one flat account-language component, without nested cards. */
.customer-address-index .column.main > .koshi-address-section,
.customer-address-index .column.main > .koshi-address-actions {
    box-sizing: border-box;
    width: min(100%, 760px);
    margin-right: auto;
    margin-left: auto;
}

.customer-address-index .column.main > .koshi-address-section {
    overflow: visible;
    margin-bottom: 0 !important;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.customer-address-index .koshi-address-section--additional {
    margin-top: 18px !important;
}

.customer-address-index .koshi-address-section__title {
    margin: 0 0 8px !important;
    border: 0 !important;
    padding: 0 !important;
}

.customer-address-index .koshi-address-section__title strong {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 20px !important;
    font-weight: 400 !important;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.customer-address-index .koshi-address-primary-grid {
    display: block;
}

.customer-address-index .koshi-address-primary-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.customer-address-index .koshi-address-entry {
    display: grid;
    grid-template-columns: minmax(180px, .9fr) minmax(0, 1.7fr) max-content;
    align-items: start;
    gap: 6px 22px;
    margin: 0;
    border-top: 1px solid var(--koshi-line-dark);
    padding: 10px 0;
    background: transparent;
}

.customer-address-index .koshi-address-primary-grid .koshi-address-entry,
.customer-address-index .koshi-address-list .koshi-address-entry:last-of-type {
    border-bottom: 1px solid var(--koshi-line-dark);
}

.customer-address-index .koshi-address-entry__head {
    display: contents;
}

.customer-address-index .koshi-address-entry__head > strong,
.customer-address-index .koshi-address-entry__head > .koshi-address-entry__roles {
    grid-column: 1;
    grid-row: 1;
}

.customer-address-index .koshi-address-entry__head > a.action,
.customer-address-index .koshi-address-entry__head > .koshi-address-entry__actions {
    grid-column: 3;
    grid-row: 1;
}

.customer-address-index .koshi-address-entry__head > strong,
.customer-address-index .koshi-address-entry__roles strong {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

.customer-address-index .koshi-address-entry__roles {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.customer-address-index .koshi-address-entry__roles > span {
    color: var(--koshi-soft);
}

.customer-address-index .koshi-address-entry__body,
.customer-address-index .koshi-address-entry__body address {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    color: var(--koshi-soft);
    font-family: var(--koshi-sans);
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.38;
}

.customer-address-index .koshi-address-entry__separator {
    color: var(--koshi-line-strong, var(--koshi-soft));
    white-space: nowrap;
}

.customer-address-index .koshi-address-entry__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
}

.customer-address-index .koshi-address-entry__default-form {
    display: flex;
    margin: 0;
}

.customer-address-index .koshi-address-entry a.action {
    color: var(--koshi-burgundy);
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
}

.customer-address-index .koshi-address-entry a.action:hover,
.customer-address-index .koshi-address-entry a.action:focus-visible {
    color: var(--koshi-clay);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.customer-address-index .koshi-sketch-icon-button,
.customer-address-index .koshi-sketch-icon-button:hover,
.customer-address-index .koshi-sketch-icon-button:focus-visible {
    text-decoration: none;
}

.customer-address-index .koshi-address-list > .empty {
    margin: 0;
    border-top: 1px solid var(--koshi-line-dark);
    border-bottom: 1px solid var(--koshi-line-dark);
    padding: 24px 0;
    color: var(--koshi-soft);
    font-size: 14px;
}

.customer-address-index .column.main > .koshi-address-actions {
    margin: 18px auto 0 !important;
}

.customer-address-index .koshi-address-actions .primary {
    display: flex;
    width: 100%;
    justify-content: center;
    float: none;
}

.customer-address-index .customer-addresses-toolbar {
    margin: 12px 0 0;
}

@media (min-width: 981px) {
    .account.page-layout-2columns-left .columns {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 48px;
        align-items: start;
    }

    .account.page-layout-2columns-left .column.main {
        float: none;
        grid-column: 1;
        grid-row: 2;
        width: 100% !important;
        min-width: 0;
        padding: 0 !important;
        background: transparent;
    }

    .account.page-layout-2columns-left .sidebar-main {
        float: none;
        grid-column: 1;
        grid-row: 1;
        width: 100% !important;
        padding: 0;
        border: 0;
        background: transparent;
    }
}

@media (max-width: 980px) {
    .account.page-layout-2columns-left .page-main {
        padding-bottom: 64px;
    }

    .account.page-layout-2columns-left .columns {
        display: flex;
        flex-direction: column;
        width: auto;
        margin: 32px clamp(16px, 5vw, 24px) 0;
        gap: 36px;
        padding: 0;
    }

    .account.page-layout-2columns-left .column.main {
        float: none;
        order: 2;
        width: 100% !important;
        padding: 0 0 48px !important;
        background: transparent;
    }

    .account.page-layout-2columns-left .sidebar-main {
        float: none;
        order: 1;
        width: 100% !important;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .account.page-layout-2columns-left .block-collapsible-nav {
        border-right: 0;
        border-bottom: 0;
        padding: 0;
    }

    .account.page-layout-2columns-left .page-title-wrapper {
        margin-bottom: 36px;
    }

    .account.page-layout-2columns-left .page-title-wrapper .base {
        font-size: clamp(36px, 10vw, 44px);
    }

    .account.page-layout-2columns-left .form-edit-account .fieldset.info {
        grid-template-columns: 1fr;
    }

    .account.page-layout-2columns-left .column.main .form-address-edit .fieldset + .fieldset {
        margin-top: 26px;
        padding-top: 22px;
    }

    .customer-address-index .koshi-address-primary-grid {
        grid-template-columns: 1fr;
        row-gap: 0;
    }

    .customer-address-index .koshi-address-primary-grid .koshi-address-entry + .koshi-address-entry {
        border-top: 0;
    }

    .customer-address-index .koshi-address-entry__head {
        gap: 16px;
    }

    .customer-address-index .koshi-address-section--additional {
        margin-top: 18px;
    }

    .customer-account-index .koshi-account-newsletter {
        margin-top: 44px;
        padding-top: 34px;
    }
}

@media (max-width: 760px) {
    .customer-address-form .column.main > .koshi-address-form-back {
        margin-top: -6px;
        margin-bottom: 16px;
    }

    .customer-address-index .koshi-address-entry {
        display: block;
        padding: 10px 0;
    }

    .customer-address-index .koshi-address-entry__head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 5px;
    }

    .customer-address-index .koshi-address-entry__body,
    .customer-address-index .koshi-address-entry__body address {
        display: block;
    }
}

/* Figma catalog search polish - 2026-07-07 */
.catalogsearch-result-index .page-main {
    background:
        radial-gradient(circle at 16% 12%, rgba(183, 200, 175, .28), transparent 34%),
        linear-gradient(180deg, var(--koshi-paper) 0%, var(--koshi-mist) 100%);
}

.catalogsearch-result-index .page-title-wrapper {
    max-width: min(var(--koshi-content), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(66px, 8vw, 112px) 0 0;
    text-align: center;
}

.catalogsearch-result-index .page-title-wrapper .page-title {
    margin: 0;
}

.catalogsearch-result-index .page-title-wrapper .base {
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(48px, 7vw, 92px);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .95;
    overflow-wrap: anywhere;
}

.catalogsearch-result-index.koshi-search-title-long .page-title-wrapper .base {
    font-size: clamp(36px, 5vw, 70px);
    letter-spacing: -.045em;
}

.catalogsearch-result-index .columns {
    display: block;
    max-width: min(1120px, calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(36px, 5vw, 68px) 0 clamp(86px, 10vw, 132px);
}

.catalogsearch-result-index .columns::before,
.catalogsearch-result-index .columns::after {
    display: none;
    content: none;
}

.catalogsearch-result-index .column.main {
    float: none !important;
    width: 100% !important;
    padding: 0;
}

.catalogsearch-result-index .sidebar-main,
.catalogsearch-result-index .sidebar-additional {
    display: none;
}

.catalogsearch-result-index .search.results {
    margin: 0;
}

.catalogsearch-result-index .toolbar-products {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin: 0 0 34px;
    border-top: 1px solid rgba(50, 42, 34, .16);
    border-bottom: 1px solid rgba(50, 42, 34, .16);
    background: rgba(255, 252, 244, .58);
    padding: 16px 0;
}

.catalogsearch-result-index .toolbar-products::before,
.catalogsearch-result-index .toolbar-products::after {
    display: none;
    content: none;
}

.catalogsearch-result-index .toolbar-amount,
.catalogsearch-result-index .sorter-label,
.catalogsearch-result-index .limiter .label,
.catalogsearch-result-index .limiter-text {
    color: rgba(50, 42, 34, .62);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.catalogsearch-result-index .sorter,
.catalogsearch-result-index .limiter {
    display: flex;
    align-items: center;
    gap: 10px;
}

.catalogsearch-result-index .sorter-options,
.catalogsearch-result-index .limiter-options {
    min-height: 38px;
    border: 1px solid rgba(50, 42, 34, .18);
    border-radius: 999px;
    background: rgba(255, 252, 244, .82);
    color: var(--koshi-ink);
    padding: 0 34px 0 14px;
    font-size: 12px;
}

.catalogsearch-result-index .sorter-action {
    border: 1px solid rgba(50, 42, 34, .18);
    border-radius: 999px;
    background: transparent;
}

.catalogsearch-result-index .products.wrapper {
    margin: 0;
}

.catalogsearch-result-index .products-grid .product-items {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: clamp(22px, 3vw, 36px);
}

.catalogsearch-result-index .products-grid .product-items::before,
.catalogsearch-result-index .products-grid .product-items::after {
    display: none;
    content: none;
}

.catalogsearch-result-index .products-grid .product-item-info {
    box-sizing: border-box;
    height: 100%;
    border: 1px solid rgba(50, 42, 34, .14);
    background: rgba(255, 252, 244, .56);
    box-shadow: 0 18px 48px rgba(50, 42, 34, .07);
    padding: 16px;
}

.catalogsearch-result-index .product-item-photo {
    border-radius: 18px;
}

.catalogsearch-result-index .product-item-details {
    padding: 18px 4px 0;
}

.catalogsearch-result-index .product-item-name,
.catalogsearch-result-index .product.name a {
    font-size: clamp(22px, 2.2vw, 30px);
    line-height: 1.05;
}

/* Own the complete card flow instead of Luma's clipped hover-only action layer. */
.catalogsearch-result-index .products-grid .product-item-inner {
    position: static !important;
    box-sizing: border-box;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    border: 0 !important;
    background: transparent;
    box-shadow: none;
    padding: 0 !important;
}

.catalogsearch-result-index .product-item-actions,
.catalogsearch-result-index .product-item-actions .actions-primary {
    display: flex;
    justify-content: center;
}

.catalogsearch-result-index .product-item-actions {
    width: 100%;
    min-height: 42px;
    margin: 16px 0 0;
}

.catalogsearch-result-index .product-item-actions .actions-primary,
.catalogsearch-result-index .product-item-actions form {
    width: 100%;
    margin: 0;
}

.catalogsearch-result-index .product-item-actions .actions-secondary,
.catalogsearch-result-index .action.towishlist,
.catalogsearch-result-index .action.tocompare {
    display: none !important;
}

.catalogsearch-result-index .action.tocart.primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--koshi-clay) !important;
    border-radius: 999px !important;
    background: var(--koshi-clay) !important;
    color: var(--koshi-white) !important;
    padding: 13px 22px;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .14em;
}

.catalogsearch-result-index .message.notice {
    max-width: min(720px, calc(100% - 48px));
    margin: 0 auto;
    border: 1px solid rgba(50, 42, 34, .16);
    background: rgba(255, 252, 244, .72);
    box-shadow: 0 22px 60px rgba(50, 42, 34, .08);
    color: rgba(50, 42, 34, .78);
    padding: clamp(28px, 4vw, 46px);
    font-size: 16px;
    line-height: 1.72;
    text-align: center;
}

.catalogsearch-result-index .message.notice::before {
    display: none !important;
    content: none !important;
}

.catalogsearch-result-index .message.notice a {
    color: var(--koshi-clay);
    font-weight: 800;
    text-decoration: none;
}

.catalogsearch-result-index .toolbar-products:last-child {
    margin-top: 34px;
    margin-bottom: 0;
}

@media (max-width: 780px) {
    .catalogsearch-result-index .page-title-wrapper,
    .catalogsearch-result-index .columns {
        max-width: calc(100% - 32px);
    }

    .catalogsearch-result-index .toolbar-products {
        align-items: flex-start;
        flex-direction: column;
    }

    .catalogsearch-result-index .products-grid .product-items {
        grid-template-columns: 1fr;
    }
}

/* Figma guide and FAQ section pass - 2026-07-08 */
.koshi-boutique-home--figma .koshi-knowledge-section { order: 7; }
.koshi-boutique-home--figma .koshi-faq-section { order: 8; }
.koshi-boutique-home--figma .koshi-world-section { order: 9; }
.koshi-boutique-home--figma .koshi-service-band { order: 10; }
.koshi-boutique-home--figma .koshi-newsletter-section { order: 11; }

.koshi-knowledge-section,
.koshi-faq-section {
    background: var(--koshi-paper);
    padding: clamp(86px, 8vw, 126px) clamp(24px, 6vw, 92px);
    scroll-margin-top: 142px;
}

.koshi-knowledge-head,
.koshi-faq-head {
    display: grid;
    gap: clamp(22px, 3vw, 36px);
    justify-items: center;
    max-width: 760px;
    margin: 0 auto clamp(48px, 5vw, 72px);
    text-align: center;
}

.koshi-knowledge-head {
    max-width: 1040px;
}

.koshi-knowledge-head .koshi-section-title,
.koshi-faq-head .koshi-section-title {
    margin: 0;
    max-width: 780px;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(40px, 4.2vw, 58px);
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.08;
}

.koshi-knowledge-head .koshi-section-title {
    font-family: var(--koshi-sans);
    max-width: 1040px;
    font-size: clamp(32px, 3vw, 42px);
    font-weight: 400;
    letter-spacing: .035em;
    line-height: 1.12;
    text-transform: uppercase;
}

.koshi-knowledge-head > p {
    max-width: 560px;
    margin: 0;
    color: rgba(50, 42, 34, .72);
    font-size: 15px;
    line-height: 1.7;
}

.koshi-knowledge-tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 22px;
}

.koshi-knowledge-tabs a {
    color: var(--koshi-ink);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    line-height: 1;
    padding-bottom: 9px;
    text-decoration: none;
    text-transform: uppercase;
}

.koshi-knowledge-tabs a:first-child,
.koshi-knowledge-tabs a:hover,
.koshi-knowledge-tabs a:focus-visible {
    border-bottom: 1px solid var(--koshi-ink);
}

.koshi-knowledge-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(22px, 2.6vw, 36px);
    width: min(100%, 1120px);
    margin: 0 auto;
}

.koshi-knowledge-card {
    min-width: 0;
}

.koshi-knowledge-card a {
    display: grid;
    min-height: 100%;
    overflow: hidden;
    border-radius: 8px;
    background: #fbf8ef;
    color: var(--koshi-ink);
    text-decoration: none;
    box-shadow: 0 20px 60px rgba(50, 42, 34, .06);
}

.koshi-knowledge-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1.52;
    object-fit: cover;
}

.koshi-knowledge-card-copy {
    display: grid;
    gap: 12px;
    padding: clamp(22px, 2.4vw, 32px);
}

.koshi-knowledge-card-copy em {
    justify-self: start;
    background: #e7ede4;
    color: rgba(50, 42, 34, .74);
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 8px 10px;
    text-transform: uppercase;
}

.koshi-knowledge-card-copy strong {
    font-family: var(--koshi-serif);
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1.12;
}

.koshi-knowledge-card-copy small {
    color: rgba(50, 42, 34, .72);
    font-size: 14px;
    line-height: 1.62;
}

.koshi-faq-section {
    border-top: 1px solid rgba(50, 42, 34, .12);
}

.koshi-faq-search {
    width: min(100%, 260px);
}

.koshi-faq-search input {
    width: 100%;
    border: 0;
    border-radius: 0;
    background: #dfd2bd;
    color: var(--koshi-ink);
    min-height: 42px;
    padding: 0 18px;
}

.koshi-faq-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 4vw, 64px);
    width: min(100%, 1120px);
    margin: 0 auto;
}

.koshi-faq-columns details {
    border-top: 1px solid rgba(50, 42, 34, .22);
    padding: 22px 0 24px;
}

.koshi-faq-columns summary {
    cursor: pointer;
    color: var(--koshi-ink);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.45;
    list-style: none;
    text-transform: uppercase;
}

.koshi-faq-columns summary::-webkit-details-marker {
    display: none;
}

.koshi-faq-columns summary::after {
    content: "+";
    float: right;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
}

.koshi-faq-columns details[open] summary::after {
    content: "–";
}

.koshi-faq-columns p {
    margin: 22px 0 0;
    color: rgba(50, 42, 34, .76);
    font-size: 15px;
    line-height: 1.72;
}

.koshi-faq-more {
    display: table;
    margin: clamp(34px, 4vw, 52px) auto 0;
    color: #8f3f33;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    padding-bottom: 7px;
    text-decoration: none;
    text-transform: uppercase;
    border-bottom: 1px solid currentColor;
}

@media (max-width: 900px) {
    .koshi-knowledge-grid,
    .koshi-faq-columns {
        grid-template-columns: 1fr;
    }

    .koshi-knowledge-card img {
        aspect-ratio: 1.75;
    }
}

@media (max-width: 680px) {
    .koshi-knowledge-section,
    .koshi-faq-section {
        padding: 72px 24px;
        scroll-margin-top: 128px;
    }

    .koshi-knowledge-head,
    .koshi-faq-head {
        margin-bottom: 38px;
    }

    .koshi-knowledge-tabs {
        gap: 16px 18px;
    }

    .koshi-knowledge-head .koshi-section-title,
    .koshi-faq-head .koshi-section-title {
        font-size: clamp(34px, 11vw, 46px);
    }

    .koshi-knowledge-head .koshi-section-title {
        font-size: clamp(34px, 10vw, 44px);
    }
}

/* Figma product header structure pass - 2026-07-08 */
.catalog-product-view .columns {
    max-width: var(--koshi-max);
    padding-top: clamp(30px, 4vw, 56px);
}

@media (min-width: 981px) {
    .catalog-product-view .product-info-main {
        box-sizing: border-box;
        position: sticky;
        top: 108px;
        z-index: 1;
        width: 39%;
        margin-top: 0;
        padding: clamp(26px, 2.8vw, 44px);
        border: 1px solid rgba(50, 42, 34, .12);
        background: rgba(255, 252, 244, .76);
        box-shadow: 0 24px 70px rgba(50, 42, 34, .06);
        backdrop-filter: blur(18px);
    }

}

@media (max-width: 980px) {
    .catalog-product-view .columns {
        padding-top: 22px;
    }

    .catalog-product-view .product-info-main {
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        width: auto;
        margin: 28px clamp(20px, 6vw, 32px) 0;
        padding: clamp(22px, 6vw, 34px);
        border: 1px solid rgba(50, 42, 34, .12);
        background: rgba(255, 252, 244, .78);
    }

    .catalog-product-view .product.attribute.overview {
        order: 2;
        max-width: none;
        margin: 0 0 16px;
    }

}

/* Figma product lower sequence pass - 2026-07-08 */
.catalog-product-view .page-main {
    max-width: 1440px;
    padding-right: 0;
    padding-left: 0;
}

.catalog-product-view .page-main > .columns {
    width: min(1240px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
}

.catalog-product-view .koshi-product-structure-fullwidth {
    width: 100%;
}

.catalog-product-view .koshi-product-structure--figma {
    position: relative;
    z-index: 4;
    margin-top: 0;
    background: var(--koshi-mist);
}

.catalog-product-view .koshi-product-reassurance {
    box-sizing: border-box;
    width: 100%;
    height: 348px;
    border: 0;
    padding: 80px;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
}

.catalog-product-view .koshi-product-reassurance__inner {
    display: grid;
    width: 1280px;
    max-width: 100%;
    height: 188px;
    margin: 0 auto;
    padding: 0;
    grid-template-columns: repeat(4, 296px);
    grid-template-rows: 188px;
    gap: 32px;
    align-items: start;
    list-style: none;
}

.catalog-product-view .koshi-product-reassurance__item {
    box-sizing: border-box;
    display: flex;
    width: 296px;
    margin: 0;
    padding: 0;
    flex-direction: column;
    align-items: center;
    border: 0;
    background: transparent;
    text-align: center;
}

.catalog-product-view .koshi-product-reassurance__icon {
    display: block;
    max-width: 88px;
    height: 66px;
    margin: 0 auto 24px;
    flex: 0 0 66px;
    object-fit: contain;
}

.catalog-product-view .koshi-product-reassurance__copy {
    display: flex;
    width: 296px;
    flex-direction: column;
    align-items: center;
}

.catalog-product-view .koshi-product-reassurance__copy strong {
    display: flex;
    width: 256px;
    min-height: 48px;
    margin: 0;
    flex-direction: column;
    align-items: center;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .15em;
    line-height: 24px;
    text-transform: uppercase;
}

.catalog-product-view .koshi-product-reassurance__item:nth-child(2) strong {
    width: 275px;
}

.catalog-product-view .koshi-product-reassurance__item:nth-child(3) strong {
    width: 258px;
}

.catalog-product-view .koshi-product-reassurance__item:nth-child(4) strong {
    width: 274px;
}

.catalog-product-view .koshi-product-reassurance__copy strong span {
    display: block;
    white-space: normal;
}

.catalog-product-view .koshi-product-reassurance__copy p {
    width: 260px;
    margin: 8px auto 0;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 21px;
}

.catalog-product-view .koshi-product-reassurance__copy p span {
    display: block;
}

.catalog-product-view .koshi-product-story-grid {
    display: grid;
    gap: 80px;
    padding: 112px clamp(24px, 5.5556vw, 80px);
    scroll-margin-top: 120px;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
}

.catalog-product-view .koshi-product-story-grid header {
    display: grid;
    width: min(100%, 1280px);
    margin: 0 auto;
}

.catalog-product-view .koshi-product-story-grid .koshi-eyebrow {
    color: rgba(50, 42, 34, .58);
}

.catalog-product-view .koshi-product-story-grid h2 {
    width: min(100%, 658px);
    margin: 0 0 0 auto;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.2;
    text-align: right;
}

.catalog-product-view .koshi-product-story-grid > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    width: min(100%, 1280px);
    margin: 0 auto;
}

.catalog-product-view .koshi-product-story-grid article {
    display: block;
    min-width: 0;
}

.catalog-product-view .koshi-product-story-grid article:nth-child(2) {
    margin-top: 80px;
}

.catalog-product-view .koshi-product-story-grid article:nth-child(3) {
    margin-top: 160px;
}

.catalog-product-view .koshi-product-story-grid img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 32px;
    border-radius: 8px;
    background: rgba(50, 42, 34, .08);
}

.catalog-product-view .koshi-product-story-grid article:nth-child(1) img {
    aspect-ratio: 416 / 360;
}

.catalog-product-view .koshi-product-story-grid article:nth-child(2) img {
    aspect-ratio: 416 / 361;
}

.catalog-product-view .koshi-product-story-grid article:nth-child(3) img {
    aspect-ratio: 416 / 362;
}

.catalog-product-view .koshi-product-story-grid h3 {
    width: 100%;
    margin: 0 0 15px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--koshi-terracotta-soft);
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.3;
}

.catalog-product-view .koshi-product-story-grid p {
    width: min(100%, 324px);
    margin: 0;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 14px;
    letter-spacing: .02em;
    line-height: 1.5;
}

.catalog-product-view .koshi-product-story-grid p + p {
    margin-top: 21px;
}

.catalog-product-view .koshi-product-guide-panel {
    display: grid;
    box-sizing: border-box;
    width: 100%;
    grid-template-columns: 578px 622px;
    gap: 80px;
    align-items: start;
    padding: 112px 80px;
    background: var(--koshi-mist);
}

.catalog-product-view .koshi-product-guide-copy {
    box-sizing: border-box;
    width: 578px;
    align-self: stretch;
    border-right: 1px solid var(--koshi-sage);
}

.catalog-product-view .koshi-product-guide-copy h2 {
    margin: 0 0 24px;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 58px;
}

.catalog-product-view .koshi-product-guide-copy p {
    width: 492px;
    margin: 0 0 32px;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 18px;
    letter-spacing: 0;
    line-height: 1.5;
}

.catalog-product-view .koshi-product-guide-all {
    display: inline-flex;
    box-sizing: border-box;
    width: 92px;
    min-width: 92px;
    min-height: 0;
    height: 26px;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border: 1px solid var(--koshi-clay);
    border-radius: 5px;
    background: var(--koshi-clay);
    color: var(--koshi-white);
    font-family: Roboto, "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5;
    text-transform: none;
}

.catalog-product-view .koshi-product-guide-list {
    display: grid;
    width: 622px;
    gap: 64px;
}

.catalog-product-view .koshi-product-guide-item {
    display: grid;
    width: 622px;
    min-height: 197px;
    grid-template-columns: 197px 393px;
    gap: 32px;
    align-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--koshi-ink);
    box-shadow: none;
    text-transform: none;
}

.catalog-product-view .koshi-product-guide-item img {
    display: block;
    width: 197px;
    height: 197px;
    border-radius: 16px;
    object-fit: cover;
}

.catalog-product-view .koshi-product-guide-item:not(:has(img)) > span {
    grid-column: 1 / -1;
    width: auto;
}

.catalog-product-view .koshi-product-guide-item p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.catalog-product-view .koshi-product-guide-item > span {
    display: flex;
    width: 393px;
    flex-direction: column;
    align-items: flex-start;
    margin: 0;
    text-transform: none;
}

.catalog-product-view .koshi-product-guide-item h3 {
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 34px;
    text-transform: none;
}

.catalog-product-view .koshi-product-guide-item p {
    margin: 8px 0 0;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 1.5;
}

.catalog-product-view .koshi-product-guide-link {
    display: inline-flex;
    width: 114px;
    min-height: 0;
    height: 28px;
    margin-top: 16px;
    align-items: flex-start;
    align-content: normal;
    padding: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--koshi-burgundy);
    font-family: Roboto, "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5;
    text-decoration: none;
    text-transform: uppercase;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list details {
    border-top: 1px solid var(--koshi-ink-20);
    padding: 0;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list details:last-child {
    border-bottom: 1px solid var(--koshi-ink-20);
}

.catalog-product-view .koshi-product-faq .koshi-faq-list summary {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    min-height: 78px;
    padding: 24px 0;
    color: var(--koshi-ink);
    cursor: pointer;
    font-family: var(--koshi-serif);
    font-size: clamp(23px, 2.2vw, 32px);
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.12;
    list-style: none;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list summary::-webkit-details-marker {
    display: none;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list summary::after {
    content: "+";
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(50, 42, 34, .28);
    border-radius: 999px;
    color: #a5463c;
    font-family: var(--koshi-sans);
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list details[open] summary::after {
    content: "–";
    border-color: #a5463c;
    background: #a5463c;
    color: var(--koshi-white);
}

.catalog-product-view .koshi-product-faq .koshi-faq-list summary:hover::after,
.catalog-product-view .koshi-product-faq .koshi-faq-list summary:focus-visible::after {
    border-color: #a5463c;
    transform: translateY(-1px);
}

.catalog-product-view .koshi-product-faq .koshi-faq-list summary:focus-visible {
    outline: 2px solid rgba(165, 70, 60, .28);
    outline-offset: 6px;
}

.catalog-product-view .koshi-product-faq .koshi-faq-list p {
    max-width: 680px;
    margin: -4px 58px 28px 0;
    padding-right: 0;
    color: rgba(50, 42, 34, .72);
    font-size: 15px;
    line-height: 1.75;
}

.catalog-product-view .koshi-product-faq--figma {
    display: block;
    box-sizing: border-box;
    height: auto;
    padding: 112px 80px;
    scroll-margin-top: 120px;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
}

.catalog-product-view .koshi-product-faq--figma header {
    width: 768px;
    height: 116px;
    margin: 0 auto 80px;
    text-align: center;
}

.catalog-product-view .koshi-product-faq--figma h2 {
    width: 659px;
    height: 116px;
    margin: 0 auto;
    color: var(--koshi-ink);
    font-family: var(--koshi-display);
    font-size: 48px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 58px;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list {
    display: grid;
    box-sizing: border-box;
    grid-template-columns: 624px 624px;
    gap: 32px;
    align-items: start;
    width: 1279px;
    height: auto;
    margin: 0 0 0 .5px;
    padding: 0 0 24px;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-column {
    display: grid;
    box-sizing: border-box;
    grid-auto-rows: max-content;
    row-gap: 16px;
    align-content: start;
    padding-bottom: 23px;
    border-bottom: 1px solid var(--koshi-burgundy);
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list details {
    border: 0;
    padding: 0;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list details:last-child {
    border: 0;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list summary {
    display: grid;
    box-sizing: border-box;
    grid-template-columns: minmax(0, 1fr) 32px;
    gap: 24px;
    align-items: center;
    min-height: 72px;
    padding: 19px 0 20px;
    border-top: 1px solid var(--koshi-burgundy);
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 24px;
    text-transform: uppercase;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list summary::after {
    content: none;
    display: none;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-question {
    min-width: 0;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-chevron {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: var(--koshi-ink);
    transform: rotate(180deg);
    transition: transform .18s ease;
}

.catalog-product-view .koshi-product-faq--figma details[open] .koshi-faq-chevron {
    transform: rotate(0);
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-chevron svg {
    display: block;
    width: 32px;
    height: 32px;
    fill: currentColor;
}

.catalog-product-view .koshi-product-faq--figma .koshi-faq-list p {
    max-width: none;
    margin: 0;
    padding: 0 0 24px;
    color: var(--koshi-ink);
    font-family: "Instrument Sans", var(--koshi-sans);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 24px;
}

.catalog-product-view .koshi-product-structure--figma + .product.info.detailed {
    max-width: min(var(--koshi-content), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(62px, 7vw, 96px) 0;
}

@media (min-width: 981px) {
    .catalog-product-view .koshi-product-structure--figma {
        overflow-x: visible;
    }

}

@media (max-width: 1200px) {
    .catalog-product-view .koshi-product-reassurance {
        height: auto;
        padding: 72px 48px;
    }

    .catalog-product-view .koshi-product-reassurance__inner {
        width: 100%;
        height: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        gap: 56px 32px;
    }

    .catalog-product-view .koshi-product-reassurance__item,
    .catalog-product-view .koshi-product-reassurance__copy {
        width: 100%;
    }

    .catalog-product-view .koshi-product-faq--figma {
        height: auto;
        min-height: 0;
        padding: 96px 48px;
    }

    .catalog-product-view .koshi-product-faq--figma header {
        width: min(100%, 768px);
        height: auto;
        margin-bottom: 64px;
    }

    .catalog-product-view .koshi-product-faq--figma h2 {
        width: min(100%, 659px);
        height: auto;
        font-size: clamp(40px, 4vw, 48px);
    }

    .catalog-product-view .koshi-product-faq--figma .koshi-faq-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
        width: 100%;
        height: auto;
        margin: 0;
        padding-bottom: 0;
    }

}

@media (max-width: 980px) {
    .catalog-product-view .koshi-product-story-grid > div {
        grid-template-columns: 1fr;
    }

    .catalog-product-view .koshi-product-story-grid article:nth-child(2),
    .catalog-product-view .koshi-product-story-grid article:nth-child(3) {
        margin-top: 0;
    }

    .catalog-product-view .koshi-product-story-grid article {
        width: min(100%, 520px);
        margin-right: auto;
        margin-left: auto;
    }

    .catalog-product-view .koshi-product-story-grid h3,
    .catalog-product-view .koshi-product-story-grid p {
        max-width: none;
    }

    .catalog-product-view .koshi-product-guide-panel {
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 48px;
        padding: 80px 40px;
    }

    .catalog-product-view .koshi-product-guide-copy {
        width: 100%;
        max-width: 620px;
        min-height: 0;
        padding-bottom: 48px;
        border-right: 0;
        border-bottom: 1px solid var(--koshi-sage);
    }

    .catalog-product-view .koshi-product-guide-list {
        width: min(100%, 620px);
    }

    .catalog-product-view .koshi-product-guide-item {
        width: 100%;
        grid-template-columns: 197px minmax(0, 393px);
    }

    .catalog-product-view .koshi-product-faq--figma .koshi-faq-list {
        grid-template-columns: 1fr;
        width: min(100%, 620px);
        height: auto;
        margin: 0 auto;
        gap: 16px;
        padding-bottom: 0;
    }
}

@media (max-width: 680px) {
    .catalog-product-view .koshi-product-structure--figma {
        margin-top: 0;
    }

    .catalog-product-view .koshi-product-reassurance {
        padding: 64px 24px;
    }

    .catalog-product-view .koshi-product-reassurance__inner {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .catalog-product-view .koshi-product-reassurance__copy strong,
    .catalog-product-view .koshi-product-reassurance__item:nth-child(n) strong,
    .catalog-product-view .koshi-product-reassurance__copy p {
        width: min(100%, 296px);
    }

    .catalog-product-view .koshi-product-reassurance__copy strong span {
        white-space: normal;
    }

    .catalog-product-view .koshi-product-story-grid {
        padding: 72px 24px;
    }

    .catalog-product-view .koshi-product-story-grid {
        gap: 42px;
    }

    .catalog-product-view .koshi-product-story-grid > div {
        gap: 44px;
    }

    .catalog-product-view .koshi-product-story-grid h2 {
        font-size: clamp(31px, 9.4vw, 39px);
    }

    .catalog-product-view .koshi-product-story-grid img {
        aspect-ratio: .86;
    }

    .catalog-product-view .koshi-product-guide-cards {
        padding: 72px 24px;
    }

    .catalog-product-view .koshi-product-guide-copy p,
    .catalog-product-view .koshi-product-guide-item > span {
        width: 100%;
    }

    .catalog-product-view .koshi-product-guide-copy p {
        font-size: 16px;
    }

    .catalog-product-view .koshi-product-guide-list {
        gap: 48px;
    }

    .catalog-product-view .koshi-product-guide-copy h2 {
        font-size: clamp(32px, 10vw, 42px);
    }

    .catalog-product-view .koshi-product-guide-item {
        height: auto;
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .catalog-product-view .koshi-product-guide-item img {
        width: min(100%, 320px);
        height: auto;
        aspect-ratio: 1;
    }

    .catalog-product-view .koshi-product-guide-item h3 {
        font-size: clamp(25px, 8vw, 32px);
    }

    .catalog-product-view .koshi-product-faq--figma {
        padding: 72px 24px;
    }

    .catalog-product-view .koshi-product-faq--figma header {
        margin-bottom: 38px;
    }

    .catalog-product-view .koshi-product-faq--figma h2 {
        width: 100%;
        font-size: clamp(31px, 9vw, 39px);
    }

    .catalog-product-view .koshi-product-faq--figma .koshi-faq-list summary {
        gap: 16px;
        min-height: 72px;
        padding: 19px 0 20px;
        font-size: 16px;
        line-height: 24px;
    }

    .catalog-product-view .koshi-product-faq--figma .koshi-faq-list p {
        margin-right: 0;
        margin-bottom: 0;
    }

    .catalog-product-view .koshi-product-faq .koshi-faq-list summary {
        gap: 16px;
        min-height: 68px;
        padding: 20px 0;
    }

    .catalog-product-view .koshi-product-faq .koshi-faq-list summary::after {
        width: 30px;
        height: 30px;
        font-size: 16px;
    }

    .catalog-product-view .koshi-product-faq .koshi-faq-list p {
        margin-right: 0;
    }

    .catalog-product-view .koshi-product-faq.koshi-product-faq--figma .koshi-faq-list summary {
        min-height: 72px;
        padding: 19px 0 20px;
        font-size: 16px;
    }

    .catalog-product-view .koshi-product-faq.koshi-product-faq--figma .koshi-faq-list summary::after {
        width: auto;
        height: auto;
        font-size: 18px;
    }

    .catalog-product-view .koshi-product-faq.koshi-product-faq--figma .koshi-faq-list p {
        margin-right: 0;
        margin-bottom: 0;
    }

}

/* Figma product buy-box density pass - 2026-07-09 */
@media (min-width: 981px) {
    .catalog-product-view .product-info-main {
        display: flex;
        flex-direction: column;
        padding: clamp(22px, 2.35vw, 34px);
    }

    .catalog-product-view .product.attribute.overview {
        order: 2;
        max-width: none;
        margin: 0 0 14px;
        color: rgba(50, 42, 34, .72);
        font-size: 13px;
        line-height: 1.58;
    }

}

/* Figma product static buy-box pass - 2026-07-09
   Prevent the Magento buy-box from floating over the custom product sections. */
@media (min-width: 981px) {
    .catalog-product-view .product-info-main {
        position: relative;
        top: auto;
        align-self: flex-start;
    }
}

@media (min-width: 981px) {
    .catalog-product-view .product-info-main {
        width: 40%;
        padding: clamp(18px, 2.2vw, 30px) clamp(12px, 2.1vw, 30px);
        border: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .catalog-product-view .product.attribute.overview {
        order: 4;
        margin: 0 0 22px;
        font-size: 12px;
        line-height: 1.62;
    }

}

/* Figma common reassurance and newsletter parity - 2026-07-10 */
.koshi-boutique-home--figma .koshi-service-icon {
    color: var(--koshi-sage);
}

.koshi-newsletter-card {
    grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr);
}

.koshi-newsletter-card figure,
.koshi-newsletter-copy {
    box-sizing: border-box;
    height: clamp(360px, 30vw, 438px);
    min-height: 0;
}

@media (max-width: 980px) {
    .koshi-newsletter-card {
        grid-template-columns: 1fr;
    }

    .koshi-newsletter-card figure,
    .koshi-newsletter-copy {
        height: auto;
        min-height: 340px;
    }
}

@media (max-width: 680px) {
    .koshi-newsletter-card figure {
        height: min(520px, 135vw);
        min-height: 0;
    }

    .koshi-newsletter-copy {
        min-height: 0;
    }
}

/* Figma Magento shell, logo and radius contract - 2026-07-15 */
html {
    min-width: 0;
    background: var(--koshi-mist);
}

body {
    min-width: 0;
    overflow-x: clip;
}

body .page-wrapper {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: auto;
}

.page-footer {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: auto;
}

body .page-main {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--koshi-frame-width);
    margin-inline: auto;
}

.cms-index-index .koshi-boutique-hero--carillons {
    height: 571px;
    min-height: 571px;
}

.cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy {
    position: absolute;
    top: 224px;
    left: 50%;
    box-sizing: border-box;
    width: 768px;
    max-width: 768px;
    min-height: 235px;
    grid-template-rows: 67px 144px;
    gap: 24px;
    padding: 0;
    transform: translateX(-50%);
}

.cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy h1 {
    width: 768px;
    max-width: none;
    margin: 0;
    text-transform: none;
}

.cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy p {
    width: 721px;
    max-width: none;
    justify-self: center;
}

.cms-index-index .koshi-earth-feature,
.catalogsearch-result-index .product-item-photo,
.catalogsearch-result-index .product-image-container {
    border-radius: var(--koshi-radius-media);
}

.checkout-cart-index .koshi-cart-empty__panel {
    border-radius: var(--koshi-radius-panel);
}

.catalogsearch-result-index .sorter-options,
.catalogsearch-result-index .limiter-options {
    border-radius: var(--koshi-radius-control) !important;
}

.customer-account-login input.input-text,
.customer-account-create input.input-text,
.customer-account-forgotpassword input.input-text,
.catalogsearch-result-index .sorter-action {
    border-radius: var(--koshi-radius-compact-control) !important;
}

@media (min-width: 981px) {
    .catalog-product-view .page-main {
        max-width: var(--koshi-frame-width);
        margin: 0 auto;
        padding: 0;
    }

    .catalog-product-view .page-main > .columns {
        box-sizing: border-box;
        width: 100%;
        max-width: var(--koshi-frame-width);
        margin: 0;
        padding: 0;
    }

    .catalog-product-view .column.main {
        width: 100%;
        min-height: 0;
        padding: 0;
    }

    body.catalog-product-view.page-layout-1column .product-info-main {
        box-sizing: border-box;
        width: 703px;
        padding: 48px 143px 0 0;
    }

    .catalog-product-view .product-info-main > .breadcrumbs {
        box-sizing: border-box;
        order: -1;
        width: 560px;
        max-width: none;
        min-height: 18px;
        margin: 0 0 24px;
        padding: 0;
    }

    .catalog-product-view .product-info-main > .breadcrumbs .items {
        min-height: 18px;
        margin: 0;
        padding: 0;
    }

    .catalog-product-view .product-info-main > .breadcrumbs,
    .catalog-product-view .product-info-main > .breadcrumbs .items {
        font-size: 12px;
        line-height: 18px;
    }

}

@media (max-width: 980px) {

    .cms-index-index .koshi-boutique-hero--carillons,
    .cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy {
        height: auto;
        min-height: 0;
    }

    .cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy {
        position: relative;
        top: auto;
        left: auto;
        width: min(100%, 768px);
        max-width: 768px;
        grid-template-rows: none;
        padding: 96px 24px 72px;
        transform: none;
    }

    .cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy h1,
    .cms-index-index .koshi-boutique-hero--carillons .koshi-boutique-hero-copy p {
        width: auto;
        max-width: 100%;
    }

}

.page-footer {
    padding-bottom: 0 !important;
}

/* Figma product lower-sequence sizing - node 12202:15958 - 2026-07-16 */
@media (min-width: 981px) {
    .catalog-product-view .koshi-product-structure--figma {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: 346px auto 1286px;
        grid-auto-rows: auto;
        align-items: start;
    }

    .catalog-product-view .koshi-product-structure--figma > .koshi-product-reassurance {
        height: 348px;
    }

    .catalog-product-view .koshi-product-structure--figma > .koshi-product-story-grid {
        box-sizing: border-box;
        height: 1287px;
    }

}

/* Shared derived system state - WordPress / Magento - v1.18 */
.koshi-system-not-found .page-main,
.koshi-system-not-found .page-main > .columns,
.koshi-system-not-found .column.main {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background: var(--koshi-mist);
}

body.koshi-system-not-found.page-layout-2columns-right .column.main,
body.koshi-system-not-found.page-layout-2columns-left .column.main {
    float: none !important;
    width: 100% !important;
}

body.koshi-system-not-found .sidebar {
    display: none !important;
}

.koshi-system-state {
    box-sizing: border-box;
    display: grid;
    width: 100%;
    min-height: 676px;
    place-items: center;
    padding: 112px 80px;
    background: var(--koshi-mist);
    color: var(--koshi-ink);
}

.koshi-system-state__panel {
    display: grid;
    width: min(100%, 768px);
    justify-items: center;
    text-align: center;
}

.koshi-system-state__eyebrow {
    margin: 0 0 16px;
    color: var(--koshi-sage);
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 21px;
    text-transform: uppercase;
}

.koshi-system-state h1 {
    margin: 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 56px;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

.koshi-system-state__message {
    max-width: 480px;
    margin: 24px 0 0;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 24px;
}

.koshi-system-state__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-top: 40px;
}

.koshi-system-state__action {
    width: 190px;
}

@media (max-width: 780px) {
    .koshi-system-state {
        min-height: 520px;
        padding: 80px 24px;
    }

    .koshi-system-state h1 {
        font-size: 40px;
    }

    .koshi-system-state__actions,
    .koshi-system-state__action {
        width: 100%;
    }
}

/*
 * Catalog-card flow outside the exact four-product Figma state.
 * Four products keep the original two-row 3 + (1 + wide) geometry untouched.
 */
@media (min-width: 981px) {
    .koshi-shop-collection--earth.koshi-shop-collection--dynamic {
        height: calc(1960px + (var(--koshi-shop-extra-rows) * 802px));
    }

    .koshi-shop-collection--elements.koshi-shop-collection--dynamic {
        height: calc(1848px + (var(--koshi-shop-extra-rows) * 802px));
    }

    .koshi-shop-collection--dynamic .koshi-shop-collection__inner {
        height: calc(1736px + (var(--koshi-shop-extra-rows) * 802px));
    }

    .koshi-shop-grid--dynamic {
        height: calc(1540px + (var(--koshi-shop-extra-rows) * 802px));
        grid-template-rows: repeat(var(--koshi-shop-row-count), 738px);
        grid-auto-rows: 738px;
    }

    .koshi-shop-grid--dynamic .koshi-shop-card--wide {
        grid-row: auto;
    }

    .koshi-shop-grid--dynamic .koshi-shop-card--wide-paired {
        grid-column: 2 / span 2;
    }

    .koshi-shop-grid--dynamic .koshi-shop-card--wide-standalone {
        grid-column: 1 / -1;
        justify-self: center;
    }
}

/* One progress component owns the cart, shipping and payment journey. */
.checkout-cart-index .koshi-commerce-journey {
    display: flow-root;
    width: 100%;
}

.checkout-index-index .opc-progress-bar.koshi-commerce-progress,
.checkout-cart-index .opc-progress-bar.koshi-commerce-progress {
    position: relative;
    display: flex;
    width: min(100%, 520px);
    max-width: none;
    margin: 28px auto 60px;
    padding: 0;
}

.checkout-index-index .koshi-commerce-progress::before,
.checkout-cart-index .koshi-commerce-progress::before {
    position: absolute;
    z-index: 0;
    top: 16px;
    right: 0;
    left: 0;
    height: 2px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(90deg, var(--koshi-taupe) 0 34%, rgb(185 168 144 / 76%) 34% 68%, var(--koshi-taupe) 68% 100%);
    box-shadow: 0 2px 0 -1px rgb(185 168 144 / 32%);
    content: "";
    transform: rotate(-.25deg);
}

.checkout-index-index .koshi-commerce-progress::after,
.checkout-cart-index .koshi-commerce-progress::after {
    position: absolute;
    z-index: 1;
    top: 16px;
    left: 0;
    width: 16.666%;
    height: 2px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(90deg, var(--koshi-clay) 0 48%, rgb(163 69 56 / 80%) 48% 76%, var(--koshi-clay) 76% 100%);
    box-shadow: 0 2px 0 -1px rgb(163 69 56 / 28%);
    content: "";
    transform: rotate(-.25deg);
    transition: width .25s ease;
}

.koshi-commerce-progress[data-koshi-furthest-step="shipping"]::after {
    width: 50%;
}

.koshi-commerce-progress[data-koshi-furthest-step="payment"]::after {
    width: 83.333%;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item {
    --koshi-progress-icon-color: var(--koshi-taupe);
    position: relative;
    box-sizing: border-box;
    float: none;
    display: block;
    flex: 1 1 33.333%;
    width: 33.333%;
    max-width: none;
    min-height: 60px;
    margin: 0;
    padding: 0;
    text-align: center;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item::before,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item::after,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item::before,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item::after {
    display: none;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item > span,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item > span {
    position: relative;
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    color: rgb(50 42 34 / 62%);
    font-family: var(--koshi-sans);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .015em;
    line-height: 1.35;
    padding: 45px 0 0;
    text-indent: 0;
    text-align: center;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item > span::before,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item > span::before {
    position: absolute;
    z-index: 2;
    top: -5px;
    left: 50%;
    width: 44px;
    height: 44px;
    border: 1px solid transparent;
    border-radius: 50%;
    background: var(--koshi-mist) !important;
    box-shadow: none;
    content: "";
    margin: 0 !important;
    transform: translateX(-50%);
    transition: border-color .18s ease;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item > span::after,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item > span::after {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 50%;
    display: block;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 0;
    background-color: var(--koshi-progress-icon-color) !important;
    content: "";
    margin: 0 !important;
    -webkit-mask: center / contain no-repeat;
    mask: center / contain no-repeat;
    transform: translateX(-50%) rotate(-1deg);
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="cart"] > span::after,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="cart"] > span::after {
    top: 6px;
    width: 25px;
    height: 22px;
    -webkit-mask-image: url("../images/koshi-nav-cart-figma.svg");
    mask-image: url("../images/koshi-nav-cart-figma.svg");
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="shipping"] > span::after,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="shipping"] > span::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.8 13.3 20 7.2l12.4 6.1-12.2 6.4L7.8 13.3Z'/%3E%3Cpath d='m8.1 14 .2 13.1 11.9 6.2-.1-13.1M32.1 14l-.3 13.2-11.1 5.9'/%3E%3Cpath d='m13.8 10.4 12.6 6.3.1 5.5 3-1.6'/%3E%3Cpath d='M8.7 15.1 20 21' opacity='.48'/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.8 13.3 20 7.2l12.4 6.1-12.2 6.4L7.8 13.3Z'/%3E%3Cpath d='m8.1 14 .2 13.1 11.9 6.2-.1-13.1M32.1 14l-.3 13.2-11.1 5.9'/%3E%3Cpath d='m13.8 10.4 12.6 6.3.1 5.5 3-1.6'/%3E%3Cpath d='M8.7 15.1 20 21' opacity='.48'/%3E%3C/g%3E%3C/svg%3E");
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="payment"] > span::after,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item[data-koshi-commerce-step="payment"] > span::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.8 11.2c0-1.5 1.2-2.7 2.7-2.7h21c1.5 0 2.7 1.2 2.7 2.7v17.5c0 1.5-1.2 2.7-2.7 2.7h-21c-1.5 0-2.7-1.2-2.7-2.7V11.2Z'/%3E%3Cpath d='M7.2 14.3h25.4M10.8 25.6h7.8M7.4 15.7h25' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.8 11.2c0-1.5 1.2-2.7 2.7-2.7h21c1.5 0 2.7 1.2 2.7 2.7v17.5c0 1.5-1.2 2.7-2.7 2.7h-21c-1.5 0-2.7-1.2-2.7-2.7V11.2Z'/%3E%3Cpath d='M7.2 14.3h25.4M10.8 25.6h7.8M7.4 15.7h25' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._active,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._complete,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._available,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._active,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._complete,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._available {
    --koshi-progress-icon-color: var(--koshi-clay);
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._active > span,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._complete > span,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._available > span,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._active > span,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._complete > span,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._available > span {
    color: var(--koshi-ink);
}

.koshi-commerce-progress .opc-progress-bar-item > span[role="link"] {
    cursor: pointer;
}

.checkout-index-index .koshi-commerce-progress [data-koshi-commerce-step="cart"] > span a {
    position: absolute;
    z-index: 4;
    inset: 0;
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 100%;
    padding-top: 45px;
    color: inherit;
    cursor: pointer;
    text-decoration: none;
}

.checkout-index-index .koshi-commerce-progress [data-koshi-commerce-step="cart"] > span a:focus-visible {
    outline: 1px solid var(--koshi-clay);
    outline-offset: 6px;
}

.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item._active > span::before,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item > span[role="link"]:hover::before,
.checkout-index-index .koshi-commerce-progress .opc-progress-bar-item > span[role="link"]:focus-visible::before,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item._active > span::before,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item > span[role="link"]:hover::before,
.checkout-cart-index .koshi-commerce-progress .opc-progress-bar-item > span[role="link"]:focus-visible::before {
    border-color: var(--koshi-progress-icon-color) !important;
}

.checkout-index-index .shipping-address-items {
    display: grid;
    width: 100%;
    margin: 0 0 20px;
    gap: 8px;
}

.checkout-index-index .shipping-address-item {
    position: relative;
    box-sizing: border-box;
    float: none;
    display: block;
    width: 100%;
    min-height: 62px;
    margin: 0;
    border: 1px solid rgb(185 168 144 / 58%);
    border-radius: var(--koshi-radius-control);
    background: rgb(255 252 244 / 56%);
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 14px;
    line-height: 1.4;
    padding: 0;
    transition: border-color .2s ease, background-color .2s ease;
}

.checkout-index-index .shipping-address-item.not-selected-item:hover,
.checkout-index-index .shipping-address-item.selected-item {
    border-color: var(--koshi-sage);
    background: rgb(129 158 135 / 10%);
}

.checkout-index-index .shipping-address-item.selected-item {
    order: -1;
}

.checkout-index-index .shipping-address-item.selected-item::after {
    display: none;
    content: none;
}

.checkout-index-index .koshi-address-choice {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    column-gap: 10px;
    min-height: 62px;
    margin: 0;
    cursor: pointer;
    padding: 11px 13px;
}

.checkout-index-index .koshi-address-radio {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--koshi-sage-dark);
}

.checkout-index-index .koshi-address-copy,
.checkout-index-index .koshi-address-name {
    display: block;
}

.checkout-index-index .koshi-address-name {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

.checkout-index-index .koshi-address-details {
    display: flex;
    flex-wrap: wrap;
    gap: 1px 0;
    margin-top: 3px;
    color: rgb(50 42 34 / 68%);
    font-size: 12px;
    line-height: 1.45;
}

.checkout-index-index .koshi-address-details > span {
    white-space: normal;
}

.checkout-index-index .koshi-address-details > span + span::before {
    margin: 0 7px;
    color: var(--koshi-taupe);
    content: "·";
}

.checkout-index-index .shipping-address-item .edit-address-link {
    position: absolute;
    top: 8px;
    right: 10px;
    color: var(--koshi-clay);
    font-size: 11px;
}

.checkout-index-index .new-address-popup .action-show-popup {
    --koshi-button-surface: transparent;
    --koshi-button-surface-hover: var(--koshi-sage);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-dark);
    --koshi-button-foreground-hover: var(--koshi-white);
    --koshi-button-font-size: calc(0.75 * var(--koshi-ui-unit, 1rem));
    --koshi-button-padding-inline: calc(0.9375 * var(--koshi-ui-unit, 1rem));
    --koshi-button-letter-spacing: .06em;
}

.checkout-index-index .new-address-popup {
    margin: 18px 0 36px;
}

.checkout-index-index .checkout-shipping-method,
.checkout-index-index .checkout-shipping-method > .checkout-shipping-method {
    list-style: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    margin: 0 0 28px;
    padding: 0;
}

.checkout-index-index .checkout-shipping-method > .checkout-shipping-method {
    margin: 0;
}

.checkout-index-index .checkout-shipping-method .step-title {
    margin-bottom: 18px;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method,
.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tbody {
    display: block;
    width: 100%;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method thead {
    display: none;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tbody {
    display: grid;
    gap: 10px;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tr {
    position: relative;
    display: grid;
    box-sizing: border-box;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 14px;
    width: 100%;
    min-height: 78px;
    border: 1px solid rgb(185 168 144 / 58%);
    border-radius: var(--koshi-radius-control);
    background: rgb(255 252 244 / 56%);
    cursor: pointer;
    padding: 16px 18px;
    transition: border-color .2s ease, background-color .2s ease;
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tr:hover,
.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tr:has(input:checked) {
    border-color: var(--koshi-sage);
    background: rgb(129 158 135 / 10%);
}

.checkout-index-index .checkout-shipping-method .table-checkout-shipping-method td {
    display: block;
    width: auto;
    border: 0;
    padding: 0;
}

.checkout-index-index .checkout-shipping-method td.col-method:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.checkout-index-index .checkout-shipping-method td.col-method:not(:first-child) {
    grid-column: 2;
    grid-row: 1 / span 2;
    font-family: var(--koshi-sans);
    font-size: 14px;
    line-height: 1.5;
}

.checkout-index-index .koshi-shipping-method__name {
    display: block;
    font-weight: 600;
    line-height: 1.4;
}

.checkout-index-index .koshi-shipping-method__details {
    display: block;
    margin: 6px 0 0;
    color: rgb(50 42 34 / 68%);
    font-size: 12px;
    line-height: 1.45;
    list-style: none;
    padding: 0;
}

.checkout-index-index .koshi-shipping-method__details li {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin: 0;
}

.checkout-index-index .koshi-shipping-method__details span {
    position: relative;
}

.checkout-index-index .koshi-shipping-method__details span + span::before {
    position: absolute;
    left: -8px;
    color: var(--koshi-taupe);
    content: "·";
}

.checkout-index-index .checkout-shipping-method td.col-price {
    grid-column: 3;
    grid-row: 1 / span 2;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 16px;
    font-weight: 700;
    white-space: nowrap;
}

.checkout-index-index .checkout-shipping-method td.col-carrier {
    display: none;
}

.checkout-index-index .checkout-shipping-method input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--koshi-sage-dark);
}

.checkout-index-index .checkout-shipping-method .actions-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
}

.checkout-index-index .checkout-shipping-method .actions-toolbar .primary {
    float: none;
}

.checkout-index-index .checkout-shipping-method .button.action.continue.primary {
    width: min(100%, 190px);
    margin: 0;
}

/* Checkout overview: one-screen desktop composition and compact order summary. */

.checkout-index-index .opc-block-summary {
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    max-height: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
    padding: 0;
}

.checkout-index-index .opc-block-summary > .title {
    display: block;
    margin: 0 0 12px;
    border-bottom: 1px solid rgba(50, 42, 34, .14);
    font-size: clamp(24px, 2.2vw, 28px);
    line-height: 1.6;
    padding: 0 0 10px;
    order: 1;
}

.checkout-index-index .opc-block-summary .table-totals {
    width: 100%;
    margin: 10px 0 6px;
    border-top: 0;
    order: 4;
    padding-top: 0;
}

.checkout-index-index .opc-block-summary .table-totals th,
.checkout-index-index .opc-block-summary .table-totals td {
    border: 0;
    font-family: var(--koshi-sans);
    font-size: 13px;
    line-height: 1.4;
    padding: 8px 0;
}

.checkout-index-index .opc-block-summary .table-totals .totals.shipping .value {
    display: block;
    margin-top: 3px;
    color: rgb(50 42 34 / 62%);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.35;
}

.checkout-index-index .opc-block-summary .table-totals .totals.shipping .amount {
    color: var(--koshi-clay);
}

.checkout-index-index .opc-block-summary .table-totals td {
    font-weight: 600;
    padding-left: 12px;
    text-align: right;
    white-space: nowrap;
}

.checkout-index-index .opc-block-summary .table-totals .grand th,
.checkout-index-index .opc-block-summary .table-totals .grand td {
    border-top: 1px solid rgb(185 168 144 / 48%);
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: 18px;
    font-weight: 400;
    padding-top: 12px;
}

.checkout-index-index .opc-block-summary .table-totals tr:not(.grand) + tr:not(.grand) th,
.checkout-index-index .opc-block-summary .table-totals tr:not(.grand) + tr:not(.grand) td {
    border-top: 1px solid rgb(185 168 144 / 24%);
}

.checkout-index-index .opc-block-summary .items-in-cart {
    margin: 0;
    order: 2;
}

.checkout-index-index .opc-block-shipping-information {
    display: none !important;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    order: 3;
    padding: 0;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .payment-option-title {
    min-height: 0;
    margin: 0;
    border-top: 1px solid rgb(185 168 144 / 30%);
    border-bottom: 1px solid rgb(185 168 144 / 30%);
    padding: 0;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .action-toggle {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 42px;
    color: var(--koshi-ink);
    cursor: pointer;
    font-family: var(--koshi-sans);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.4;
    text-decoration: none;
    text-transform: none;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .action-toggle::after {
    display: none;
    content: none;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount__value {
    margin-left: auto;
    color: var(--koshi-clay);
    font-family: var(--koshi-sans);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount.has-discount .koshi-summary-discount__value {
    font-size: 13px;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .payment-option-content {
    margin: 0;
    border-bottom: 1px solid rgb(185 168 144 / 30%);
    padding: 12px 0 16px;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .form-discount,
.checkout-index-index .opc-block-summary .koshi-summary-discount .fieldset,
.checkout-index-index .opc-block-summary .koshi-summary-discount .field {
    margin: 0;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .field > .label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .actions-toolbar {
    margin: 8px 0 0;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .actions-toolbar .primary,
.checkout-index-index .opc-block-summary .koshi-summary-discount .action-apply,
.checkout-index-index .opc-block-summary .koshi-summary-discount .action-cancel {
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .action-apply {
    --koshi-button-surface: var(--koshi-sage);
    --koshi-button-surface-hover: var(--koshi-sage-dark);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-white);
    --koshi-button-foreground-hover: var(--koshi-white);
}

.checkout-index-index .opc-block-summary .koshi-summary-discount .action-cancel {
    --koshi-button-surface: transparent;
    --koshi-button-surface-hover: var(--koshi-sage);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-dark);
    --koshi-button-foreground-hover: var(--koshi-white);
}

.checkout-index-index .opc-block-summary .table-totals .totals.discount {
    display: none;
}

.checkout-index-index .opc-block-summary .items-in-cart > .title {
    min-height: 0;
    margin: 0;
    border-top: 0;
    border-bottom: 0;
    padding: 13px 24px 11px 0;
}

.checkout-index-index .opc-block-summary .items-in-cart > .title strong {
    display: block;
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.checkout-index-index .opc-block-summary .minicart-items-wrapper {
    max-height: 178px;
    margin: 0;
    padding: 0 4px 0 0;
}

.checkout-index-index .opc-block-summary .minicart-items .product-item {
    min-height: 0;
    border-bottom: 1px solid rgb(185 168 144 / 30%);
    padding: 12px 0;
}

.checkout-index-index .opc-block-summary .koshi-checkout-group-heading {
    display: block;
    margin: 0;
    border-bottom: 0;
    background: var(--koshi-cart-collection-color, var(--koshi-sage-soft));
    list-style: none;
    padding: 0;
}

.checkout-index-index .opc-block-summary .koshi-checkout-group-heading:not(:first-child) {
    border-top: 1px solid var(--koshi-ink-20);
}

.checkout-index-index .opc-block-summary .koshi-checkout-group-heading__brand {
    box-sizing: border-box;
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
}

.checkout-index-index .opc-block-summary .koshi-checkout-group-heading__mark {
    display: block;
    width: 72px;
    height: 32px;
    object-fit: contain;
    object-position: left center;
}

.checkout-index-index .opc-block-summary .koshi-checkout-group-heading__label {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.checkout-index-index .opc-block-summary .product-image-container {
    --koshi-checkout-summary-media-radius: 6.5px;
    width: 64px !important;
    height: 76px !important;
    border-radius: var(--koshi-checkout-summary-media-radius);
}

.checkout-index-index .opc-block-summary .product-image-wrapper {
    height: 76px !important;
    border-radius: var(--koshi-checkout-summary-media-radius);
    background: var(--koshi-media-placeholder);
    overflow: hidden;
    padding: 0 !important;
}

.checkout-index-index .opc-block-summary .product-image-photo,
.checkout-index-index .opc-block-summary .product-image-wrapper > img {
    position: static;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 76px;
    border-radius: var(--koshi-checkout-summary-media-radius);
    margin: auto;
    object-fit: cover;
}

.checkout-index-index .opc-block-summary .product-item-details {
    min-height: 76px;
    margin-left: 80px;
}

.checkout-index-index .opc-block-summary .minicart-items .product-item-name,
.checkout-index-index .opc-block-summary .minicart-items .product-item-name a {
    margin: 0;
    font-size: 14px;
    line-height: 1.25;
}

.checkout-index-index .opc-block-summary .product.options,
.checkout-index-index .opc-block-summary .details-qty {
    margin: 4px 0 0;
    color: rgb(50 42 34 / 68%);
    font-family: var(--koshi-sans);
    font-size: 11px;
    line-height: 1.35;
}

.checkout-index-index .opc-block-summary .koshi-checkout-item__name {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 .3em;
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
}

.checkout-index-index .opc-block-summary .koshi-checkout-item__tone {
    font-weight: 600;
}

.checkout-index-index .opc-block-summary .koshi-checkout-item__options {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 6px;
    margin: 6px 0 0;
    color: rgb(50 42 34 / 68%);
    font-family: var(--koshi-sans);
    font-size: 11px;
    line-height: 1.35;
}

.checkout-index-index .opc-block-summary .koshi-checkout-item__options dt,
.checkout-index-index .opc-block-summary .koshi-checkout-item__options dd {
    margin: 0;
}

.checkout-index-index .opc-block-summary .koshi-checkout-item__options dt {
    font-weight: 600;
}

/* Checkout payment flow: native Magento methods presented as one compact choice list. */
.checkout-index-index #payment .checkout-payment-method,
.checkout-index-index #payment .form.payments,
.checkout-index-index #payment .form.payments > .fieldset {
    box-sizing: border-box;
    width: 100%;
}

.checkout-index-index #payment .form.payments > .fieldset {
    margin: 0;
}

.checkout-index-index #payment .form.payments > .fieldset > .legend,
.checkout-index-index #payment .form.payments > .fieldset > input[name="payment[method]"] {
    display: none !important;
}

.checkout-index-index .checkout-payment-method .payment-methods,
.checkout-index-index .checkout-payment-method .payment-option,
.checkout-index-index .checkout-payment-method .checkout-billing-address {
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.checkout-index-index .checkout-payment-method .payment-group {
    width: 100%;
}

.checkout-index-index .checkout-payment-method .payment-group > .step-title,
.checkout-index-index .koshi-checkout-billing-title {
    min-height: 0;
    margin: 0 0 12px;
    border-bottom: 1px solid rgba(50, 42, 34, .14);
    color: var(--koshi-ink);
    font-family: var(--koshi-serif);
    font-size: clamp(24px, 2.2vw, 28px);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1.6;
    padding: 0 0 10px;
}

.checkout-index-index .checkout-payment-method .payment-method {
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 8px;
    border: 1px solid rgb(185 168 144 / 58%);
    border-radius: var(--koshi-radius-control);
    background: rgb(255 252 244 / 56%);
    overflow: hidden;
    transition: border-color .2s ease, background-color .2s ease;
}

.checkout-index-index .checkout-payment-method .payment-method:hover,
.checkout-index-index .checkout-payment-method .payment-method._active {
    border-color: var(--koshi-sage);
    background: rgb(129 158 135 / 10%);
}

.checkout-index-index .checkout-payment-method .payment-method-title {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    column-gap: 10px;
    min-height: 62px;
    margin: 0;
    border: 0;
    padding: 11px 13px;
}

.checkout-index-index .checkout-payment-method .payment-method-title input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--koshi-sage-dark);
}

.checkout-index-index .checkout-payment-method .payment-method-title input[type="radio"][style*="display: none"] + label {
    grid-column: 1 / -1;
    white-space: nowrap;
}

.checkout-index-index .checkout-payment-method .payment-method-title label {
    display: block;
    margin: 0;
    color: var(--koshi-ink);
    cursor: pointer;
    font-family: var(--koshi-sans);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.checkout-index-index .checkout-payment-method .koshi-payment-method__description {
    display: block;
    margin-top: 3px;
    color: rgb(50 42 34 / 68%);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
}

.checkout-index-index .checkout-payment-method .payment-method-content {
    box-sizing: border-box;
    width: 100%;
    margin: 0 !important;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 12px;
    line-height: 1.55;
    padding: 0 !important;
}

.checkout-index-index .checkout-payment-method .payment-method._active .payment-method-title {
    border-bottom: 1px solid rgb(129 158 135 / 28%);
}

.checkout-index-index .checkout-payment-method .payment-method-content p,
.checkout-index-index .checkout-payment-method .payment-method-note {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    color: rgb(50 42 34 / 72%);
    font-size: 12px;
    line-height: 1.55;
    padding: 12px 13px 14px 49px;
}

.checkout-index-index .checkout-payment-method .payment-method-content .items.check.payable {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    color: rgb(50 42 34 / 72%);
    font-size: 12px;
    line-height: 1.55;
    padding: 12px 13px 14px 49px;
}

.checkout-index-index .checkout-payment-method .items.check.payable dt.title {
    margin: 0 0 2px;
    color: var(--koshi-ink);
    font-size: inherit;
    font-weight: 600;
    line-height: inherit;
}

.checkout-index-index .checkout-payment-method .items.check.payable dd.content {
    margin: 0 0 10px;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.checkout-index-index .checkout-payment-method .items.check.payable dd.content:last-child {
    margin-bottom: 0;
}

.checkout-index-index .checkout-payment-method .items.check.payable address {
    margin: 0;
    color: inherit;
    font-style: normal;
    line-height: inherit;
}

.checkout-index-index .checkout-payment-method .checkout-agreements-block {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    border-top: 1px solid rgb(129 158 135 / 28%);
    padding: 13px;
}

.checkout-index-index .checkout-payment-method .checkout-agreements,
.checkout-index-index .checkout-payment-method .checkout-agreement {
    width: 100%;
    margin: 0;
}

.checkout-index-index .checkout-payment-method .checkout-agreement {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    column-gap: 10px;
}

.checkout-index-index .checkout-payment-method .checkout-agreement input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--koshi-clay);
}

.checkout-index-index .checkout-payment-method .checkout-agreement > .label {
    display: block;
    width: 100%;
    margin: 0;
}

.checkout-index-index .checkout-payment-method .checkout-agreement .action-show {
    display: block;
    width: 100%;
    margin: 0;
    border: 0;
    background: transparent;
    color: var(--koshi-clay);
    cursor: pointer;
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    padding: 0;
    text-align: left;
    text-decoration: none;
}

.checkout-index-index .checkout-payment-method .koshi-checkout-agreement-message {
    margin: 10px 0 0 36px;
    color: var(--koshi-clay);
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}

.checkout-index-index .checkout-payment-method .checkout-agreement.koshi-agreement-attention {
    border-radius: var(--koshi-radius-compact-control);
    animation: koshi-checkout-agreement-attention 900ms ease-out;
}

.checkout-index-index #payment .action.checkout.koshi-agreements-pending {
    --koshi-button-surface: var(--koshi-taupe);
    --koshi-button-surface-hover: var(--koshi-taupe);
    --koshi-button-border: var(--koshi-taupe);
    --koshi-button-border-hover: var(--koshi-taupe);
    --koshi-button-foreground: rgb(50 42 34 / 68%);
    --koshi-button-foreground-hover: rgb(50 42 34 / 68%);
    cursor: not-allowed;
}

@keyframes koshi-checkout-agreement-attention {
    0%, 100% {
        background: transparent;
        box-shadow: 0 0 0 0 rgb(164 73 61 / 0%);
    }

    35%, 70% {
        background: rgb(164 73 61 / 10%);
        box-shadow: 0 0 0 5px rgb(164 73 61 / 12%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .checkout-index-index .checkout-payment-method .checkout-agreement.koshi-agreement-attention {
        animation: none;
        background: rgb(164 73 61 / 10%);
        box-shadow: 0 0 0 3px rgb(164 73 61 / 16%);
    }
}

.checkout-index-index .checkout-payment-method .payment-method-content .actions-toolbar {
    margin: 14px 0 0;
}

.checkout-index-index .checkout-payment-method .payment-method-content .actions-toolbar .primary,
.checkout-index-index .checkout-payment-method .payment-method-content .action.checkout {
    float: none;
    width: 100%;
    max-width: none;
    min-height: 48px;
    margin: 0;
}

.checkout-index-index .checkout-payment-method .checkout-billing-address {
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
}

.checkout-index-index .checkout-payment-method .billing-address-same-as-shipping-block {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin: 0;
    border-bottom: 1px solid rgb(185 168 144 / 34%);
    padding: 1px 0 12px;
}

.checkout-index-index .checkout-payment-method .billing-address-same-as-shipping-block input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--koshi-sage-dark);
}

.checkout-index-index .checkout-payment-method .billing-address-same-as-shipping-block label {
    margin: 0;
    color: var(--koshi-ink);
    font-size: 13px;
    line-height: 1.45;
}

.checkout-index-index .checkout-payment-method .billing-address-details {
    box-sizing: border-box;
    margin: 12px 0 0;
    border: 1px solid rgb(185 168 144 / 58%);
    border-radius: var(--koshi-radius-control);
    background: rgb(255 252 244 / 56%);
    color: rgb(50 42 34 / 76%);
    font-size: 12px;
    line-height: 1.55;
    padding: 12px 13px;
}

.checkout-index-index .checkout-payment-method .billing-address-details .action-edit-address {
    margin-top: 10px;
}

.checkout-index-index .checkout-payment-method .payment-option-title {
    min-height: 0;
    margin: 0;
    border-top: 0;
    border-bottom: 1px solid rgba(50, 42, 34, .14);
    padding: 0 28px 10px 0;
}

.checkout-index-index .checkout-payment-method .payment-option-title .action-toggle {
    display: block;
    width: 100%;
    color: var(--koshi-ink);
    font-family: var(--koshi-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .055em;
    line-height: 1.4;
    text-align: left;
    text-transform: uppercase;
}

.checkout-index-index .checkout-payment-method .payment-option-content {
    margin: 0;
    padding: 12px 0 0;
}

.checkout-index-index .checkout-payment-method .payment-option-content .fieldset {
    margin: 0;
}

.checkout-index-index .checkout-payment-method .payment-option-content .actions-toolbar {
    margin-top: 10px;
}

.checkout-index-index .checkout-payment-method .payment-option-content .action-apply {
    min-height: 44px;
}

@media (min-width: 981px) {
    .checkout-index-index #payment .form.payments > .fieldset {
        display: grid;
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
        column-gap: 28px;
        row-gap: 24px;
        align-items: start;
    }

    .checkout-index-index #checkout-payment-method-load {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .checkout-index-index #payment .checkout-billing-address {
        grid-column: 2;
        grid-row: 1;
    }

    .checkout-index-index #payment .no-quotes-block {
        grid-column: 1 / -1;
    }
}

@media (max-width: 980px) {
    .checkout-index-index #payment .checkout-billing-address {
        margin-top: 24px;
    }
}

@media (max-width: 980px) {
    .checkout-index-index .opc-sidebar .modal-inner-wrap {
        background: var(--koshi-mist);
    }
}

@media (min-width: 981px) {
    .checkout-index-index .checkout-container {
        --koshi-checkout-action-gutter: 64px;
        position: relative;
        padding-bottom: 46px;
    }

    .checkout-index-index .opc-wrapper {
        width: calc(100% - 344px);
        max-width: none;
        padding-right: 28px;
    }

    .checkout-index-index .opc-sidebar {
        position: static;
        top: auto;
        width: 324px;
    }

    .checkout-index-index .opc-wrapper > .opc {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 28px;
        align-items: start;
    }

    .checkout-index-index .opc-wrapper > .opc > #shipping {
        grid-column: 1;
    }

    .checkout-index-index .opc-wrapper > .opc > #opc-shipping_method {
        grid-column: 2;
    }

    .checkout-index-index .opc-wrapper > .opc > #payment {
        grid-column: 1 / -1;
    }

    .checkout-index-index #opc-shipping_method,
    .checkout-index-index #opc-shipping_method .checkout-shipping-method {
        position: static;
    }

    .checkout-index-index #shipping .step-content {
        margin-bottom: 0;
    }

    .checkout-index-index .checkout-container .new-address-popup,
    .checkout-index-index #shipping-method-buttons-container {
        position: absolute;
        z-index: 2;
        bottom: 0;
        display: flex;
        align-items: center;
        width: 200px;
        min-height: 48px;
        margin: 0;
    }

    .checkout-index-index .checkout-container .new-address-popup {
        left: var(--koshi-checkout-action-gutter);
    }

    .checkout-index-index #shipping-method-buttons-container {
        right: var(--koshi-checkout-action-gutter);
    }

    .checkout-index-index .checkout-container .new-address-popup .action-show-popup,
    .checkout-index-index #shipping-method-buttons-container .button.action.continue.primary {
        box-sizing: border-box;
        justify-content: center;
        width: 100%;
        min-height: 48px;
        margin: 0;
    }

    .checkout-index-index #shipping-method-buttons-container > .primary {
        width: 100%;
    }

    .checkout-index-index .step-title {
        margin-bottom: 12px;
        font-size: clamp(24px, 2.2vw, 28px);
        padding-bottom: 10px;
    }

    .checkout-index-index .shipping-address-item {
        font-size: 13px;
        line-height: 1.4;
        padding: 0;
    }

    .checkout-index-index .new-address-popup {
        margin: 12px 0 20px;
    }

    .checkout-index-index .checkout-shipping-method,
    .checkout-index-index .checkout-shipping-method > .checkout-shipping-method {
        margin-bottom: 0;
    }

    .checkout-index-index .checkout-shipping-method .step-title {
        margin-bottom: 12px;
    }

    .checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tbody {
        gap: 8px;
    }

    .checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tr {
        min-height: 62px;
        column-gap: 10px;
        padding: 11px 13px;
    }

    .checkout-index-index .koshi-shipping-method__details {
        margin-top: 3px;
    }

    .checkout-index-index .checkout-shipping-method .actions-toolbar {
        margin-top: 12px;
    }
}

@media (max-width: 680px) {
    .checkout-index-index .opc-progress-bar.koshi-commerce-progress {
        width: calc(100% - 40px);
    }

    .checkout-cart-index .opc-progress-bar.koshi-commerce-progress {
        width: 100%;
    }

    .checkout-index-index .opc-progress-bar {
        margin: 28px auto 60px;
        padding: 20px 16px 26px;
    }

    .checkout-index-index .opc-progress-bar-item > span {
        width: 100%;
        min-width: 0;
        font-size: 13px;
        padding-right: 0;
    }

    .checkout-index-index .opc-block-summary {
        max-height: none;
        border: 0;
        overflow: visible;
        padding: 18px 16px 0;
    }

    .checkout-index-index .shipping-address-item {
        padding: 0;
    }

    .checkout-index-index .koshi-address-choice {
        grid-template-columns: 26px minmax(0, 1fr);
        padding: 15px;
    }

    .checkout-index-index .checkout-shipping-method .table-checkout-shipping-method tr {
        grid-template-columns: 26px minmax(0, 1fr);
        padding: 15px;
    }

    .checkout-index-index .checkout-shipping-method td.col-method:not(:first-child) {
        grid-row: 1;
    }

    .checkout-index-index .checkout-shipping-method td.col-price {
        grid-column: 2;
        grid-row: 2;
        margin-top: 6px;
        font-size: 15px;
    }

    .checkout-index-index .checkout-shipping-method .button.action.continue.primary {
        width: 100%;
    }
}

/*
 * Checkout payment composition.
 * Billing and payment keep Magento's native observables; only their shared
 * address/button presentation and visual order are adapted here.
 */
.checkout-index-index #payment .checkout-billing-address > .fieldset {
    margin: 12px 0 0;
    border: 0;
    padding: 0;
}

.checkout-index-index #payment .koshi-billing-address-list {
    display: grid;
    gap: 8px;
}

.checkout-index-index #payment .koshi-billing-address-item {
    cursor: pointer;
}

.checkout-index-index #payment .checkout-billing-address .billing-address-details {
    margin: 12px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.checkout-index-index #payment .koshi-address-choice--static {
    cursor: default;
}

.checkout-index-index #payment .koshi-address-radio--static {
    position: relative;
    display: block;
    box-sizing: border-box;
    border: 1px solid var(--koshi-sage-dark);
    border-radius: 50%;
}

.checkout-index-index #payment .koshi-address-radio--static::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--koshi-sage-dark);
    content: "";
    transform: translate(-50%, -50%);
}

.checkout-index-index #payment .checkout-billing-address .action-edit-address,
.checkout-index-index #payment .koshi-billing-new-address {
    margin: 14px 0 0;
}

.checkout-index-index #payment .checkout-billing-address .action-edit-address {
    --koshi-button-surface: transparent;
    --koshi-button-surface-hover: var(--koshi-sage);
    --koshi-button-border: var(--koshi-sage);
    --koshi-button-border-hover: var(--koshi-sage-dark);
    --koshi-button-foreground: var(--koshi-dark);
    --koshi-button-foreground-hover: var(--koshi-white);
    --koshi-button-height: calc(3 * var(--koshi-ui-unit, 1rem));
    --koshi-button-padding-inline: calc(0.9375 * var(--koshi-ui-unit, 1rem));
    --koshi-button-font-weight: 600;
    --koshi-button-letter-spacing: .06em;
    width: min(100%, 200px);
}

.checkout-index-index #payment .koshi-billing-address-actions {
    margin: 14px 0 0;
}

.checkout-index-index #payment .koshi-billing-address-actions > .primary {
    display: flex;
    float: none;
    flex-wrap: wrap;
    gap: 10px;
}

.checkout-index-index #payment .koshi-billing-address-actions .action {
    margin: 0;
}

.checkout-index-index #payment .koshi-checkout-payment-actions {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin-top: 14px;
}

.checkout-index-index #payment .koshi-checkout-payment-actions[hidden] {
    display: none;
}

.checkout-index-index #payment .koshi-checkout-payment-actions > .actions-toolbar,
.checkout-index-index #payment .koshi-checkout-payment-actions > .actions-toolbar > .primary {
    float: none;
    display: block;
    width: min(100%, 200px);
    margin: 0;
    line-height: 0;
}

.checkout-index-index #payment .koshi-checkout-payment-actions .action.checkout {
    width: 100%;
    min-height: 48px;
    margin: 0;
}

@media (min-width: 981px) {
    .checkout-index-index #payment .form.payments > .fieldset {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
        align-items: start;
    }

    .checkout-index-index #payment .checkout-billing-address {
        grid-column: 1;
        grid-row: 1;
    }

    .checkout-index-index #payment .checkout-billing-address .action-edit-address {
        position: absolute;
        z-index: 2;
        bottom: 0;
        left: var(--koshi-checkout-action-gutter);
        margin: 0;
    }

    .checkout-index-index #checkout-payment-method-load {
        grid-column: 2;
        grid-row: 1;
    }

    .checkout-index-index #payment .koshi-checkout-payment-actions {
        position: absolute;
        z-index: 2;
        right: var(--koshi-checkout-action-gutter);
        bottom: 0;
        width: 200px;
        min-height: 48px;
        margin: 0;
    }
}

@media (max-width: 980px) {
    .checkout-index-index #payment .form.payments > .fieldset {
        display: flex;
        flex-direction: column;
    }

    .checkout-index-index #payment .checkout-billing-address {
        order: 1;
        margin-top: 0;
    }

    .checkout-index-index #checkout-payment-method-load {
        order: 2;
        margin-top: 24px;
    }

    .checkout-index-index #payment .koshi-checkout-payment-actions {
        order: 3;
    }
}

@media (max-width: 680px) {
    .checkout-index-index #payment .koshi-checkout-payment-actions > .actions-toolbar,
    .checkout-index-index #payment .koshi-checkout-payment-actions > .actions-toolbar > .primary {
        width: 100%;
    }
}

/* Platform placement; shared/ui/koshi-header.css owns header layout. */
.page-header { position: relative; z-index: 70; width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: transparent; }
.page-header .header.content { width: 100%; max-width: none; min-height: 0; margin: 0; padding: 0; }
.page-header .header.content::before, .page-header .header.content::after { display: none; }
.koshi-header { --koshi-header-font-size: 1.6rem; }
.cms-index-index .page-wrapper { position: relative; }
.cms-index-index .page-header:has(.koshi-header:not(.is-compact)) { position: absolute; inset: 0 0 auto; }
/* Magento's root is 10px; shared footer em geometry uses a 16px base. */
.koshi-footer { --koshi-footer-font-size: 1.6rem; }

/* Keep the payment handoff covered until the bank navigation begins. */
.checkout-index-index.koshi-payment-pending .loading-mask,
.koshi-monetico-redirect--pending {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(20, 24, 21, .88);
    color: #fffdf4;
}
.checkout-index-index.koshi-payment-pending .loading-mask .loader img,
.koshi-monetico-redirect--pending h1,
.koshi-monetico-redirect--pending form { visibility: hidden; }
.checkout-index-index.koshi-payment-pending .loading-mask::after,
.koshi-monetico-redirect--pending::after {
    content: '';
    position: absolute;
    top: calc(50% - 24px);
    left: calc(50% - 24px);
    width: 48px;
    height: 48px;
    border: 3px solid rgba(255, 253, 244, .25);
    border-top-color: #fffdf4;
    border-radius: 50%;
    animation: koshi-payment-spin .9s linear infinite;
}
.koshi-monetico-redirect--pending > p { position: absolute; top: calc(50% + 40px); width: 100%; text-align: center; }
@keyframes koshi-payment-spin { to { transform: rotate(360deg); } }