/*
Theme Name: KettleClub
Theme URI: https://www.kettleclub.co.uk/
Author: Jeff Nicholls
Description: Bespoke WooCommerce theme for KettleClub luxury watches.
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 8.1
Tested up to: 6.9
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kettleclub
Tags: e-commerce, woocommerce
*/

:root {
    --kc-color-primary: #00B0DB;
    --kc-color-ink:     #011525;
    --kc-color-surface: #EDEDED;
    --kc-color-muted:   #787878;
    --kc-color-bg:      #ffffff;
    --kc-color-line:    #E2E5E8;

    --kc-font-display: "Cormorant Garamond", "Times New Roman", serif;
    --kc-font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    --kc-container:    117.5rem; /* 1880px @ 16px root */
}

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

html { -webkit-text-size-adjust: 100%; overflow-x: hidden; overflow-x: clip; }

body {
    margin: 0;
    background: var(--kc-color-bg);
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: 1.0625rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--kc-font-display);
    color: var(--kc-color-ink);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.005em;
    margin: 0 0 .75em;
}

a {
    color: var(--kc-color-primary);
    text-decoration: none;
}
a:hover,
a:focus { text-decoration: underline; }

img { max-width: 100%; height: auto; display: block; }

.skip-link {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.skip-link:focus {
    left: 0;
    top: 0;
    width: auto;
    height: auto;
    padding: .5rem 1rem;
    background: var(--kc-color-ink);
    color: #fff;
    z-index: 1000;
}

/* ---------------------------------------------------------
   WORLD CLOCKS — strip above the footer
--------------------------------------------------------- */
.kc-clocks {
    background: var(--kc-color-ink);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding: 2.25rem 0;
}
.kc-clocks__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem 2rem;
}
.kc-clocks__city {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    color: rgba(255, 255, 255, 0.78);
}
.kc-clocks__face {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    color: rgba(255, 255, 255, 0.78);
}
.kc-clocks__hand { transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
.kc-clocks__name {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    letter-spacing: .04em;
    color: rgba(255, 255, 255, 0.85);
    white-space: nowrap;
}
@media (max-width: 720px) {
    /* Single-row marquee that sways back and forth (no loop): the track drifts
       left until its end meets the viewport edge, eases, then drifts back —
       CSS `alternate` ping-pongs it. The section clips the overflow. */
    .kc-clocks { overflow: hidden; padding: 1.4rem 0; }
    .kc-clocks__inner {
        flex-wrap: nowrap;
        width: max-content;
        max-width: none;
        margin: 0;
        justify-content: flex-start;
        gap: 1.6rem;
        animation: kc-clocks-sway 15s ease-in-out infinite alternate;
        will-change: transform;
    }
    .kc-clocks__city { flex: 0 0 auto; }
    .kc-clocks__face { width: 32px; height: 32px; }
    .kc-clocks__name { font-size: .78rem; }
}
@keyframes kc-clocks-sway {
    from { transform: translateX(0); }
    /* end = align the track's right edge (incl. padding) to the viewport right;
       min(0px, …) guards the case where the row already fits (no movement) */
    to   { transform: translateX(min(0px, calc(100vw - 100%))); }
}
@media (max-width: 720px) and (prefers-reduced-motion: reduce) {
    .kc-clocks__inner { animation: none; }
}

/* ---------------------------------------------------------
   SITE FOOTER
--------------------------------------------------------- */
.site-footer {
    background: var(--kc-color-ink);
    color: rgba(255, 255, 255, 0.78);
    padding: 5rem 0 2rem;
    font-family: var(--kc-font-body);
}
.site-footer__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.site-footer a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color .2s ease;
}
.site-footer a:hover,
.site-footer a:focus {
    color: var(--kc-color-primary);
    text-decoration: none;
}

/* === Top: 4-column link grid === */
.site-footer__columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 1.4fr;
    gap: 3rem 2.5rem;
    padding-bottom: 3.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.site-footer__heading {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .25em;
    color: var(--kc-color-primary);
    margin: 0 0 1.5rem;
}
/* the heading text is a button (so it can become the mobile accordion toggle);
   reset it to look exactly like the heading on desktop */
.site-footer__heading-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0;
    margin: 0;
    background: none;
    border: 0;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    color: inherit;
    text-align: left;
    cursor: text;            /* not interactive on desktop */
}
.site-footer__heading-chev { display: none; }   /* chevron is mobile-only */
.site-footer__heading--sr { /* visually hidden but readable to screen readers */ }
.site-footer__links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.site-footer__links a {
    font-size: .92rem;
    line-height: 1.3;
}

/* Contact column */
.site-footer__contact {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.site-footer__contact li {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    font-size: .92rem;
    line-height: 1.4;
}
.site-footer__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: .15em;
    color: var(--kc-color-primary);
}
.site-footer__contact a { color: rgba(255, 255, 255, 0.85); }

.site-footer__social {
    display: flex;
    gap: .75rem;
}
.site-footer__social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.85);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.site-footer__social a:hover {
    background: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    color: #fff;
}
.site-footer__social svg { width: 14px; height: 14px; display: block; }

/* === Newsletter === */
.site-footer__newsletter {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 3rem 4rem;
    align-items: center;
    padding: 3rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.site-footer__newsletter-intro p {
    font-size: .92rem;
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
    line-height: 1.5;
    max-width: 28rem;
}
.site-footer__form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: .75rem;
}
.site-footer__form input {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    padding: .9rem 1rem;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1;
    border-radius: 2px;
    transition: border-color .2s ease;
}
.site-footer__form input::placeholder {
    color: rgba(255, 255, 255, 0.4);
}
.site-footer__form input:focus {
    outline: none;
    border-color: var(--kc-color-primary);
}
.site-footer__form-btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    background: #fff;
    color: var(--kc-color-ink);
    border: 1px solid #fff;
    padding: .95rem 1.5rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .22em;
    line-height: 1;
    border-radius: 2px;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
    white-space: nowrap;
}
.site-footer__form-btn:hover {
    background: transparent;
    color: #fff;
}
.site-footer__form-btn svg { width: 13px; height: 13px; transition: transform .25s ease; }
.site-footer__form-btn:hover svg { transform: translateX(3px); }

/* === Bottom: logo + copyright === */
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-top: 2.5rem;
}
.site-footer__logo { display: inline-flex; }
.site-footer__logo img,
.site-footer__logo .custom-logo {
    height: 44px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.85;
}
.site-footer__copyright {
    font-size: .78rem;
    color: rgba(255, 255, 255, 0.45);
    margin: 0;
    letter-spacing: 0.01em;
}

/* === Responsive === */
@media (max-width: 1100px) {
    .site-footer__columns { grid-template-columns: repeat(2, 1fr); }
    .site-footer__newsletter { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    /* Tightened mobile rhythm — the footer stacks, so the desktop's generous
       column/section spacing reads as dead space on a phone. */
    .site-footer { padding: 1.75rem 0 1.25rem; }
    .site-footer__columns { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; padding-bottom: 1.75rem; }
    .site-footer__form { grid-template-columns: 1fr; }
    .site-footer__newsletter { padding: 1.75rem 0; gap: 1.1rem; }
    .site-footer__newsletter-intro p { margin-top: .4rem; }
    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding-top: 1.5rem;
    }

    /* --- Footer link columns become accordions (JS adds .is-accordion;
       no-JS keeps them open as a normal stacked list). --- */
    .site-footer__columns.is-accordion { grid-template-columns: 1fr; gap: 0; padding-bottom: 1.5rem; }
    .is-accordion .site-footer__col[data-kc-fcol] {
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }
    .is-accordion .site-footer__col[data-kc-fcol]:last-of-type { border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
    .is-accordion .site-footer__col[data-kc-fcol] .site-footer__heading { margin: 0; }
    .is-accordion .site-footer__heading-btn { cursor: pointer; padding: .9rem 0; }
    .is-accordion .site-footer__heading-chev {
        display: block;
        width: 12px;
        height: 8px;
        flex-shrink: 0;
        transition: transform .3s ease;
    }
    .is-accordion .site-footer__col.is-open .site-footer__heading-chev { transform: rotate(180deg); }
    /* collapse via max-height (lists are short, so the eased timing reads fine) */
    .is-accordion .site-footer__links-wrap {
        max-height: 0;
        overflow: hidden;
        transition: max-height .4s cubic-bezier(.4, 0, .2, 1);
    }
    .is-accordion .site-footer__col.is-open .site-footer__links-wrap { max-height: 22rem; }
    .is-accordion .site-footer__links { padding-bottom: .9rem; gap: .8rem; }
    /* contact block sits below the accordions */
    .is-accordion .site-footer__col--contact { margin-top: 1.4rem; }
    .site-footer__contact { margin-bottom: 1.1rem; gap: .8rem; }
}
@media (max-width: 480px) {
    .site-footer__columns { grid-template-columns: 1fr; }
}

.site-main {
    padding: 2rem 1rem;
    max-width: var(--kc-container);
    margin: 0 auto;
}

/* ---------------------------------------------------------
   HEADER
--------------------------------------------------------- */

.site-header { background: #fff; }

/* ---------- Top promo bar (thin, single line) ---------- */
.kc-topbar {
    background: var(--kc-color-ink);
    color: #e8ecf0;
    font-size: .75rem;
    padding: .55rem 1.5rem;
    letter-spacing: .01em;
}
.kc-topbar__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
}
/* Rotating USPs — all slides share a single CSS-grid cell so they stack
   on top of each other while still contributing in-flow size to the bar.
   Fading is a class-toggle transition, JS driven (see functions.php). */
.kc-topbar__rotator {
    display: inline-grid;
    grid-template-areas: "stack";
    place-items: center;
    min-height: 20px;
    text-align: center;
}
.kc-topbar__slide {
    grid-area: stack;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    line-height: 1.3;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .55s ease, transform .55s ease;
    pointer-events: none;
}
.kc-topbar__slide.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.kc-topbar__slide-icon {
    display: inline-flex;
    color: var(--kc-color-primary);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
.kc-topbar__slide-icon svg { width: 100%; height: 100%; display: block; }
.kc-topbar__slide-text strong { color: #fff; font-weight: 600; margin-right: .25em; }

@media (prefers-reduced-motion: reduce) {
    .kc-topbar__rotator { min-height: 0; height: auto; overflow: visible; }
    .kc-topbar__slide {
        position: static;
        transform: none;
        transition: none;
        opacity: 0;
    }
    .kc-topbar__slide.is-active { opacity: 1; }
    .kc-topbar__slide:not(.is-active) { display: none; }
}
.kc-topbar__edge {
    font-size: .72rem;
    color: #b8c0c8;
    letter-spacing: .06em;
}
.kc-topbar__edge--right { text-align: right; }

/* ---------- Main header bar (3-col: nav | logo | actions) ---------- */
.kc-header {
    border-bottom: 1px solid var(--kc-color-line);
    padding: 1rem 1.5rem;
}
.kc-header__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    column-gap: 2rem;
}

/* Logo (center) */
.kc-logo {
    justify-self: center;
    display: inline-flex;
    align-items: center;
}
.kc-logo img { height: 60px; width: auto; display: block; }

/* Nav (left) */
.kc-nav--left { justify-self: start; }
.kc-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 2.25rem;
}
.kc-nav__list a {
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .8125rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .2em;
    text-decoration: none;
    padding: .55rem 0;
    display: inline-flex;
    align-items: center;
    gap: .35em;
    transition: color .2s ease;
}
.kc-nav__list a:hover,
.kc-nav__list a:focus-visible { color: var(--kc-color-primary); text-decoration: none; }
.kc-caret {
    display: inline-flex;
    align-items: center;
    opacity: .55;
    margin-left: .05em;
    transition: transform .25s ease, opacity .2s ease;
}
.kc-caret svg { width: 15px; height: 15px; display: block; }
.kc-nav__list a:hover .kc-caret { opacity: 1; transform: translateY(2px); }

/* Actions (right) — borderless icon row, Timex-style */
.kc-actions {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: .15rem;
}
.kc-action {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--kc-color-ink);
    text-decoration: none;
    border-radius: 4px;
    position: relative;
    transition: background-color .15s ease, color .15s ease;
}
.kc-action:hover,
.kc-action:focus {
    background-color: var(--kc-color-surface);
    color: var(--kc-color-ink);
    text-decoration: none;
}
.kc-action .kc-icon { width: 20px; height: 20px; }

/* WhatsApp — extended into a status pill: icon + live "Online now" label */
.kc-action--whatsapp {
    width: auto;
    gap: .55rem;
    padding: 0 .95rem 0 .7rem;
    color: #25D366;
    background: rgba(37, 211, 102, .08);
    border-radius: 999px;
}
.kc-action--whatsapp:hover,
.kc-action--whatsapp:focus { background-color: rgba(37, 211, 102, .16); color: #1ebe5a; }
.kc-action--whatsapp .kc-icon { width: 22px; height: 22px; }
.kc-action__status {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--kc-color-ink);
    white-space: nowrap;
}
.kc-action__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #25D366;
    animation: kc-wa-pulse 2.2s ease-out infinite;
}
@keyframes kc-wa-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5); }
    70%  { box-shadow: 0 0 0 6px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .kc-action__dot { animation: none; }
}
/* narrow screens — collapse back to the bare icon */
@media (max-width: 860px) {
    .kc-action--whatsapp { width: 40px; padding: 0; gap: 0; background: none; border-radius: 4px; }
    .kc-action__status { display: none; }
}

.kc-cart-count {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #e02929;
    color: #fff;
    font-size: .65rem;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    font-family: var(--kc-font-body);
}
.kc-cart-count.is-empty { display: none; }

/* ---------------------------------------------------------
   MEGA MENU (Timex-style left drawer)
--------------------------------------------------------- */
.site-header { position: relative; z-index: 50; }

/* Full-viewport stage starting below the header (header height set by JS). */
.kc-mega-stage {
    position: fixed;
    top: var(--kc-header-h, 130px);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(1, 21, 37, 0.35);
    backdrop-filter: blur(1px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility 0s linear .25s;
    z-index: 40;
}
.kc-mega-stage.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .25s ease;
    /* Hide the native cursor over the backdrop; our floating element stands in for it. */
    cursor: none;
}
.kc-mega-stage.is-open .kc-mega-stage__drawer,
.kc-mega-stage.is-open .kc-mega-stage__drawer * { cursor: auto; }
.kc-mega-stage.is-open .kc-mega-stage__drawer a,
.kc-mega-stage.is-open .kc-mega-stage__drawer button { cursor: pointer; }

/* Floating close-cursor — JS tracks position via the outer wrapper,
   inner does the scale/opacity entry animation. */
.kc-mega-stage__cursor {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 50;
    transform: translate3d(-200px, -200px, 0); /* off-screen by default */
    will-change: transform;
}
.kc-mega-stage__cursor-inner {
    width: 56px;
    height: 56px;
    transform: translate(-50%, -50%) scale(0.4);
    opacity: 0;
    transition: opacity .18s ease, transform .25s cubic-bezier(.34, 1.56, .64, 1);
    filter: drop-shadow(0 4px 12px rgba(1, 21, 37, .18));
}
.kc-mega-stage__cursor.is-visible .kc-mega-stage__cursor-inner {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.kc-mega-stage__cursor-inner svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Touch devices: never show the floating cursor (no hover). */
@media (hover: none) {
    .kc-mega-stage.is-open { cursor: auto; }
    .kc-mega-stage__cursor { display: none; }
}

/* The actual sliding drawer (anchored to the left edge). */
.kc-mega-stage__drawer {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 780px;
    max-width: 92vw;
    background: #fff;
    box-shadow: 4px 0 32px -8px rgba(1, 21, 37, .15);
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform .35s cubic-bezier(.22, .61, .36, 1);
}
.kc-mega-stage.is-open .kc-mega-stage__drawer { transform: translateX(0); }

.kc-mega {
    display: none;
    padding: 2.75rem 3rem;
}
.kc-mega.is-active { display: block; }
.kc-mega__inner {
    display: grid;
    grid-template-columns: 0.8fr 1.4fr;
    gap: 3rem;
}

.kc-mega__heading {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}

.kc-mega__col--featured .kc-mega__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .9rem;
}
.kc-mega__col--featured .kc-mega__links a {
    font-family: var(--kc-font-display);
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    text-decoration: none;
    line-height: 1.15;
    transition: color .15s ease;
}
.kc-mega__col--featured .kc-mega__links a:hover { color: var(--kc-color-primary); }

/* "New Arrivals" sub-heading + 2×2 product cards under Featured */
.kc-mega__heading--sub {
    margin-top: 2.25rem;
    margin-bottom: 1rem;
}
.kc-mega__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.kc-mega__card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.kc-mega__card-img {
    width: 100%;
    aspect-ratio: 4 / 5;
    background: var(--kc-color-surface);
    overflow: hidden;
    border-radius: 2px;
    margin-bottom: .6rem;
}
.kc-mega__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.kc-mega__card:hover .kc-mega__card-img img { transform: scale(1.04); }
.kc-mega__card-label {
    font-family: var(--kc-font-body);
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.3;
}
.kc-mega__card-brand {
    font-size: .62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--kc-color-muted);
}
.kc-mega__card-ref {
    font-size: .9rem;
    font-weight: 500;
    color: var(--kc-color-ink);
}
.kc-mega__card:hover .kc-mega__card-ref { color: var(--kc-color-primary); }

.kc-mega__col--cats {
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
}
.kc-mega__group-head {
    display: flex;
    align-items: baseline;
    gap: 1.25rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--kc-color-line);
    padding-bottom: .65rem;
}
.kc-mega__group-head .kc-mega__heading { margin: 0; flex: 0 0 auto; }
.kc-mega__shopall {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: .35em;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--kc-color-ink);
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s ease;
}
.kc-mega__shopall svg { width: 12px; height: 12px; }
.kc-mega__shopall:hover { color: var(--kc-color-primary); text-decoration: none; }

.kc-mega__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
    row-gap: .85rem;
}
.kc-mega__list a {
    font-family: var(--kc-font-body);
    font-size: .92rem;
    color: var(--kc-color-ink);
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s ease;
}
.kc-mega__list a:hover { color: var(--kc-color-primary); }

/* Hero column dropped in left-drawer mode — page shows through to the right of the drawer. */
.kc-mega__col--hero { display: none; }

.kc-nav__list .menu-item-has-mega .kc-caret { transition: transform .25s ease, opacity .2s ease; }
.kc-nav__list .menu-item-has-mega.is-mega-open > a { color: var(--kc-color-primary); }
.kc-nav__list .menu-item-has-mega.is-mega-open .kc-caret { transform: rotate(180deg); opacity: 1; }

@media (max-width: 900px) {
    .kc-mega-stage { display: none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .kc-header__inner { column-gap: 1.25rem; }
    .kc-nav__list { gap: 1.5rem; }
    .kc-nav__list a { letter-spacing: .15em; }
}
@media (max-width: 900px) {
    /* Collapse to: nav (hidden / mobile button later) | logo | actions */
    .kc-topbar__inner { grid-template-columns: 1fr; }
    .kc-topbar__edge { display: none; }
    .kc-header__inner { grid-template-columns: auto 1fr auto; }
    .kc-nav--left { display: none; }            /* desktop nav hidden; the menu trigger takes over */
    .kc-menu-trigger { display: inline-flex; }   /* shown only on mobile */
    .kc-logo { justify-self: center; }
    .kc-actions { gap: 0; }
    /* mobile keeps only Search + Cart here — WhatsApp & Account live in the menu */
    .kc-action--whatsapp,
    .kc-action--account { display: none; }
}
@media (max-width: 380px) {
    .kc-menu-trigger__label { display: none; }   /* tiny screens: lines only */
}
@media (max-width: 560px) {
    .kc-logo img { height: 44px; }
    .kc-action { width: 38px; height: 38px; }
}

/* ---------------------------------------------------------
   HOMEPAGE — HERO
--------------------------------------------------------- */
.kc-front .site-main,
.kc-front { padding: 0; max-width: none; }

.kc-hero {
    position: relative;
    height: 92vh;
    min-height: 640px;
    max-height: 960px;
    overflow: hidden;
    background: var(--kc-color-ink);
    color: #fff;
}
.kc-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
/* darken the bottom + left so the editorial lockup always reads cleanly over imagery */
.kc-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg,
            rgba(1, 21, 37, 0.10) 0%,
            rgba(1, 21, 37, 0.28) 45%,
            rgba(1, 21, 37, 0.92) 100%),
        linear-gradient(90deg,
            rgba(1, 21, 37, 0.62) 0%,
            rgba(1, 21, 37, 0.20) 42%,
            rgba(1, 21, 37, 0) 68%);
}
.kc-hero__inner {
    position: relative;
    z-index: 2;
    height: 100%;
    width: 100%;
    max-width: var(--kc-container);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(1.75rem, 3.5vw, 3.25rem) clamp(1.5rem, 5vw, 5rem);
    text-align: left;
}
/* meta lines — top credential + bottom aside share a tracked, uppercase style */
.kc-hero__meta {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    margin: 0;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: rgba(255, 255, 255, 0.78);
}
.kc-hero__meta-mark {
    width: 30px;
    height: 1px;
    background: var(--kc-color-primary);
}
/* top row: meta credential (left) + showcase card (right) */
.kc-hero__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}
.kc-hero__meta--top { padding-top: .4rem; }

/* showcase — a glass card featuring the newest arrival, top-right */
.kc-hero__showcase {
    position: relative;   /* anchors the expandable arrivals panel */
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: .95rem;
    width: clamp(15rem, 22vw, 18.5rem);
    padding: 1.1rem 1.2rem 1.25rem;
    background: rgba(8, 28, 45, 0.42);
    -webkit-backdrop-filter: blur(14px) saturate(125%);
    backdrop-filter: blur(14px) saturate(125%);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 5px;
    box-shadow: 0 26px 60px -30px rgba(0, 0, 0, 0.75);
    text-decoration: none !important;
    transition: transform .35s cubic-bezier(0.22, 1, 0.36, 1), border-color .3s ease, background-color .3s ease;
}
.kc-hero__showcase:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(8, 28, 45, 0.55);
}
.kc-hero__showcase-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .26em;
    color: #fff;
}
.kc-hero__showcase-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kc-color-primary);
    animation: kc-showcase-pulse 2.2s ease-out infinite;
}
@keyframes kc-showcase-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(0, 176, 219, 0.55); }
    70%  { box-shadow: 0 0 0 7px rgba(0, 176, 219, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 176, 219, 0); }
}
.kc-hero__showcase-body {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.kc-hero__showcase-thumb {
    flex-shrink: 0;
    width: 58px;
    height: 58px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--kc-color-cream, #f4f2ee);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.kc-hero__showcase-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-hero__showcase-text {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    min-width: 0;
    flex: 1;
}
.kc-hero__showcase-brand {
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: rgba(255, 255, 255, 0.62);
}
.kc-hero__showcase-name {
    font-family: var(--kc-font-display);
    font-size: 1.12rem;
    line-height: 1.15;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kc-hero__showcase-price {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-primary);
    margin-top: .2rem;
}
.kc-hero__showcase-price .amount,
.kc-hero__showcase-price bdi { color: inherit; }
.kc-hero__showcase-price del { opacity: .55; margin-right: .35rem; font-weight: 400; }
/* the product link carries the thumb + text; the toggle sits beside it */
.kc-hero__showcase-link {
    display: flex;
    align-items: center;
    gap: .9rem;
    flex: 1;
    min-width: 0;
    text-decoration: none !important;
}
.kc-hero__showcase-toggle {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}
.kc-hero__showcase-toggle:hover,
.kc-hero__showcase-toggle:focus-visible {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.12);
}
.kc-hero__showcase-toggle svg {
    width: 14px;
    height: 14px;
    transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}
/* plus folds into a close cross while the panel is open */
.kc-hero__showcase.is-open .kc-hero__showcase-toggle svg { transform: rotate(45deg); }

/* expandable arrivals — a glass panel floated below the card (no hero reflow);
   the panel wipes downward via clip-path, then each row masks in on a stagger */
.kc-hero__more {
    position: absolute;
    top: calc(100% + .65rem);
    left: 0;
    right: 0;
    z-index: 6;
    padding: .3rem 1.2rem .5rem;
    background: rgba(8, 28, 45, 0.55);
    -webkit-backdrop-filter: blur(14px) saturate(125%);
    backdrop-filter: blur(14px) saturate(125%);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 5px;
    box-shadow: 0 26px 60px -30px rgba(0, 0, 0, 0.75);
    clip-path: inset(0 0 100% 0 round 5px);
    visibility: hidden;
    transition: clip-path .5s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .5s;
}
.kc-hero__showcase.is-open .kc-hero__more {
    clip-path: inset(0 round 5px);
    visibility: visible;
    transition: clip-path .55s cubic-bezier(.22, 1, .36, 1);
}
.kc-hero__more-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 0;
    text-decoration: none !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    clip-path: inset(0 0 100% 0);
    opacity: 0;
    transform: translateY(-6px);
    transition: clip-path .4s cubic-bezier(.22, 1, .36, 1), opacity .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1);
}
.kc-hero__more-item:first-child { border-top: 0; }
.kc-hero__showcase.is-open .kc-hero__more-item {
    clip-path: inset(0);
    opacity: 1;
    transform: none;
}
.kc-hero__showcase.is-open .kc-hero__more-item:nth-child(1) { transition-delay: .14s; }
.kc-hero__showcase.is-open .kc-hero__more-item:nth-child(2) { transition-delay: .24s; }
.kc-hero__showcase.is-open .kc-hero__more-item:nth-child(3) { transition-delay: .34s; }
.kc-hero__showcase.is-open .kc-hero__more-item:nth-child(4) { transition-delay: .44s; }
.kc-hero__more-thumb {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--kc-color-cream, #f4f2ee);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.kc-hero__more-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-hero__more-text {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
    flex: 1;
}
.kc-hero__more-brand {
    font-family: var(--kc-font-body);
    font-size: .55rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: rgba(255, 255, 255, 0.55);
}
.kc-hero__more-name {
    font-family: var(--kc-font-display);
    font-size: .98rem;
    line-height: 1.15;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color .2s ease;
}
.kc-hero__more-item:hover .kc-hero__more-name { color: var(--kc-color-primary); }
.kc-hero__more-price {
    flex-shrink: 0;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    color: var(--kc-color-primary);
    white-space: nowrap;
}
.kc-hero__more-price .amount,
.kc-hero__more-price bdi { color: inherit; }
.kc-hero__more-price del { display: none; }

@media (prefers-reduced-motion: reduce) {
    .kc-hero__more,
    .kc-hero__more-item,
    .kc-hero__showcase-toggle svg { transition: none !important; }
}
/* bottom row: editorial lockup on the left, aside on the right */
.kc-hero__base {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2.5rem;
}
.kc-hero__content {
    max-width: 46rem;
}
.kc-hero__headline {
    font-family: var(--kc-font-display);
    font-size: clamp(2.8rem, 6.2vw, 6rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.015em;
    color: #fff;
    margin: 0;
}
.kc-hero__headline em {
    font-style: italic;
    font-weight: 400;
    color: var(--kc-color-primary);
}
.kc-hero__rule {
    display: block;
    width: 3.5rem;
    height: 2px;
    margin: 1.6rem 0 1.5rem;
    background: var(--kc-color-primary);
}
.kc-hero__lede {
    font-family: var(--kc-font-body);
    font-size: clamp(1rem, 1.5vw, 1.18rem);
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.82);
    max-width: 34rem;
    margin: 0 0 2.25rem;
}
.kc-hero__cta {
    display: inline-flex;
    gap: .85rem;
    flex-wrap: wrap;
}
.kc-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: 1rem 2rem;
    font-family: var(--kc-font-body);
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .22em;
    text-decoration: none !important;
    border-radius: 2px;
    border: 1px solid;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    line-height: 1;
}
.kc-hero__btn svg { width: 14px; height: 14px; transition: transform .2s ease; }
.kc-hero__btn--secondary:hover svg,
.kc-hero__btn--secondary:focus svg { transform: translateX(3px); }
.kc-hero__btn--primary {
    background: #fff;
    color: var(--kc-color-ink) !important;
    border-color: #fff;
}
.kc-hero__btn--primary:hover,
.kc-hero__btn--primary:focus {
    background: transparent;
    color: #fff !important;
}
.kc-hero__btn--secondary {
    background: transparent;
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.5);
}
.kc-hero__btn--secondary:hover,
.kc-hero__btn--secondary:focus {
    background: #fff;
    color: var(--kc-color-ink) !important;
    border-color: #fff;
}
/* aside — live in-stock count + scroll cue */
.kc-hero__aside {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1.4rem;
    flex-shrink: 0;
    text-align: right;
    padding-bottom: .35rem;
}
.kc-hero__count {
    margin: 0;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: rgba(255, 255, 255, 0.7);
    white-space: nowrap;
}
.kc-hero__count-num {
    color: #fff;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.kc-hero__scroll {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .26em;
    text-decoration: none !important;
    transition: color .2s ease;
}
.kc-hero__scroll:hover { color: #fff; }
.kc-hero__scroll svg {
    width: 20px;
    height: 20px;
    animation: kc-hero-bob 2s ease-in-out infinite;
}
.kc-hero__scroll:hover svg { color: var(--kc-color-primary); }
@keyframes kc-hero-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(5px); }
}

/* restrained on-load reveal — gated so reduced-motion never leaves copy invisible */
@media (prefers-reduced-motion: no-preference) {
    .kc-hero__meta--top,
    .kc-hero__showcase,
    .kc-hero__headline,
    .kc-hero__rule,
    .kc-hero__lede,
    .kc-hero__cta,
    .kc-hero__aside {
        opacity: 0;
        animation: kc-hero-rise .95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    }
    .kc-hero__meta--top { animation-delay: .15s; }
    .kc-hero__showcase  { animation-delay: .38s; }
    .kc-hero__headline  { animation-delay: .28s; }
    .kc-hero__rule      { animation-delay: .44s; }
    .kc-hero__lede      { animation-delay: .52s; }
    .kc-hero__cta       { animation-delay: .62s; }
    .kc-hero__aside     { animation-delay: .82s; }
}
@keyframes kc-hero-rise {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
    .kc-hero__base { flex-direction: column; align-items: stretch; gap: 1.75rem; }
    .kc-hero__aside { flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
    .kc-hero__scroll { flex-direction: row; gap: .5rem; }
}
@media (max-width: 720px) {
    .kc-hero { height: 86vh; min-height: 560px; }
    .kc-hero__inner { padding: 1.5rem 1.25rem 2rem; }
    .kc-hero__showcase { display: none; }       /* keep the small-screen hero clean */
    .kc-hero__headline { font-size: clamp(2.3rem, 9vw, 3.6rem); line-height: 1.05; }
    .kc-hero__lede { font-size: 1rem; }
    .kc-hero__meta { letter-spacing: .22em; font-size: .62rem; }
    .kc-hero__btn { padding: .9rem 1.5rem; font-size: .72rem; }
    .kc-hero__cta { gap: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-hero__video { display: none; }
    .kc-hero { background: var(--kc-color-ink); }
    .kc-hero__scroll svg { animation: none; }
}

/* ---------------------------------------------------------
   HOMEPAGE — BRAND MARQUEE
--------------------------------------------------------- */
.kc-brands {
    background: #fff;
    padding: 3rem 0;
    overflow: hidden;
    border-bottom: 1px solid var(--kc-color-line);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
            mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.kc-brands__track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: kc-brands-scroll 45s linear infinite;
    will-change: transform;
}
.kc-brands:hover .kc-brands__track { animation-play-state: paused; }

.kc-brands__item {
    flex: 0 0 auto;
    padding: 0 2.25rem;
    text-decoration: none;
    color: var(--kc-color-ink);
    transition: color .2s ease;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}
.kc-brands__item:hover,
.kc-brands__item:focus {
    color: var(--kc-color-primary);
    text-decoration: none;
}

/* Every brand sits inside an identical 160×60 frame. The image inside is `object-fit: contain`
   so it scales to fit without distortion. This is what gives the row its visual consistency
   regardless of whether a logo is square, wide, or stacked. */
.kc-brands__item-frame {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 60px;
    flex: 0 0 auto;
}

.kc-brands__item-label {
    font-family: var(--kc-font-display);
    font-style: italic;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .005em;
    color: var(--kc-color-ink);
    opacity: 0.78;
    transition: opacity .2s ease, color .2s ease;
}
.kc-brands__item:hover .kc-brands__item-label { opacity: 1; color: var(--kc-color-primary); }

.kc-brands__item-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
    /* Logos are pre-desaturated and pre-normalised at the source (320×150) — just animate
       opacity on hover for the interactive cue. */
    opacity: 0.7;
    transition: opacity .2s ease;
}
.kc-brands__item:hover .kc-brands__item-img { opacity: 1; }

@keyframes kc-brands-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (max-width: 720px) {
    .kc-brands { padding: 2rem 0; }
    .kc-brands__item { padding: 0 1.5rem; }
    .kc-brands__item-frame { width: 120px; height: 48px; }
    .kc-brands__item-label { font-size: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
    .kc-brands__track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
    }
}

/* ---------------------------------------------------------
   HOMEPAGE — NEW ARRIVALS SLIDER
--------------------------------------------------------- */
.kc-arrivals {
    position: relative;
    overflow: hidden;
    background: #FAFAF8;
    /* deep bottom — the maisons' crystal curve overlaps up into this space */
    padding: 6rem 0 10rem;
}
/* decorative dial — bleeds off the top-left corner and spins with scroll (JS) */
.kc-arrivals__dial {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: clamp(260px, 30vw, 480px);
    aspect-ratio: 1 / 1;
    transform: translate(-32%, -34%);
    pointer-events: none;
}
.kc-arrivals__dial img {
    display: block;
    width: 100%;
    height: 100%;
    opacity: .18;
    filter: grayscale(35%);
    will-change: transform;
}
.kc-arrivals__inner {
    position: relative;
    z-index: 1;
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}

.kc-arrivals__head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2.5rem 3rem;
    align-items: end;
    margin-bottom: 3.25rem;
}
.kc-arrivals__intro { max-width: 36rem; }
.kc-arrivals__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}
.kc-arrivals__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.5rem, 5vw, 4.25rem);
    font-weight: 400;
    line-height: 1.02;
    letter-spacing: -0.005em;
    margin: 0 0 1rem;
    color: var(--kc-color-ink);
}
.kc-arrivals__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-arrivals__lede {
    font-family: var(--kc-font-body);
    font-size: 1.02rem;
    line-height: 1.5;
    color: var(--kc-color-muted);
    margin: 0;
}

/* Controls cluster (right side of header) */
.kc-arrivals__controls {
    display: grid;
    grid-template-areas:
        "count arrows"
        "viewall viewall";
    grid-template-columns: auto auto;
    column-gap: 1.5rem;
    row-gap: 1rem;
    align-items: center;
    justify-items: end;
}
.kc-arrivals__count {
    grid-area: count;
    font-family: var(--kc-font-display);
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.kc-arrivals__count-current { color: var(--kc-color-primary); }
.kc-arrivals__count-sep {
    color: var(--kc-color-muted);
    padding: 0 .25em;
    font-size: 0.9em;
}
.kc-arrivals__count-total { color: var(--kc-color-muted); }
.kc-arrivals__arrows {
    grid-area: arrows;
    display: inline-flex;
    gap: .55rem;
}
.kc-arrivals__arrow {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--kc-color-line);
    background: transparent;
    color: var(--kc-color-ink);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color .2s ease, color .2s ease, background-color .2s ease, transform .2s ease;
}
.kc-arrivals__arrow svg { width: 17px; height: 17px; }
.kc-arrivals__arrow:hover:not(:disabled) {
    background: var(--kc-color-ink);
    color: #fff;
    border-color: var(--kc-color-ink);
}
.kc-arrivals__arrow:disabled {
    opacity: .35;
    cursor: not-allowed;
}
.kc-arrivals__view-all {
    grid-area: viewall;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--kc-color-ink);
    border-bottom: 1px solid var(--kc-color-ink);
    padding-bottom: .3rem;
    transition: color .2s ease, border-color .2s ease;
}
.kc-arrivals__view-all svg { width: 13px; height: 13px; transition: transform .25s ease; }
.kc-arrivals__view-all:hover {
    color: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
}
.kc-arrivals__view-all:hover svg { transform: translateX(3px); }

/* Full-bleed slider that breaks out of the container — clean crisp right edge. */
.kc-arrivals__slider {
    overflow: hidden;
}
/* Track uses 4 fully-visible cards anchored to the container left edge.
   The right side runs into the mask fade so the next card peeks out. */
.kc-arrivals__track {
    --kc-side: max(1.5rem, calc((100% - var(--kc-container)) / 2 + 1.5rem));
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((min(100%, var(--kc-container)) - 3rem - 3 * 1.5rem) / 4);
    column-gap: 1.5rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--kc-side);
    padding: 0 var(--kc-side) 1rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.kc-arrivals__track::-webkit-scrollbar { display: none; }
.kc-arrivals__track { cursor: grab; }
.kc-arrivals__track.is-dragging {
    cursor: grabbing;
    /* Disable snap during the drag so the slider follows the cursor smoothly;
       the JS removes this class after momentum decays, then snap re-engages. */
    scroll-snap-type: none;
    scroll-behavior: auto;
    user-select: none;
}
.kc-arrivals__track.is-dragging img,
.kc-arrivals__track.is-dragging .kc-product__link { pointer-events: none; }
.kc-arrivals__track img { -webkit-user-drag: none; user-select: none; }

@media (max-width: 1200px) {
    .kc-arrivals__track { grid-auto-columns: calc((min(100%, var(--kc-container)) - 3rem - 2 * 1.5rem) / 3); }
}
@media (max-width: 900px) {
    .kc-arrivals__track { grid-auto-columns: calc((min(100%, var(--kc-container)) - 3rem - 1 * 1.5rem) / 2); }
}
@media (max-width: 600px) {
    .kc-arrivals__head { grid-template-columns: 1fr; }
    .kc-arrivals__controls {
        justify-items: start;
        grid-template-areas:
            "count arrows"
            "viewall viewall";
        column-gap: 1rem;
    }
    .kc-arrivals__track {
        --kc-side: 1.25rem;
        /* 1.4 cards visible so the next card peeks in */
        grid-auto-columns: 72%;
    }
    .kc-arrivals { padding: 4rem 0 3.5rem; }
}

/* Product card */
.kc-product {
    scroll-snap-align: start;
    min-width: 0;
}
.kc-product__link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.kc-product__link:hover { text-decoration: none; }
.kc-product__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #fff;
    margin-bottom: 1.1rem;
}
.kc-product__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    transition: transform .7s cubic-bezier(.22, .61, .36, 1), opacity .4s ease;
}
.kc-product__link:hover .kc-product__img { transform: scale(1.04); }

/* Spec overlay — slides over the image on hover with cascading reveal. */
.kc-product__overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    background: rgba(1, 21, 37, 0.94);
    color: #fff;
    padding: 1.5rem 1.4rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility 0s linear .3s;
}
.kc-product__link:hover .kc-product__overlay,
.kc-product__link:focus-visible .kc-product__overlay {
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease;
}
.kc-product__overlay-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: rgba(255, 255, 255, 0.55);
}
.kc-product__specs {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
.kc-product__spec {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    /* Cascading fade-up reveal — each row delayed by --i */
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s ease, transform .35s ease;
    transition-delay: 0s;
}
.kc-product__link:hover .kc-product__spec,
.kc-product__link:focus-visible .kc-product__spec {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(0.08s + var(--i, 0) * 0.06s);
}
.kc-product__spec-label {
    margin: 0;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: rgba(255, 255, 255, 0.6);
}
.kc-product__spec-value {
    margin: 0;
    font-family: var(--kc-font-display);
    font-size: 1.05rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.15;
    text-align: right;
}
.kc-product__overlay-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    align-self: flex-start;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: #fff;
    padding-bottom: .35rem;
    border-bottom: 1px solid var(--kc-color-primary);
    transition: color .2s ease;
}
.kc-product__overlay-cta svg { width: 13px; height: 13px; transition: transform .25s ease; }
.kc-product__link:hover .kc-product__overlay-cta { color: var(--kc-color-primary); }
.kc-product__link:hover .kc-product__overlay-cta svg { transform: translateX(3px); }

@media (prefers-reduced-motion: reduce) {
    .kc-product__overlay,
    .kc-product__spec,
    .kc-product__overlay-cta svg {
        transition: none;
        transform: none;
    }
}

/* ---------------------------------------------------------
   HOMEPAGE — FEATURED BRANDS GRID
--------------------------------------------------------- */
.kc-brands-grid {
    position: relative;
    z-index: 2;
    background: #fff;
    /* elevated sheet — the section slides up over the arrivals as a flat
       panel; tight bottom since the marquee closes the section */
    margin-top: -64px;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -18px 40px -28px rgba(1, 21, 37, 0.22);
    padding: 6rem 0 0.75rem;
}
@media (max-width: 720px) {
    .kc-brands-grid {
        margin-top: -32px;
        border-radius: 14px 14px 0 0;
        padding-top: 4.5rem;
    }
}
.kc-brands-grid__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-brands-grid__head {
    max-width: 44rem;
    margin: 0 auto 3.5rem;
    text-align: center;
}
.kc-brands-grid__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}
.kc-brands-grid__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.5rem, 5vw, 4.25rem);
    font-weight: 400;
    line-height: 1.02;
    letter-spacing: -0.005em;
    margin: 0 0 1rem;
    color: var(--kc-color-ink);
}
.kc-brands-grid__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-brands-grid__lede {
    font-family: var(--kc-font-body);
    font-size: 1.02rem;
    line-height: 1.5;
    color: var(--kc-color-muted);
    margin: 0;
}

.kc-brands-grid__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
}
@media (min-width: 560px) {
    .kc-brands-grid__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
    .kc-brands-grid__grid { grid-template-columns: repeat(3, 1fr); }
}

/* === Maisons — expanding image accordion =================================
   Six full-height panels; the active one grows to reveal its story while the
   rest rest as slats. Stacks into a card grid on touch / narrow screens. */
.kc-maisons {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
}
@media (min-width: 560px) {
    .kc-maisons { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
    .kc-maisons { grid-template-columns: repeat(3, 1fr); }
}
.kc-maison {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 3px;
    background: var(--kc-color-ink);
    aspect-ratio: 16 / 11;
    color: #fff;
    text-decoration: none !important;
    isolation: isolate;
}
.kc-maison__media { position: absolute; inset: 0; z-index: 0; }
.kc-maison__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s cubic-bezier(.22, .61, .36, 1);
}
.kc-maison__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg,
        rgba(1, 21, 37, 0) 30%,
        rgba(1, 21, 37, .55) 72%,
        rgba(1, 21, 37, .92) 100%);
    transition: opacity .4s ease;
}
.kc-maison__index {
    position: absolute;
    z-index: 2;
    top: 1.2rem;
    left: 1.35rem;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .16em;
    color: rgba(255, 255, 255, .72);
    font-variant-numeric: tabular-nums;
}
.kc-maison__index::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 1px;
    margin-right: .5rem;
    vertical-align: middle;
    background: var(--kc-color-primary);
}
/* spine — collapsed vertical brand name (accordion mode only) */
.kc-maison__spine {
    position: absolute;
    z-index: 2;
    left: 1.25rem;
    bottom: 1.5rem;
    display: none;
    font-family: var(--kc-font-display);
    font-size: 1.55rem;
    line-height: 1;
    color: #fff;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    pointer-events: none;
    transition: opacity .35s ease;
}
/* panel — the expanded story */
.kc-maison__panel {
    position: absolute;
    z-index: 2;
    inset: auto 0 0 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    padding: 1.75rem 1.75rem 1.6rem;
}
.kc-maison__name {
    font-family: var(--kc-font-display);
    font-size: clamp(1.8rem, 2.2vw, 2.35rem);
    line-height: 1;
    margin: 0;
    color: #fff;
    letter-spacing: -0.005em;
}
.kc-maison__count {
    font-family: var(--kc-font-body);
    font-size: .66rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .25em;
    color: rgba(255, 255, 255, .78);
}
.kc-maison__desc {
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, .8);
    margin: .4rem 0 .3rem;
    max-width: 30rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-maison__cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: .45rem;
    font-family: var(--kc-font-body);
    font-size: .66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: #fff;
    padding-bottom: .35rem;
    border-bottom: 1px solid var(--kc-color-primary);
    transition: gap .25s ease, color .25s ease;
}
.kc-maison__cta svg { width: 14px; height: 14px; transition: transform .25s ease; }
.kc-maison:hover .kc-maison__img { transform: scale(1.04); }
.kc-maison:hover .kc-maison__cta { gap: .8rem; }
.kc-maison:hover .kc-maison__cta svg { transform: translateX(3px); }

/* keep stacked cards tight — hide long copy until the accordion */
@media (max-width: 899px) {
    .kc-maison__desc { display: none; }
}

/* status line under the accordion — live index + maison + progress (JS-driven) */
.kc-maisons-status { display: none; }

/* ACCORDION — pointer-capable wide screens */
@media (min-width: 900px) and (hover: hover) {
    .kc-maisons {
        display: flex;
        gap: .5rem;
        height: clamp(520px, 72vh, 760px);
        /* full-bleed — break out of the container to true viewport width */
        width: 100vw;
        margin-left: calc(50% - 50vw);
        cursor: none; /* the follow-badge becomes the cursor */
    }
    .kc-maison {
        flex: 1 1 0;
        min-width: 0;
        height: 100%;
        aspect-ratio: auto;
        flex-grow: 1;
        border-radius: 0;
        cursor: none;
        transition: flex-grow .6s cubic-bezier(.22, 1, .36, 1);
    }
    .kc-maison__spine { display: block; }
    .kc-maison__veil { opacity: .92; }
    .kc-maison__panel {
        opacity: 0;
        visibility: hidden;
        transform: translateY(14px);
        transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
    }
    /* expanded: hovered / focused, or the first panel while nothing is active */
    .kc-maison:hover,
    .kc-maison:focus-visible { flex-grow: 4.4; }
    .kc-maisons:not(:hover):not(:focus-within) .kc-maison:first-child { flex-grow: 4.4; }

    .kc-maison:hover .kc-maison__panel,
    .kc-maison:focus-visible .kc-maison__panel,
    .kc-maisons:not(:hover):not(:focus-within) .kc-maison:first-child .kc-maison__panel {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: opacity .5s ease .12s, transform .5s ease .12s;
    }
    .kc-maison:hover .kc-maison__spine,
    .kc-maison:focus-visible .kc-maison__spine,
    .kc-maisons:not(:hover):not(:focus-within) .kc-maison:first-child .kc-maison__spine { opacity: 0; }

    .kc-maison:hover .kc-maison__veil,
    .kc-maison:focus-visible .kc-maison__veil,
    .kc-maisons:not(:hover):not(:focus-within) .kc-maison:first-child .kc-maison__veil { opacity: 1; }

    /* slow ken-burns on the open panel's image (replaces the simple hover zoom) */
    .kc-maison:hover .kc-maison__img { transform: none; }
    .kc-maison:hover .kc-maison__img,
    .kc-maison:focus-visible .kc-maison__img,
    .kc-maisons:not(:hover):not(:focus-within) .kc-maison:first-child .kc-maison__img {
        animation: kc-maison-kb 16s ease-in-out infinite alternate;
    }

    .kc-maisons-status {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 1.25rem 2rem;
        margin-top: 1.6rem;
    }
    .kc-maisons-status__label {
        display: inline-flex;
        align-items: baseline;
        gap: .45rem;
        margin: 0;
        font-family: var(--kc-font-body);
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .18em;
        text-transform: uppercase;
        color: var(--kc-color-muted);
        font-variant-numeric: tabular-nums;
    }
    .kc-maisons-status__idx { color: var(--kc-color-ink); }
    /* the active maison as a giant drifting marquee backdrop */
    .kc-maisons-status__marquee {
        /* full bleed — the 100vw basis forces a wrap onto its own row, then
           the negative margin re-centres the box on the viewport */
        flex: 0 0 100vw;
        width: 100vw;
        margin-left: calc(50% - 50vw);
        overflow: hidden;
        opacity: .1;
        pointer-events: none;
        transition: opacity .25s ease;
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
        mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    }
    .kc-maisons-status__marquee.is-swap { opacity: 0; }
    .kc-maisons-status__track {
        display: inline-flex;
        width: max-content;
        white-space: nowrap;
        font-family: var(--kc-font-display);
        font-size: clamp(4.5rem, 9vw, 11rem);
        font-weight: 400;
        line-height: 1.05;
        letter-spacing: -0.03em;
        color: var(--kc-color-ink);
        animation: kc-maisons-marq 70s linear infinite;
        will-change: transform;
    }
    .kc-maisons-status__bar {
        flex: 0 1 220px;
        height: 2px;
        background: var(--kc-color-line);
        overflow: hidden;
    }
    .kc-maisons-status__fill {
        display: block;
        height: 100%;
        background: var(--kc-color-primary);
        transform: scaleX(0.1667);
        transform-origin: left center;
        transition: transform .5s cubic-bezier(.22, 1, .36, 1);
    }
}
@keyframes kc-maison-kb {
    from { transform: scale(1.03); }
    to   { transform: scale(1.12); }
}
@keyframes kc-maisons-marq {
    to { transform: translateX(-50%); }
}

/* follow-cursor badge (injected by JS on fine pointers) */
.kc-maisons__cursor {
    position: fixed;
    z-index: 70;
    top: 0;
    left: 0;
    pointer-events: none;
}
.kc-maisons__cursor-inner {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    transform: translate(-50%, -50%) scale(0);
    background: var(--kc-color-ink);
    color: #fff;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    padding: .8rem 1.15rem;
    border-radius: 999px;
    box-shadow: 0 14px 30px -12px rgba(1, 21, 37, .5);
    white-space: nowrap;
    transition: transform .3s cubic-bezier(.22, 1, .36, 1);
}
.kc-maisons__cursor.is-on .kc-maisons__cursor-inner { transform: translate(-50%, -50%) scale(1); }
.kc-maisons__cursor svg { width: 13px; height: 13px; color: var(--kc-color-primary); }

/* entrance — header copy then panels rise in sequence (uses the data-kc-reveal IO) */
.kc-brands-grid.is-armed .kc-brands-grid__eyebrow,
.kc-brands-grid.is-armed .kc-brands-grid__title,
.kc-brands-grid.is-armed .kc-brands-grid__lede {
    opacity: 0;
    transform: translateY(20px);
}
.kc-brands-grid.is-in .kc-brands-grid__eyebrow,
.kc-brands-grid.is-in .kc-brands-grid__title,
.kc-brands-grid.is-in .kc-brands-grid__lede {
    opacity: 1;
    transform: none;
    transition: opacity .7s ease, transform .75s cubic-bezier(.22, 1, .36, 1);
}
.kc-brands-grid.is-in .kc-brands-grid__title { transition-delay: .08s; }
.kc-brands-grid.is-in .kc-brands-grid__lede  { transition-delay: .16s; }
.kc-brands-grid.is-armed .kc-maison {
    opacity: 0;
    transform: translateY(36px);
}
.kc-brands-grid.is-in .kc-maison {
    opacity: 1;
    transform: none;
    /* keep flex-grow animating undelayed; stagger only the entrance */
    transition:
        flex-grow .6s cubic-bezier(.22, 1, .36, 1) 0s,
        opacity .7s ease var(--kc-d, 0s),
        transform .8s cubic-bezier(.22, 1, .36, 1) var(--kc-d, 0s);
}
.kc-brands-grid.is-in .kc-maison:nth-child(1) { --kc-d: .12s; }
.kc-brands-grid.is-in .kc-maison:nth-child(2) { --kc-d: .19s; }
.kc-brands-grid.is-in .kc-maison:nth-child(3) { --kc-d: .26s; }
.kc-brands-grid.is-in .kc-maison:nth-child(4) { --kc-d: .33s; }
.kc-brands-grid.is-in .kc-maison:nth-child(5) { --kc-d: .4s; }
.kc-brands-grid.is-in .kc-maison:nth-child(6) { --kc-d: .47s; }

@media (prefers-reduced-motion: reduce) {
    .kc-maison,
    .kc-maison__img,
    .kc-maison__panel,
    .kc-maison__cta svg { transition: none; animation: none !important; }
    .kc-maisons-status__track { animation: none !important; }
    .kc-brands-grid .kc-brands-grid__eyebrow,
    .kc-brands-grid .kc-brands-grid__title,
    .kc-brands-grid .kc-brands-grid__lede,
    .kc-brands-grid .kc-maison { opacity: 1 !important; transform: none !important; transition: none !important; }
    .kc-maisons, .kc-maison { cursor: auto; }
    .kc-maisons__cursor { display: none; }
}

/* ---------------------------------------------------------
   HOMEPAGE — SELL / CONSIGN  (Cinematic grow reveal)
   The photo opens as a contained editorial plate on a white
   stage; scrolling scrubs it full-bleed from the centre
   (--kc-sg, set by JS while the section is pinned). Once
   grown, the navy scrim sweeps in and the consignment story
   reveals on top. Without JS (or on touch / reduced motion)
   the section renders straight into its final overlay state.
--------------------------------------------------------- */
.kc-sell {
    position: relative;
    background: var(--kc-color-ink);
    color: #fff;
}
.kc-sell__pin {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 700px;
}
.kc-sell__media {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #000;
}
.kc-sell__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* legibility scrim — lives inside the media so it inherits the grow mask */
.kc-sell__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(270deg,
        rgba(1, 21, 37, 0.93) 14%,
        rgba(1, 21, 37, 0.62) 46%,
        rgba(1, 21, 37, 0.18) 74%,
        rgba(1, 21, 37, 0.04) 100%);
}

.kc-sell__content {
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    padding: 6.5rem clamp(2rem, 7vw, 8.5rem);
}
.kc-sell__inner {
    max-width: 34rem;
}

.kc-sell__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: rgba(255, 255, 255, 0.7);
    margin: 0 0 1.5rem;
}
.kc-sell__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.4rem, 3.8vw, 4rem);
    line-height: 1.04;
    font-weight: 400;
    letter-spacing: -0.005em;
    margin: 0 0 1.5rem;
    color: #fff;
}
.kc-sell__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-sell__lede {
    font-family: var(--kc-font-body);
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 2.25rem;
}

/* Numbered process — hairline-divided rows, Cormorant italic numerals,
   Cormorant serif titles, Inter detail text. Reads like a watch spec sheet
   from a luxury catalogue, not a tech roadmap. */
.kc-sell__steps {
    position: relative;
    list-style: none;
    padding: 0;
    margin: 0 0 2.5rem;
    /* own stacking context so the track/fill can sit in its negative layer —
       rows that fade (opacity < 1) paint atomically and would otherwise drop
       beneath the ::after fill, putting the line over the number discs */
    isolation: isolate;
}
/* timeline: faint track + cyan progress fill threaded through the markers */
.kc-sell__steps::before,
.kc-sell__steps::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 23px;
    top: 43px;
    bottom: 43px;
    width: 1px;
}
.kc-sell__steps::before { background: rgba(255, 255, 255, 0.16); }
.kc-sell__steps::after {
    background: var(--kc-color-primary);
    transform-origin: top center;
}
.kc-sell__step {
    position: relative;
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 1.4rem;
    padding: 1.15rem 0;
    align-items: center;
}
/* number marker — a navy disc on the line, so the fill reads as connected segments */
.kc-sell__step-num {
    position: relative;
    z-index: 1;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: var(--kc-color-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--kc-font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 1.3rem;
    line-height: 1;
    color: var(--kc-color-primary);
    transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.kc-sell__step:hover .kc-sell__step-num {
    background: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    color: var(--kc-color-ink);
}
.kc-sell__step-body {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.kc-sell__step-title {
    font-family: var(--kc-font-display);
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.1;
    color: #fff;
    margin: 0;
}
.kc-sell__step-detail {
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
}

.kc-sell__actions {
    display: inline-flex;
    align-items: center;
    gap: 1.75rem;
    flex-wrap: wrap;
}
.kc-sell__cta {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    background: #fff;
    color: var(--kc-color-ink) !important;
    padding: 1.05rem 1.85rem;
    border: 1px solid #fff;
    border-radius: 2px;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .22em;
    text-decoration: none !important;
    line-height: 1;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.kc-sell__cta:hover,
.kc-sell__cta:focus {
    background: transparent;
    color: #fff !important;
}
.kc-sell__cta svg { width: 15px; height: 15px; transition: transform .25s ease; }
.kc-sell__cta:hover svg { transform: translateX(4px); }

.kc-sell__secondary {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .22em;
    text-decoration: none !important;
    color: rgba(255, 255, 255, 0.78);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    padding-bottom: .25rem;
    transition: color .2s ease, border-color .2s ease;
}
.kc-sell__secondary:hover,
.kc-sell__secondary:focus {
    color: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    text-decoration: none !important;
}

/* --- Scroll-grow enhancement (JS adds .is-scrub on desktop with motion
   allowed). The section stretches to give the pin a scrub track; the media
   is clipped from a centred plate to full bleed by --kc-sg, while the photo
   counter-zooms so the frame appears to open onto it. .is-info (added past
   ~60% of the track) sweeps the scrim in and staggers the story on top. --- */
.kc-sell.is-scrub {
    height: 220vh;
    background: transparent;
}
.kc-sell.is-scrub .kc-sell__pin {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 0;
    background: #fff;   /* white stage behind the contained plate */
}
.kc-sell.is-scrub .kc-sell__media {
    clip-path: inset(
        calc((1 - var(--kc-sg, 0)) * 9%)
        calc((1 - var(--kc-sg, 0)) * 12%)
        calc((1 - var(--kc-sg, 0)) * 16%)
        calc((1 - var(--kc-sg, 0)) * 12%)
        round calc((1 - var(--kc-sg, 0)) * 22px)
    );
    will-change: clip-path;
}
.kc-sell.is-scrub .kc-sell__img {
    transform: scale(calc(1.12 - var(--kc-sg, 0) * 0.12));
    will-change: transform;
}
.kc-sell.is-scrub .kc-sell__scrim {
    opacity: 0;
    transition: opacity .9s ease;
}
.kc-sell.is-scrub.is-info .kc-sell__scrim { opacity: 1; }

/* The timeline rows must never transform individually — the discs are
   threaded onto an absolutely-positioned track, so per-row movement slides
   them off the line (and the per-row stacking contexts flicker the paint
   order). The whole list rises as one block; rows only fade. Every element
   also carries a short base transition so scrolling back out fades cleanly
   instead of snapping. */
.kc-sell.is-scrub .kc-sell__eyebrow,
.kc-sell.is-scrub .kc-sell__title,
.kc-sell.is-scrub .kc-sell__lede,
.kc-sell.is-scrub .kc-sell__actions {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .35s ease, transform .35s ease;
}
.kc-sell.is-scrub .kc-sell__steps {
    transform: translateY(18px);
    transition: transform .35s ease;
}
.kc-sell.is-scrub .kc-sell__step {
    opacity: 0;
    transition: opacity .35s ease;
}
.kc-sell.is-scrub.is-info .kc-sell__eyebrow,
.kc-sell.is-scrub.is-info .kc-sell__title,
.kc-sell.is-scrub.is-info .kc-sell__lede,
.kc-sell.is-scrub.is-info .kc-sell__actions {
    opacity: 1;
    transform: none;
    transition: opacity .7s ease, transform .75s cubic-bezier(.22, 1, .36, 1);
}
.kc-sell.is-scrub.is-info .kc-sell__steps {
    transform: none;
    transition: transform .8s cubic-bezier(.22, 1, .36, 1) .38s;
}
.kc-sell.is-scrub.is-info .kc-sell__step {
    opacity: 1;
    transition: opacity .7s ease;
}
.kc-sell.is-scrub.is-info .kc-sell__eyebrow { transition-delay: .15s; }
.kc-sell.is-scrub.is-info .kc-sell__title   { transition-delay: .22s; }
.kc-sell.is-scrub.is-info .kc-sell__lede    { transition-delay: .3s; }
.kc-sell.is-scrub.is-info .kc-sell__step:nth-child(1) { transition-delay: .44s; }
.kc-sell.is-scrub.is-info .kc-sell__step:nth-child(2) { transition-delay: .56s; }
.kc-sell.is-scrub.is-info .kc-sell__step:nth-child(3) { transition-delay: .68s; }
.kc-sell.is-scrub.is-info .kc-sell__actions { transition-delay: .8s; }

/* timeline fill draws with the info reveal (static when not scrubbing) */
.kc-sell.is-scrub .kc-sell__steps::after {
    transform: scaleY(0);
    transition: transform .35s ease;
}
.kc-sell.is-scrub.is-info .kc-sell__steps::after {
    transform: scaleY(1);
    transition: transform 1.15s cubic-bezier(.4, 0, .2, 1) .6s;
}

@media (prefers-reduced-motion: reduce) {
    .kc-sell.is-scrub { height: auto; }
    .kc-sell.is-scrub .kc-sell__pin { position: relative; height: auto; min-height: 700px; }
    .kc-sell.is-scrub .kc-sell__media { clip-path: none; }
    .kc-sell.is-scrub .kc-sell__img { transform: none; }
    .kc-sell.is-scrub .kc-sell__scrim,
    .kc-sell.is-scrub .kc-sell__eyebrow,
    .kc-sell.is-scrub .kc-sell__title,
    .kc-sell.is-scrub .kc-sell__lede,
    .kc-sell.is-scrub .kc-sell__steps,
    .kc-sell.is-scrub .kc-sell__step,
    .kc-sell.is-scrub .kc-sell__actions { opacity: 1 !important; transform: none !important; transition: none !important; }
    .kc-sell.is-scrub .kc-sell__steps::after { transform: scaleY(1) !important; transition: none !important; }
}

@media (max-width: 960px) {
    .kc-sell__pin { min-height: 0; }
    .kc-sell__content {
        justify-content: flex-start;
        padding: 4.5rem 1.75rem 4rem;
    }
    /* portrait scrim — story sits over the lower half of the photo */
    .kc-sell__scrim {
        background: linear-gradient(180deg,
            rgba(1, 21, 37, 0.5),
            rgba(1, 21, 37, 0.85) 45%,
            rgba(1, 21, 37, 0.95));
    }
}
@media (max-width: 560px) {
    .kc-sell__step { grid-template-columns: 36px 1fr; gap: 1rem; }
    .kc-sell__step-num { font-size: 1.3rem; }
    .kc-sell__actions { gap: 1rem; }
}


/* ---------------------------------------------------------
   HOMEPAGE — ABOUT / SEO
--------------------------------------------------------- */
.kc-about {
    background: var(--kc-color-ink);
    color: #fff;
    padding: 6.5rem 0 7rem;
}
.kc-about__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: 7fr 5fr;
    column-gap: 5rem;
    align-items: center;
}

.kc-about__content {
    max-width: 44rem;
}
.kc-about__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: rgba(255, 255, 255, 0.6);
    margin: 0 0 1.5rem;
}
.kc-about__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.3rem, 3.8vw, 3.85rem);
    line-height: 1.04;
    font-weight: 400;
    letter-spacing: -0.005em;
    color: #fff;
    margin: 0 0 2.25rem;
    max-width: 22ch;
}
.kc-about__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-about__body p {
    font-family: var(--kc-font-body);
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.74);
    margin: 0 0 1.4rem;
}
.kc-about__body p:last-child { margin-bottom: 0; }
.kc-about__body p + p {
    /* Hairline divider between paragraphs — subtle editorial rhythm */
    padding-top: 1.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Media column — tall portrait image anchors the right side */
.kc-about__media {
    align-self: stretch;
    overflow: hidden;
    border-radius: 2px;
    background: #000;
    min-height: 520px;
    position: relative;
}
.kc-about__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 960px) {
    .kc-about__inner {
        grid-template-columns: 1fr;
        row-gap: 2.5rem;
    }
    .kc-about__media {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }
    .kc-about { padding: 4.5rem 0 5rem; }
}

/* ---------------------------------------------------------
   HOMEPAGE — JOURNAL (latest posts grid)
--------------------------------------------------------- */
.kc-journal {
    background: #fff;
    padding: 6.5rem 0 7rem;
}
.kc-journal__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-journal__head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 2rem;
    margin-bottom: 3.5rem;
}
.kc-journal__intro { max-width: 36rem; }
.kc-journal__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}
.kc-journal__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.4rem, 4.5vw, 3.85rem);
    line-height: 1.04;
    font-weight: 400;
    letter-spacing: -0.005em;
    margin: 0;
    color: var(--kc-color-ink);
}
.kc-journal__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-journal__view-all {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .22em;
    text-decoration: none !important;
    color: var(--kc-color-ink);
    border-bottom: 1px solid var(--kc-color-ink);
    padding-bottom: .3rem;
    transition: color .2s ease, border-color .2s ease;
}
.kc-journal__view-all svg { width: 13px; height: 13px; transition: transform .25s ease; }
.kc-journal__view-all:hover {
    color: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
}
.kc-journal__view-all:hover svg { transform: translateX(3px); }

.kc-journal__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}
@media (max-width: 1100px) {
    .kc-journal__grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.5rem; }
}
@media (max-width: 600px) {
    .kc-journal__grid { grid-template-columns: 1fr; }
    .kc-journal { padding: 4.5rem 0 5rem; }
    .kc-journal__head { grid-template-columns: 1fr; }
    .kc-journal__view-all { justify-self: start; }
}

/* Post card */
.kc-post { display: block; }
.kc-post__link {
    display: block;
    text-decoration: none !important;
    color: inherit;
}
.kc-post__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--kc-color-surface);
    margin-bottom: 1.15rem;
    border-radius: 2px;
}
.kc-post__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s cubic-bezier(.22, .61, .36, 1);
}
.kc-post__link:hover .kc-post__img { transform: scale(1.04); }
.kc-post__placeholder {
    width: 100%;
    height: 100%;
    background: var(--kc-color-ink);
    color: rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--kc-font-display);
    font-style: italic;
    font-size: 2rem;
}

.kc-post__cat {
    display: inline-block;
    font-family: var(--kc-font-body);
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .25em;
    color: var(--kc-color-primary);
    margin-bottom: .55rem;
}
.kc-post__title {
    font-family: var(--kc-font-display);
    font-size: 1.4rem;
    line-height: 1.18;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 .65rem;
    transition: color .2s ease;
}
.kc-post__link:hover .kc-post__title { color: var(--kc-color-primary); }
.kc-post__excerpt {
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1.55;
    color: var(--kc-color-muted);
    margin: 0 0 .85rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-post__date {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    color: var(--kc-color-muted);
    letter-spacing: .03em;
}

.kc-product__badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
    font-family: var(--kc-font-body);
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .25em;
    color: #fff;
    background: var(--kc-color-ink);
    padding: .4rem .7rem;
    border-radius: 1px;
}

.kc-product__body { padding: 0 .15rem; }
.kc-product__brand {
    display: block;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .25em;
    color: var(--kc-color-muted);
    margin-bottom: .55rem;
}
.kc-product__name {
    font-family: var(--kc-font-display);
    font-size: 1.45rem;
    line-height: 1.15;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 .35rem;
    transition: color .2s ease;
}
.kc-product__link:hover .kc-product__name { color: var(--kc-color-primary); }
.kc-product__ref {
    display: block;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    color: var(--kc-color-muted);
    margin-bottom: .85rem;
    letter-spacing: .02em;
}
.kc-product__price {
    font-family: var(--kc-font-body);
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

/* Box & Papers / Box / Papers badge — cyan pill, white check on cyan dot */
.kc-product__bp {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: .9rem;
    padding: .35rem .85rem .35rem .35rem;
    background: rgba(0, 176, 219, 0.08);
    border: 1px solid rgba(0, 176, 219, 0.3);
    border-radius: 999px;
    color: var(--kc-color-primary);
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1;
}
.kc-product__bp-tick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--kc-color-primary);
    flex-shrink: 0;
}
.kc-product__bp-tick svg { width: 10px; height: 10px; display: block; }

/* Spillover "View All" card at the end of the New Arrivals slider */
.kc-product--cta .kc-product__media,
.kc-product--cta .kc-product__link { aspect-ratio: 4 / 5; }
.kc-product--cta .kc-product__media {
    background: var(--kc-color-ink);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.75rem 1.6rem;
    overflow: hidden;
    position: relative;
}
.kc-product--cta .kc-product__media::before {
    /* Subtle decorative arc — gives the dark panel some visual texture without distracting. */
    content: "";
    position: absolute;
    right: -40%;
    top: -30%;
    width: 160%;
    height: 160%;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.06);
    pointer-events: none;
}
.kc-product--cta__head { position: relative; }
.kc-product--cta__foot { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.kc-product--cta__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    display: block;
    margin-bottom: 1.2rem;
}
.kc-product--cta__title {
    font-family: var(--kc-font-display);
    font-size: clamp(1.85rem, 2.4vw, 2.4rem);
    font-weight: 400;
    line-height: 1.05;
    color: #fff;
    margin: 0;
}
.kc-product--cta__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-product--cta__line {
    margin: 0;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.65);
    max-width: 60%;
}
.kc-product--cta__arrow {
    width: 56px;
    height: 56px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
    transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.kc-product--cta__arrow svg { width: 22px; height: 22px; }
.kc-product--cta .kc-product__link:hover .kc-product--cta__arrow {
    background: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    transform: translateX(4px);
}
/* The CTA card has its content inside the media area, so suppress the body area. */
.kc-product--cta .kc-product__body { display: none; }
.kc-product__price .amount,
.kc-product__price bdi,
.kc-product__price span {
    color: var(--kc-color-ink) !important;
    font-size: inherit !important;
    font-weight: inherit !important;
}

@media (prefers-reduced-motion: reduce) {
    .kc-product__img,
    .kc-product__link:hover .kc-product__img,
    .kc-arrivals__view-all svg {
        transition: none;
        transform: none;
    }
    .kc-arrivals__track { scroll-behavior: auto; }
}

/* ---------------------------------------------------------
   ARCHIVE — WooCommerce product category & shop
--------------------------------------------------------- */
.kc-archive {
    background: #fff;
}

/* === HERO === */
.kc-archive__hero {
    position: relative;
    min-height: 22vh;
    background: var(--kc-color-ink);
    color: #fff;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    padding: 2.25rem 0 1.5rem;
}
.kc-archive__hero--plain { padding: 2rem 0 1.5rem; }
.kc-archive__hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.kc-archive__hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-archive__hero-tint {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(100deg, rgba(1,21,37,0.92) 0%, rgba(1,21,37,0.7) 35%, rgba(1,21,37,0.35) 65%, rgba(1,21,37,0.2) 100%),
        linear-gradient(180deg, rgba(1,21,37,0.3) 0%, rgba(1,21,37,0.7) 65%, rgba(1,21,37,0.92) 100%);
}
.kc-archive__hero-inner {
    position: relative;
    z-index: 1;
    max-width: var(--kc-container);
    width: 100%;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.kc-archive__crumbs {
    font-family: var(--kc-font-body);
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    margin-bottom: .7rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    text-shadow: 0 1px 6px rgba(0,0,0,0.6);
}
.kc-archive__crumbs a {
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    transition: color .15s ease;
}
.kc-archive__crumbs a:hover { color: var(--kc-color-primary); }
.kc-archive__crumb-sep { opacity: 0.5; }

.kc-archive__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .45rem;
    text-shadow: 0 1px 8px rgba(0,0,0,0.7), 0 0 14px rgba(1,21,37,0.5);
}
.kc-archive__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: -0.01em;
    margin: 0 0 .65rem;
    color: #fff;
    text-shadow: 0 2px 20px rgba(0,0,0,0.65), 0 0 30px rgba(0,0,0,0.4);
}
.kc-archive__desc-wrap {
    max-width: 46rem;
    margin: 0 0 .75rem;
}
.kc-archive__desc {
    font-family: var(--kc-font-body);
    font-size: .95rem;
    line-height: 1.55;
    color: #fff;
    margin: 0;
    text-shadow: 0 1px 8px rgba(0,0,0,0.55);
}
.kc-archive__desc-wrap--clamp .kc-archive__desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-archive__desc-wrap.is-open .kc-archive__desc {
    -webkit-line-clamp: unset;
    overflow: visible;
    display: block;
}
.kc-archive__desc-toggle {
    background: none;
    border: 0;
    padding: 0;
    margin-top: .6rem;
    color: #fff;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(255,255,255,0.6);
    transition: color .15s ease, text-decoration-color .15s ease;
    text-shadow: 0 1px 6px rgba(0,0,0,0.6);
}
.kc-archive__desc-toggle:hover {
    color: var(--kc-color-primary);
    text-decoration-color: var(--kc-color-primary);
}
.kc-archive__count {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.78);
    margin: 0;
}
.kc-archive__count-sep { margin: 0 .5rem; opacity: .5; }
/* Trustpilot TrustBox — beside the "Showing X of Y" count in the results bar. */
.kc-archive__results-lead { display: flex; align-items: center; gap: .5rem 1.4rem; flex-wrap: wrap; }
.kc-archive__trustpilot { min-height: 22px; }
/* Trustpilot mini TrustBox — above the price on the (light) product buy rail. */
.kc-product-page__trustpilot { margin: 0 0 .7rem; min-height: 20px; }
/* The micro widget centres its stars inside its box; pull it flush-left so it
   lines up with the price and spec rows below it. */
.kc-product-page__trustpilot .trustpilot-widget { margin-left: -25px; }

/* === SUB-CATEGORY PILL NAV === */
.kc-archive__subnav {
    background: #F4F2EE;
    padding: 2.25rem 0 2.25rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-archive__subnav-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-archive__subnav-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin: 0 0 1.1rem;
}
.kc-archive__subnav-eyebrow span {
    color: var(--kc-color-ink);
}
.kc-archive__subnav-pills {
    display: flex;
    flex-wrap: nowrap;
    gap: .5rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
    scrollbar-width: none;      /* Firefox: hide the scrollbar, keep scroll */
    -ms-overflow-style: none;
}
.kc-archive__subnav-pills::-webkit-scrollbar { display: none; }
.kc-archive__subnav-pill {
    flex: 0 0 auto;             /* keep natural width; scroll instead of wrap */
    scroll-snap-align: start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1.05rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #fff;
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(1, 21, 37, 0.05);
    transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.kc-archive__subnav-pill:hover {
    background: var(--kc-color-ink);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -10px rgba(1, 21, 37, 0.35);
}
.kc-archive__subnav-pill--thumb { padding-left: .35rem; }
.kc-archive__subnav-pill-thumb {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--kc-color-cream, #F4F2EE);
    box-shadow: inset 0 0 0 1px rgba(1, 21, 37, 0.06);
}
.kc-archive__subnav-pill-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-archive__subnav-pill:hover .kc-archive__subnav-pill-thumb {
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}
.kc-archive__subnav-pill-icon {
    width: 12px;
    height: 12px;
    color: var(--kc-color-muted);
    transition: transform .2s ease, color .2s ease;
}
.kc-archive__subnav-pill:hover .kc-archive__subnav-pill-icon {
    color: #fff;
    transform: translateX(3px);
}

@media (max-width: 720px) {
    .kc-archive__subnav { padding: 1.5rem 0 1.5rem; }
    .kc-archive__subnav-eyebrow { font-size: .62rem; margin-bottom: .85rem; }
    .kc-archive__subnav-pills { gap: .5rem; }
    .kc-archive__subnav-pill { padding: .6rem 1.05rem; font-size: .8rem; }
    .kc-archive__subnav-pill--thumb { padding-left: .35rem; }
    .kc-archive__subnav-pill-thumb { width: 26px; height: 26px; }
}

/* === RESULTS LAYOUT (sidebar + grid) === */
.kc-archive__results { background: #fff; padding: 2.5rem 0 6rem; }
.kc-archive__form {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-archive__layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 2.75rem;
    align-items: start;
}

/* === SIDEBAR === */
.kc-archive__sidebar {
    position: sticky;
    top: 1.25rem;
    align-self: start;
}

.kc-archive__sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 1.1rem;
    margin-bottom: 1.1rem;
}
.kc-archive__sidebar-title {
    font-family: var(--kc-font-display);
    font-size: 1.55rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    letter-spacing: -.01em;
}
.kc-archive__sidebar-clear {
    display: inline-flex;
    align-items: center;
    padding: .42rem .8rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
    text-decoration: none;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.kc-archive__sidebar-clear:hover {
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
    color: #fff;
}

/* === SECTION === */
.kc-archive__filter-section {
    border-top: 1px solid var(--kc-color-line);
    padding: 1.35rem 0;
}
.kc-archive__filter-section:last-child { padding-bottom: 0; }

.kc-archive__filter-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    cursor: pointer;
    user-select: none;
    padding: 0;
    margin: 0;
    transition: color .15s ease;
}
.kc-archive__filter-section-head:hover .kc-archive__filter-section-title,
.kc-archive__filter-section-head:focus-visible .kc-archive__filter-section-title {
    color: var(--kc-color-primary);
}
.kc-archive__filter-section-head:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 4px; }
.kc-archive__filter-section.is-open .kc-archive__filter-section-head { margin-bottom: .9rem; }

.kc-archive__filter-section-title {
    font-family: var(--kc-font-body);
    font-size: .88rem;
    font-weight: 600;
    color: var(--kc-color-ink);
    margin: 0;
    letter-spacing: .01em;
    transition: color .15s ease;
}
.kc-archive__filter-section-meta {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    flex-shrink: 0;
}
.kc-archive__filter-section-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 2px;
    color: var(--kc-color-muted);
    transition: background-color .15s ease, color .15s ease;
    text-decoration: none;
}
.kc-archive__filter-section-clear:hover {
    background: var(--kc-color-surface);
    color: var(--kc-color-ink);
}
.kc-archive__filter-section-clear svg { width: 12px; height: 12px; }

.kc-archive__filter-section-chevron {
    width: 11px;
    height: 8px;
    color: var(--kc-color-muted);
    transition: transform .25s ease, color .15s ease;
}
.kc-archive__filter-section.is-open .kc-archive__filter-section-chevron {
    transform: rotate(180deg);
    color: var(--kc-color-ink);
}
.kc-archive__filter-section-head:hover .kc-archive__filter-section-chevron { color: var(--kc-color-ink); }

/* Accordion body — hidden when section is collapsed. */
.kc-archive__filter-section-body { display: none; }
.kc-archive__filter-section.is-open .kc-archive__filter-section-body { display: block; }

/* === GRID OF CHECKBOXES === */
/* single column — labels never wrap and the right-aligned counts line up */
.kc-archive__filter-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .45rem;
}
.kc-archive__filter-grid--single { grid-template-columns: 1fr; }

/* case sizes — compact tappable pills, whole range visible at once */
.kc-archive__filter-grid--sizes {
    grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));
    gap: .45rem;
}
.kc-archive__size { display: block; cursor: pointer; }
.kc-archive__size input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.kc-archive__size-pill {
    display: block;
    text-align: center;
    padding: .45rem .2rem;
    border: 1px solid var(--kc-color-line);
    border-radius: 4px;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    font-variant-numeric: tabular-nums;
    color: var(--kc-color-ink);
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.kc-archive__size:hover .kc-archive__size-pill { border-color: var(--kc-color-ink); }
.kc-archive__size input:checked + .kc-archive__size-pill {
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
    color: #fff;
}
.kc-archive__size input:focus-visible + .kc-archive__size-pill {
    box-shadow: 0 0 0 3px rgba(0, 176, 219, 0.35);
}

.kc-archive__check {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    cursor: pointer;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-ink);
    line-height: 1.35;
    padding: .2rem 0;
    transition: color .15s ease;
}
.kc-archive__check-box { margin-top: 2px; }
.kc-archive__check:hover { color: var(--kc-color-primary); }
.kc-archive__check input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.kc-archive__check-box {
    width: 14px;
    height: 14px;
    border: 1.2px solid #B5B5B5;
    border-radius: 2px;
    flex-shrink: 0;
    position: relative;
    transition: border-color .15s ease, background-color .15s ease;
    background: #fff;
}
.kc-archive__check:hover .kc-archive__check-box { border-color: var(--kc-color-ink); }
.kc-archive__check input:checked + .kc-archive__check-box {
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
}
.kc-archive__check input:checked + .kc-archive__check-box::after {
    content: "";
    position: absolute;
    left: 3px; top: -1px;
    width: 5px; height: 9px;
    border: solid #fff;
    border-width: 0 1.6px 1.6px 0;
    transform: rotate(45deg);
}
.kc-archive__check.is-active { color: var(--kc-color-ink); font-weight: 500; }

/* Color swatch — used in place of the square checkbox for the Dial section. */
/* domed glossy chip — same finish as the product-page spec swatches, so the
   metal gradients (steel/gold/two-tone) read as polished material */
.kc-archive__check-swatch {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 1px;
    background: #c8c8c8;
    background-size: cover;
    background-position: center;
    box-shadow:
        inset 0 1px 1.5px rgba(255, 255, 255, 0.55),
        inset 0 -1px 2px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(1, 21, 37, 0.12);
    transition: box-shadow .15s ease;
}
.kc-archive__check--swatch:hover .kc-archive__check-swatch {
    box-shadow:
        inset 0 1px 1.5px rgba(255, 255, 255, 0.55),
        inset 0 -1px 2px rgba(0, 0, 0, 0.35),
        0 0 0 1.5px var(--kc-color-muted);
}
.kc-archive__check--swatch input:checked + .kc-archive__check-swatch {
    box-shadow:
        inset 0 1px 1.5px rgba(255, 255, 255, 0.55),
        inset 0 -1px 2px rgba(0, 0, 0, 0.35),
        0 0 0 1px #fff,
        0 0 0 2.5px var(--kc-color-ink);
}
.kc-archive__check-label { flex: 1; min-width: 0; }
.kc-archive__check-count {
    font-size: .7rem;
    color: var(--kc-color-muted);
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
}

.kc-archive__apply {
    margin-top: 1rem;
    width: 100%;
    background: var(--kc-color-ink);
    color: #fff;
    border: 0;
    padding: .85rem 1.2rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
    cursor: pointer;
}

/* Overflow: hide options beyond the visible limit until "Show more" is clicked. */
.kc-archive__filter-section .kc-archive__check.is-overflow { display: none; }
.kc-archive__filter-section.is-expanded .kc-archive__check.is-overflow { display: flex; }

.kc-archive__filter-section-more {
    margin-top: .75rem;
    background: none;
    border: 0;
    padding: 0;
    color: var(--kc-color-ink);
    cursor: pointer;
    font-family: var(--kc-font-body);
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .01em;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--kc-color-line);
    transition: text-decoration-color .15s ease, color .15s ease;
}
.kc-archive__filter-section-more:hover {
    color: var(--kc-color-primary);
    text-decoration-color: var(--kc-color-primary);
}
.kc-archive__filter-section-more-hide { display: none; }
.kc-archive__filter-section.is-expanded .kc-archive__filter-section-more-show { display: none; }
.kc-archive__filter-section.is-expanded .kc-archive__filter-section-more-hide { display: inline; }

/* === MAIN COLUMN === */
.kc-archive__main { min-width: 0; }
.kc-archive__results-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--kc-color-line);
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-muted);
    letter-spacing: .04em;
    gap: 1rem;
}
.kc-archive__results-count { flex-shrink: 0; }

/* Grid-density toggle — only surfaces on mobile (desktop grid is already multi-column) */
.kc-archive__view { display: none; }
.kc-archive__view-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--kc-color-line);
    background: transparent;
    color: var(--kc-color-muted);
    cursor: pointer;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.kc-archive__view-btn:first-child { border-radius: 8px 0 0 8px; }
.kc-archive__view-btn:last-child { border-radius: 0 8px 8px 0; margin-left: -1px; }
.kc-archive__view-btn svg { width: 16px; height: 16px; fill: currentColor; }
.kc-archive__view-btn.is-active {
    color: #fff;
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
    position: relative;
    z-index: 1;
}
.kc-archive__view-btn:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 2px; }

/* active filter chips — sit between the count and the sort control */
.kc-archive__chips {
    flex: 1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    min-width: 0;
}
.kc-archive__chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .6rem .38rem .75rem;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--kc-color-ink);
    text-decoration: none !important;
    white-space: nowrap;
    transition: border-color .15s ease, background-color .15s ease;
}
.kc-archive__chip svg {
    width: 13px;
    height: 13px;
    color: var(--kc-color-muted);
    transition: color .15s ease;
}
.kc-archive__chip:hover,
.kc-archive__chip:focus-visible {
    border-color: var(--kc-color-ink);
}
.kc-archive__chip:hover svg { color: var(--kc-color-ink); }
/* mini domed swatch — same finish as the sidebar chips */
.kc-archive__chip-swatch {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
    background-size: cover;
    background-position: center;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.55),
        inset 0 -1px 1.5px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(1, 21, 37, 0.12);
}
.kc-archive__chips-clear {
    font-size: .74rem;
    font-weight: 500;
    color: var(--kc-color-muted);
    text-decoration: none !important;
    border-bottom: 1px solid var(--kc-color-line);
    padding-bottom: 1px;
    white-space: nowrap;
    transition: color .15s ease, border-color .15s ease;
}
.kc-archive__chips-clear:hover {
    color: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
}

/* --- Price filter: histogram + dual-handle range + min/max + budget pills --- */
.kc-price { padding-top: 2.2rem; }   /* headroom for the value tips */
.kc-price__chart {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 52px;
    margin: 0 11px;
}
.kc-price__bar {
    flex: 1;
    min-width: 0;
    background: var(--kc-color-line);
    border-radius: 1px 1px 0 0;
    transition: background-color .15s ease;
}
.kc-price__bar.is-in { background: var(--kc-color-primary); }

.kc-price__slider {
    position: relative;
    height: 26px;
}
.kc-price__rail {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    margin-top: -1px;
    background: var(--kc-color-line);
}
.kc-price__fill {
    position: absolute;
    top: 50%;
    height: 2px;
    margin-top: -1px;
    background: var(--kc-color-ink);
}
.kc-price__tip {
    position: absolute;
    top: -1.9rem;
    transform: translateX(-50%);
    background: var(--kc-color-ink);
    color: #fff;
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .03em;
    padding: .22rem .5rem;
    border-radius: 3px;
    white-space: nowrap;
    pointer-events: none;
    z-index: 2;
}
.kc-price__slider input[type="range"] {
    position: absolute;
    inset: 0;
    width: 100%;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
    background: none;
    pointer-events: none;   /* only the thumbs are interactive */
    z-index: 3;
}
.kc-price__slider input[type="range"]:focus { outline: none; }
.kc-price__slider input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    pointer-events: auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--kc-color-ink);
    box-shadow: 0 1px 4px rgba(1, 21, 37, 0.25);
    cursor: grab;
}
.kc-price__slider input[type="range"]::-moz-range-thumb {
    pointer-events: auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--kc-color-ink);
    box-shadow: 0 1px 4px rgba(1, 21, 37, 0.25);
    cursor: grab;
}
.kc-price__slider input[type="range"]:focus-visible::-webkit-slider-thumb {
    box-shadow: 0 0 0 3px rgba(0, 176, 219, 0.35);
}
.kc-price__slider input[type="range"]:active::-webkit-slider-thumb { cursor: grabbing; }

.kc-price__inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-top: .9rem;
}
.kc-price__field-label {
    display: block;
    font-size: .68rem;
    color: var(--kc-color-muted);
    margin-bottom: .35rem;
}
.kc-price__field-box {
    display: flex;
    align-items: center;
    border: 1px solid var(--kc-color-line);
    border-radius: 4px;
    padding: .5rem .65rem;
    transition: border-color .15s ease;
}
.kc-price__field-box:focus-within { border-color: var(--kc-color-ink); }
.kc-price__cur {
    color: var(--kc-color-muted);
    font-size: .85rem;
    border-right: 1px solid var(--kc-color-line);
    padding-right: .5rem;
    margin-right: .5rem;
}
.kc-price__field-box input {
    border: 0;
    outline: none;
    width: 100%;
    min-width: 0;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    color: var(--kc-color-ink);
    background: none;
    -moz-appearance: textfield;
    appearance: textfield;
}
.kc-price__field-box input::-webkit-outer-spin-button,
.kc-price__field-box input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.kc-price__budget { margin-top: 1.1rem; }
.kc-price__budget-label {
    font-size: .66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--kc-color-muted);
    margin: 0 0 .55rem;
}
.kc-price__budget-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.kc-price__preset {
    display: inline-block;
    padding: .35rem .7rem;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    text-decoration: none !important;
    white-space: nowrap;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.kc-price__preset:hover { border-color: var(--kc-color-ink); }
.kc-price__preset.is-active {
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
    color: #fff;
}

.kc-archive__sort {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    position: relative;
    font-family: var(--kc-font-body);
    font-size: .78rem;
    color: var(--kc-color-ink);
}
.kc-archive__sort-label {
    color: var(--kc-color-muted);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.kc-archive__sort select {
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    border: 0;
    padding: .25rem 1.4rem .25rem .4rem;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
.kc-archive__sort select:focus { outline: none; }
.kc-archive__sort-caret {
    position: absolute;
    right: .25rem;
    width: 9px;
    height: 6px;
    pointer-events: none;
}

.kc-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem 1.5rem;
}
@media (max-width: 1300px) {
    .kc-archive__layout { gap: 2rem; grid-template-columns: 280px 1fr; }
}
@media (max-width: 1000px) {
    .kc-archive__grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; }
}
@media (max-width: 600px) {
    .kc-archive__grid { grid-template-columns: repeat(2, 1fr); gap: 1.6rem .7rem; }
}

/* === IN-GRID SHOWCASE TILE (full-bleed banner in one product slot) === */
.kc-archive__promo-link {
    position: relative;
    display: block;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: var(--kc-color-ink);
    color: #fff;
    text-decoration: none;
}
.kc-archive__promo-media {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.kc-archive__promo-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s cubic-bezier(.22, .61, .36, 1);
}
.kc-archive__promo-link:hover .kc-archive__promo-media img { transform: scale(1.05); }
/* legibility scrim — keeps text crisp over any image and reads as a banner */
.kc-archive__promo-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(1, 21, 37, 0.95) 0%, rgba(1, 21, 37, 0.82) 16%, rgba(1, 21, 37, 0.35) 42%, rgba(1, 21, 37, 0) 66%),
        linear-gradient(to bottom, rgba(1, 21, 37, 0.35) 0%, rgba(1, 21, 37, 0) 30%);
}
/* corner ribbon flag so it never reads as a product card */
.kc-archive__promo-flag {
    position: absolute;
    top: 1.1rem;
    left: 1.1rem;
    z-index: 2;
    display: inline-block;
    padding: .4rem .7rem;
    background: var(--kc-color-primary);
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.kc-archive__promo-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .28rem;
    padding: 1.7rem 1.6rem;
}
.kc-archive__promo-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-archive__promo-brand {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}
.kc-archive__promo-title {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: 1.85rem;
    line-height: 1.06;
    color: #fff;
    margin: .12rem 0 0;
}
.kc-archive__promo-meta {
    font-family: var(--kc-font-body);
    font-size: .74rem;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, 0.7);
}
.kc-archive__promo-text {
    font-family: var(--kc-font-body);
    font-size: .84rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.8);
    margin: .3rem 0 0;
}
.kc-archive__promo-price {
    font-family: var(--kc-font-body);
    font-size: 1.08rem;
    font-weight: 600;
    color: #fff;
    margin-top: .4rem;
}
.kc-archive__promo-price del { color: rgba(255, 255, 255, 0.5); font-weight: 400; margin-right: .4rem; }
.kc-archive__promo-price ins { text-decoration: none; }
.kc-archive__promo-cta {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-top: .95rem;
    padding-bottom: .1rem;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    border-bottom: 1px solid rgba(0, 176, 219, 0.45);
}
.kc-archive__promo-cta svg { width: 15px; height: 15px; transition: transform .3s ease; }
.kc-archive__promo-link:hover .kc-archive__promo-cta svg { transform: translateX(4px); }
@media (max-width: 600px) {
    .kc-archive__promo-flag { top: .8rem; left: .8rem; padding: .32rem .55rem; font-size: .5rem; }
    .kc-archive__promo-body { padding: 1.1rem 1rem 1.2rem; gap: .2rem; }
    .kc-archive__promo-title { font-size: 1.25rem; }
    .kc-archive__promo-meta { font-size: .64rem; }
    .kc-archive__promo-price { font-size: .92rem; }
    .kc-archive__promo-cta { margin-top: .65rem; font-size: .58rem; }
}

/* === LOAD MORE === */
.kc-archive__loadmore {
    margin-top: 4rem;
    text-align: center;
}
.kc-archive__loadmore-btn {
    display: inline-flex;
    align-items: center;
    gap: 1.1rem;
    padding: 1rem 2.6rem;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 2px;
    font-family: var(--kc-font-body);
    font-size: .92rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.kc-archive__loadmore-btn:hover {
    background: var(--kc-color-ink);
    color: #fff;
    border-color: var(--kc-color-ink);
}
.kc-archive__loadmore-btn svg { width: 14px; height: 14px; }
.kc-archive__loadmore-spinner { display: none; animation: kc-spin 0.8s linear infinite; }
.kc-archive__loadmore-btn.is-loading { pointer-events: none; }
.kc-archive__loadmore-btn.is-loading .kc-archive__loadmore-icon { display: none; }
.kc-archive__loadmore-btn.is-loading .kc-archive__loadmore-spinner { display: inline-block; }
@keyframes kc-spin { to { transform: rotate(360deg); } }

.kc-archive__loadmore-bar {
    margin: 2.25rem auto 1rem;
    height: 2px;
    width: 100%;
    max-width: 26rem;
    background: var(--kc-color-line);
    position: relative;
    overflow: hidden;
}
.kc-archive__loadmore-bar-fill {
    display: block;
    height: 100%;
    background: var(--kc-color-ink);
    width: calc(var(--p, 0) * 100%);
    transition: width .4s cubic-bezier(.22, .61, .36, 1);
}
.kc-archive__loadmore-text {
    font-family: var(--kc-font-body);
    font-size: .88rem;
    color: var(--kc-color-muted);
    margin: 0;
    letter-spacing: .01em;
}
.kc-archive__loadmore-text [data-kc-loadmore-shown] {
    color: var(--kc-color-ink);
    font-weight: 500;
}

/* === EMPTY === */
.kc-archive__empty {
    text-align: center;
    padding: 5rem 1rem;
    color: var(--kc-color-muted);
}
.kc-archive__empty h2 {
    font-family: var(--kc-font-display);
    font-size: 2rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 .75rem;
}
.kc-archive__empty p { margin: 0 0 2rem; }
.kc-archive__empty-cta {
    display: inline-block;
    padding: .9rem 2rem;
    background: var(--kc-color-ink);
    color: #fff !important;
    text-decoration: none;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .22em;
    border-radius: 2px;
}
.kc-archive__empty-cta:hover { background: #0a2238; }

@media (max-width: 880px) {
    .kc-archive__layout { grid-template-columns: 1fr; gap: 0; }
    .kc-archive__sidebar {
        position: static;
        max-height: none;
        overflow-y: visible;
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid var(--kc-color-line);
    }
    .kc-archive__filter-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .kc-archive__title { font-size: clamp(1.75rem, 7vw, 2.3rem); }
    .kc-archive__hero { min-height: 18vh; padding: 1.75rem 0 1.25rem; }
    .kc-archive__desc { font-size: .9rem; }
    .kc-archive__results { padding: 2rem 0 4rem; }
    .kc-archive__sidebar-title { font-size: 1.35rem; }
}

/* ---------------------------------------------------------
   SINGLE PRODUCT PAGE — editorial luxury layout
--------------------------------------------------------- */
.kc-product-page {
    background: #fff;
    color: var(--kc-color-ink);
}

/* === BREADCRUMBS === */
.kc-product-page__crumbs {
    background: #fff;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__crumbs-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: .9rem 1.5rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
}
.kc-product-page__crumbs-inner a {
    color: inherit;
    text-decoration: none;
    transition: color .15s ease;
}
.kc-product-page__crumbs-inner a:hover { color: var(--kc-color-ink); }
.kc-product-page__crumbs-inner > span[aria-hidden="true"] { opacity: .45; }
.kc-product-page__crumbs-inner > span:last-child { color: var(--kc-color-ink); }

/* === SPLIT EDITORIAL HERO (top of product page) ===
   Left: image bleeds full-cover (no float). Right: calm typographic panel. */
.kc-product-page__gallery {
    display: grid;
    grid-template-columns: 1.45fr 1fr;
    min-height: clamp(520px, 82vh, 900px);
    background: #fff;
}
.kc-product-page__stage {
    position: relative;
    overflow: hidden;
    background: #121319;   /* dark stage so the watch reads as a spotlit display */
    height: 100%;                                  /* fill the (rail-driven) hero height */
    min-height: clamp(520px, 80vh, 880px);         /* …but never shorter than this */
}

/* Breadcrumbs overlaid in the top-left of the dark gallery stage. */
.kc-solo-crumbs {
    position: absolute;
    top: clamp(1.1rem, 2.4vw, 1.85rem);
    left: clamp(1.25rem, 3vw, 2.6rem);
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .45);
    transition: opacity .4s ease;
}
.kc-solo-crumbs a { color: rgba(255, 255, 255, .62); text-decoration: none; transition: color .15s ease; }
.kc-solo-crumbs a:hover { color: #fff; }
.kc-solo-crumbs span[aria-hidden] { color: rgba(255, 255, 255, .3); }
.kc-solo-crumbs .is-current { color: #fff; }
/* Step aside when the gallery grid takes over. */
.kc-product-page__gallery--solo.is-gallery .kc-solo-crumbs { opacity: 0; pointer-events: none; }

/* Swiper hero — dual-layer parallax. */
.kc-hero-swiper { width: 100%; height: 100%; position: absolute; inset: 0; }
/* Force full height down the chain — slides have no in-flow content (bg layers are
   absolute), so without this they collapse to 0 and nothing shows. */
.kc-hero-swiper .swiper-wrapper { height: 100%; }
.kc-hero-swiper .swiper-slide { height: 100%; }
.kc-hero-slide { position: relative; overflow: hidden; background: #121319; height: 100%; }
/* Blurred full-bleed backdrop — same image, cover + heavy blur, dimmed to a moody field. */
.kc-hero-slide-bg {
    position: absolute;
    inset: -10%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    filter: blur(22px) brightness(.52) saturate(1.2);
    transform: scale(1.12);   /* no parallax on the bg, so transform is free */
}
/* Spotlight vignette — lit centre, dark edges → the card reads like a museum display. */
.kc-hero-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(120% 90% at 50% 45%, rgba(10,11,15,0) 32%, rgba(10,11,15,0.55) 100%);
    z-index: 1;
}
/* Parallax wrapper centres the contained "photo card" (Swiper translates this). */
.kc-hero-slide-parallax {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* The sharp foreground card — the watch photo at its natural aspect (no letterbox),
   floating over the dark backdrop with a deep shadow. */
.kc-hero-slide-img {
    height: 78%;
    width: auto;
    max-width: 80%;
    display: block;
    background: #fff;
    padding: 10px;                 /* a thin white mat, like a framed print */
    box-sizing: border-box;
    box-shadow: 0 50px 120px -30px rgba(0,0,0,0.8), 0 0 0 1px rgba(255,255,255,0.06);
}
.kc-hero-swiper .swiper-slide { will-change: transform; }

.kc-product-page__stage-frame {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 8s cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
}
.kc-product-page__stage-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.kc-product-page__stage-frame.is-active {
    opacity: 1;
    transform: scale(1);   /* slow drift in = subtle life */
    z-index: 1;
}

/* Segmented progress — left-aligned cluster with a live index; the active
   segment expands and fills, the rest stay as short ticks. */
.kc-product-page__progress {
    position: absolute;
    left: clamp(1.25rem, 3vw, 2.5rem);
    right: auto;
    bottom: clamp(1.25rem, 3vw, 2.25rem);
    z-index: 3;
    --kc-seg-dur: 5200ms;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .85rem;
}
.kc-product-page__progress-num {
    font-family: var(--kc-font-body);
    font-size: .76rem;
    font-weight: 500;
    letter-spacing: .2em;
    color: rgba(255,255,255,0.7);
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 10px rgba(0,0,0,0.6);
}
.kc-product-page__progress-num [data-kc-count-current] { color: #fff; font-weight: 600; }
.kc-product-page__progress-num-sep { margin: 0 .45rem; opacity: .5; }

.kc-product-page__progress-row {
    display: flex;
    align-items: center;
    gap: .45rem;
}
.kc-product-page__progress-seg {
    width: 18px;
    padding: 9px 0;          /* tall hit area; thin visible bar */
    margin: 0;
    border: 0;
    background: none;
    cursor: pointer;
    display: block;
    transition: width .45s cubic-bezier(.22,.61,.36,1);
}
.kc-product-page__progress-seg.is-active { width: 60px; }
.kc-product-page__progress-track {
    display: block;
    height: 2px;
    width: 100%;
    background: rgba(255,255,255,0.4);
    overflow: hidden;
    position: relative;
}
.kc-product-page__progress-fill {
    display: block;
    height: 100%;
    width: 100%;
    background: #fff;
    transform: scaleX(0);
    transform-origin: left center;
}
.kc-product-page__progress-seg.is-done .kc-product-page__progress-track { background: rgba(255,255,255,0.7); }
/* Done segments read full; the active segment's fill is driven live by JS
   (Swiper autoplay clock) via an inline scaleX transform. */
.kc-product-page__progress-seg.is-done .kc-product-page__progress-fill { transform: scaleX(1); }
.kc-product-page__progress-fill { transition: transform .12s linear; }

/* Custom "Click" cursor over the progress segments. Outer follows the pointer
   1:1 (no transition = no lag); inner springs in/out. */
.kc-product-page__progress { cursor: none; }
.kc-product-page__cursor {
    position: fixed;
    top: 0; left: 0;
    z-index: 70;
    pointer-events: none;
    transform: translate(var(--cx, -200px), var(--cy, -200px));
    will-change: transform;
}
.kc-product-page__cursor-inner {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0;
    transition: opacity .2s ease, transform .3s cubic-bezier(.34, 1.56, .64, 1);
    color: #fff;
    font-family: var(--kc-font-body);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.65);
    white-space: nowrap;
}
.kc-product-page__cursor.is-visible .kc-product-page__cursor-inner {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.kc-product-page__cursor svg {
    width: 19px;
    height: 19px;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 8px rgba(0,0,0,0.5));
}
@media (hover: none) {
    .kc-product-page__progress { cursor: pointer; }
    .kc-product-page__cursor { display: none; }
}

/* Intro panel */
.kc-product-page__intro {
    display: flex;
    flex-direction: column;
    justify-content: space-between;   /* top / main / foot spread down the panel */
    padding: clamp(2.5rem, 5vw, 4.5rem);
    background: #fff;
    position: relative;
}
.kc-product-page__intro-top { flex: 0 0 auto; }
.kc-product-page__intro-main { flex: 0 0 auto; }   /* space-between centres it between top + foot */
.kc-product-page__intro-foot {
    flex: 0 0 auto;
    padding-top: 1.75rem;
    border-top: 1px solid var(--kc-color-line);
}

/* Gallery chapter index — clickable contents that double as frame navigation. */
.kc-product-page__chapters { margin-bottom: 1.5rem; }
.kc-product-page__chapters-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}
.kc-product-page__chapters-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.kc-product-page__chapter {
    display: flex;
    align-items: center;
    gap: .9rem;
    width: 100%;
    padding: .5rem 0;
    background: none;
    border: 0;
    cursor: pointer;
    text-align: left;
    color: var(--kc-color-muted);
    transition: color .2s ease;
}
.kc-product-page__chapter-num {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    font-variant-numeric: tabular-nums;
    color: var(--kc-color-muted);
    transition: color .2s ease;
    flex-shrink: 0;
}
.kc-product-page__chapter-label {
    font-family: var(--kc-font-display);
    font-size: 1.18rem;
    font-weight: 400;
    color: var(--kc-color-muted);
    letter-spacing: -.005em;
    transition: color .2s ease;
    flex-shrink: 0;
}
.kc-product-page__chapter-line {
    flex: 1;
    height: 1px;
    background: var(--kc-color-line);
    transform: scaleX(0.35);
    transform-origin: left center;
    transition: transform .35s cubic-bezier(.22,.61,.36,1), background-color .2s ease;
}
.kc-product-page__chapter:hover .kc-product-page__chapter-label,
.kc-product-page__chapter:hover .kc-product-page__chapter-num { color: var(--kc-color-ink); }
.kc-product-page__chapter:hover .kc-product-page__chapter-line { transform: scaleX(0.6); }
.kc-product-page__chapter.is-active .kc-product-page__chapter-label { color: var(--kc-color-ink); }
.kc-product-page__chapter.is-active .kc-product-page__chapter-num { color: var(--kc-color-primary); }
.kc-product-page__chapter.is-active .kc-product-page__chapter-line {
    transform: scaleX(1);
    background: var(--kc-color-ink);
}
.kc-product-page__intro-price {
    font-family: var(--kc-font-display);
    font-size: clamp(1.8rem, 2.4vw, 2.4rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.01em;
    color: var(--kc-color-ink);
    margin-bottom: 1.25rem;
}
.kc-product-page__intro-price .amount,
.kc-product-page__intro-price bdi,
.kc-product-page__intro-price span { font: inherit !important; color: inherit !important; }
.kc-product-page__intro-price del { opacity: .4; margin-right: .4rem; font-size: .65em; }
.kc-product-page__intro-price ins { text-decoration: none; }
.kc-product-page__intro-assure {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}
.kc-product-page__intro-assure li {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-ink);
    letter-spacing: .01em;
}
.kc-product-page__intro-assure svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: var(--kc-color-primary);
}
.kc-product-page__intro-count {
    font-family: var(--kc-font-body);
    font-size: .74rem;
    letter-spacing: .2em;
    color: var(--kc-color-muted);
    font-variant-numeric: tabular-nums;
    margin-bottom: 0;
}
.kc-product-page__intro-count [data-kc-count-current] { color: var(--kc-color-ink); font-weight: 600; }
.kc-product-page__intro-count-sep { margin: 0 .55rem; opacity: .5; }
.kc-product-page__intro-brand {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .4em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin-bottom: 1rem;
}
.kc-product-page__intro-model {
    font-family: var(--kc-font-display);
    font-size: clamp(3rem, 5.5vw, 5.5rem);
    font-weight: 400;
    line-height: .9;
    letter-spacing: -.025em;
    color: var(--kc-color-ink);
    margin: 0;
}
.kc-product-page__intro-model::after { content: "."; color: var(--kc-color-primary); }
.kc-product-page__intro-sub {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin: 1.4rem 0 0;
}
.kc-product-page__intro-rule {
    display: block;
    width: 56px;
    height: 1px;
    background: var(--kc-color-ink);
    margin: clamp(1.75rem, 4vw, 2.75rem) 0;
    opacity: .25;
}
.kc-product-page__intro-cue {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
    text-decoration: none;
    align-self: flex-start;
    transition: gap .2s ease, color .2s ease;
}
.kc-product-page__intro-cue svg { width: 14px; height: 14px; }
.kc-product-page__intro-cue:hover { color: var(--kc-color-primary); gap: .9rem; }

/* Entrance */
@keyframes kc-stage-in { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0 0 0 0); } }
@keyframes kc-rise    { from { opacity: 0; transform: translateY(40%); } to { opacity: 1; transform: translateY(0); } }
.kc-product-page__stage { animation: kc-stage-in 1.1s cubic-bezier(.76,0,.24,1) both; }
.kc-product-page__intro-count { animation: kc-rise .8s cubic-bezier(.22,.61,.36,1) .5s both; }
.kc-product-page__intro-brand { animation: kc-rise .8s cubic-bezier(.22,.61,.36,1) .6s both; }
.kc-product-page__intro-model { animation: kc-rise .9s cubic-bezier(.22,.61,.36,1) .7s both; }
.kc-product-page__intro-sub   { animation: kc-rise .8s cubic-bezier(.22,.61,.36,1) .82s both; }
.kc-product-page__intro-rule  { animation: kc-rise .8s cubic-bezier(.22,.61,.36,1) .9s both; }
.kc-product-page__intro-cue   { animation: kc-rise .8s cubic-bezier(.22,.61,.36,1) .98s both; }

@media (prefers-reduced-motion: reduce) {
    .kc-product-page__stage,
    .kc-product-page__intro-count,
    .kc-product-page__intro-brand,
    .kc-product-page__intro-model,
    .kc-product-page__intro-sub,
    .kc-product-page__intro-rule,
    .kc-product-page__intro-cue { animation: none; }
    .kc-product-page__stage-frame { transition: opacity .4s ease; transform: none; }
    .kc-product-page__stage-frame.is-active { transform: none; }
    .kc-product-page__progress-seg.is-active .kc-product-page__progress-fill { animation: none; transform: scaleX(1); }
}
@media (max-width: 900px) {
    .kc-product-page__gallery { grid-template-columns: 1fr; min-height: 0; }
    .kc-product-page__stage { height: clamp(340px, 56vh, 560px); min-height: 0; }
    .kc-product-page__intro { padding: 2.5rem 1.5rem 3rem; text-align: left; }
    .kc-product-page__intro-count { margin-bottom: 1.25rem; }
}

/* === BUY ROW — three editorial sections: story | specs | CTA === */
.kc-product-page__buy {
    background: #fff;
    padding: 4.5rem 0 5.5rem;
    position: relative;
    overflow: hidden;
}
/* Oversized ghosted reference — editorial depth behind the triptych. */
.kc-product-page__buy-watermark {
    position: absolute;
    top: .06em;             /* sit fully inside the section — line-height .8 lets caps clear */
    right: -.04em;
    margin: 0;
    font-family: var(--kc-font-display);
    font-size: clamp(9rem, 26vw, 26rem);
    line-height: .8;
    font-weight: 500;
    letter-spacing: -.02em;
    color: var(--kc-color-ink);
    opacity: .035;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    z-index: 0;
}
.kc-product-page__buy-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 3.5rem;
    align-items: start;
    position: relative;
    z-index: 1;
}
/* Hairline column dividers — turns 3 loose columns into a designed triptych. */
.kc-product-page__buy-spectable,
.kc-product-page__buy-rail { position: relative; }
.kc-product-page__buy-spectable::before,
.kc-product-page__buy-rail::before {
    content: "";
    position: absolute;
    top: .35rem;
    bottom: .35rem;
    left: -1.75rem;
    width: 1px;
    background: var(--kc-color-line);
}

/* Section index numerals — magazine-grade ordinals on each eyebrow. */
.kc-idx {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--kc-color-primary);
    margin-right: .7rem;
    opacity: .9;
}

/* Scroll-reveal choreography — armed by JS (.is-armed) so no-JS shows everything.
   The three columns fade-rise in sequence as the section enters the viewport. */
.kc-product-page__buy.is-armed .kc-product-page__buy-story,
.kc-product-page__buy.is-armed .kc-product-page__buy-spectable,
.kc-product-page__buy.is-armed .kc-product-page__buy-rail {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
}
.kc-product-page__buy.is-armed.is-in .kc-product-page__buy-story  { opacity: 1; transform: none; transition-delay: 0s; }
.kc-product-page__buy.is-armed.is-in .kc-product-page__buy-spectable { opacity: 1; transform: none; transition-delay: .1s; }
.kc-product-page__buy.is-armed.is-in .kc-product-page__buy-rail   { opacity: 1; transform: none; transition-delay: .2s; }
@media (prefers-reduced-motion: reduce) {
    .kc-product-page__buy.is-armed .kc-product-page__buy-story,
    .kc-product-page__buy.is-armed .kc-product-page__buy-spectable,
    .kc-product-page__buy.is-armed .kc-product-page__buy-rail {
        opacity: 1; transform: none; transition: none;
    }
}

.kc-product-page__buy-story { width: 100%; }
.kc-product-page__buy-story-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1.2rem;
}
.kc-product-page__buy-story-lead {
    font-family: var(--kc-font-display);
    font-size: clamp(1.4rem, 1.8vw, 1.85rem);
    line-height: 1.32;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 1.4rem;
    letter-spacing: -.005em;
}
.kc-product-page__buy-story-lead::first-line { letter-spacing: .005em; }
.kc-product-page__buy-story-para {
    font-family: var(--kc-font-body);
    font-size: .98rem;
    line-height: 1.7;
    color: var(--kc-color-ink);
    margin: 0 0 1.1rem;
    opacity: .85;
}
.kc-product-page__buy-story-para:last-child { margin-bottom: 0; }

/* At-a-glance — standout-spec chips under the description. */
.kc-product-page__glance {
    list-style: none;
    margin: 1.75rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.kc-product-page__glance-chip {
    display: inline-flex;
    align-items: center;
    padding: .5rem .95rem;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    font-family: var(--kc-font-body);
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--kc-color-ink);
    background: #fff;
    transition: border-color .18s ease, color .18s ease;
}
.kc-product-page__glance-chip:hover {
    border-color: var(--kc-color-ink);
}

.kc-product-page__included {
    margin-top: 2.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--kc-color-line);
}
.kc-product-page__included-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1.25rem;
}
.kc-product-page__included-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.5rem;
}
.kc-product-page__included-item {
    display: flex;
    align-items: center;
    gap: .7rem;
    font-family: var(--kc-font-body);
    font-size: .92rem;
    color: var(--kc-color-ink);
    line-height: 1.35;
}
.kc-product-page__included-tick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(0, 176, 219, 0.1);
    color: var(--kc-color-primary);
}
.kc-product-page__included-tick svg { width: 13px; height: 13px; display: block; }

@media (max-width: 560px) {
    .kc-product-page__included-list { grid-template-columns: 1fr; }
}
.kc-product-page__buy-rail {
    display: flex;
    flex-direction: column;
    gap: 1rem;   /* single source of vertical rhythm — children carry no own margins */
}

/* Acquire head — price as a hero moment. */
.kc-product-page__rail-head {
    margin-bottom: 0;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__rail-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1rem;
}
.kc-product-page__price-hero {
    font-family: var(--kc-font-display);
    font-size: clamp(2.6rem, 3.4vw, 3.4rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--kc-color-ink);
    margin: 0 0 .65rem;
}
.kc-product-page__price-hero .amount,
.kc-product-page__price-hero bdi,
.kc-product-page__price-hero span { font: inherit !important; color: inherit !important; }
.kc-product-page__price-hero del { opacity: .4; margin-right: .5rem; font-size: .6em; }
.kc-product-page__price-hero ins { text-decoration: none; }
.kc-product-page__price-sub {
    font-family: var(--kc-font-body);
    font-size: .76rem;
    letter-spacing: .04em;
    color: var(--kc-color-muted);
    margin: 0 0 1.15rem;
}

/* Finish chips in the acquire rail — larger, read-at-a-glance dial/material/papers. */
.kc-rail-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.35rem;
}
.kc-rail-swatch { display: inline-flex; align-items: center; gap: .6rem; }
.kc-rail-swatch__dot {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-size: cover;
    box-shadow:
        inset 0 1.5px 2px rgba(255, 255, 255, 0.5),
        inset 0 -2px 3px rgba(0, 0, 0, 0.3),
        0 0 0 1px rgba(1, 21, 37, 0.12),
        0 2px 5px rgba(0, 0, 0, 0.12);
}
/* Box & Papers — flat cyan-tinted disc with a check, not a glossy colour bead. */
.kc-rail-swatch__dot--check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 176, 219, .12);
    box-shadow: none;
    color: var(--kc-color-primary);
}
.kc-rail-swatch__dot--check svg { width: 16px; height: 16px; display: block; }
.kc-rail-swatch__meta { display: inline-flex; flex-direction: column; line-height: 1.15; }
.kc-rail-swatch__val {
    font-family: var(--kc-font-body);
    font-size: .85rem;
    font-weight: 600;
    color: var(--kc-color-ink);
}
.kc-rail-swatch__key {
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin-top: .15rem;
}

.kc-product-page__cart { margin: 0; }
.kc-product-page__cart-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100%;
    padding: 1.4rem 1.6rem !important;
    background: var(--kc-color-primary) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    cursor: pointer;
    font-family: var(--kc-font-body) !important;
    font-size: .92rem !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
    text-transform: none !important;
    text-shadow: none !important;
    transition: background-color .2s ease !important;
    gap: 1rem !important;
}
.kc-product-page__cart-btn:hover { background: #0094b9 !important; }
.kc-product-page__cart-btn-label {
    font-weight: 600;
}
.kc-product-page__cart-btn-price {
    font-weight: 500;
    opacity: .92;
}

/* Sold / out-of-stock state — replaces the add-to-cart button */
.kc-product-page__sold {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    width: 100%;
    padding: 1.25rem 1.6rem;
    background: var(--kc-color-ink);
    color: #fff;
}
.kc-product-page__sold-tag {
    font-family: var(--kc-font-body);
    font-size: .92rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .2em;
}
.kc-product-page__sold-sub {
    font-size: .82rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, .72);
}

/* === Sticky add-to-cart — mobile only; slides up once the main button is
   scrolled out of view (JS toggles .is-visible). It proxies clicks to the real
   cart button so all deposit / cart-drawer behaviour is inherited. === */
.kc-stickybuy {
    display: none;   /* desktop: never shown */
}
@media (max-width: 900px) {
    .kc-stickybuy {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        background: #fff;
        border-top: 1px solid var(--kc-color-line);
        box-shadow: 0 -12px 32px -20px rgba(1, 21, 37, 0.45);
        padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom, 0px));
        transform: translateY(110%);
        visibility: hidden;
        transition: transform .38s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .38s;
    }
    .kc-stickybuy.is-visible {
        transform: translateY(0);
        visibility: visible;
        transition: transform .38s cubic-bezier(.22, 1, .36, 1);
    }
    /* two equal halves: Add-to-Cart (with price) + WhatsApp Enquire (prominent) */
    .kc-stickybuy__inner {
        display: flex;
        align-items: stretch;
        gap: .6rem;
    }
    .kc-stickybuy__cart,
    .kc-stickybuy__wa {
        flex: 1 1 0;
        min-width: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 4px;
        cursor: pointer;
        text-decoration: none !important;
        transition: background-color .2s ease, box-shadow .2s ease;
    }
    /* Add to Cart — ink OUTLINE, two-line (label over price); secondary action */
    .kc-stickybuy__cart {
        flex-direction: column;
        gap: .05rem;
        padding: .7rem .6rem;
        background: transparent;
        color: var(--kc-color-ink);
        border: 1px solid var(--kc-color-ink);
    }
    .kc-stickybuy__cart:active { background: rgba(1, 21, 37, 0.06); }
    .kc-stickybuy__cart-label {
        font-family: var(--kc-font-body);
        font-size: .58rem;
        font-weight: 600;
        letter-spacing: .16em;
        text-transform: uppercase;
        color: var(--kc-color-muted);
    }
    .kc-stickybuy__cart-price {
        font-family: var(--kc-font-display);
        font-size: 1.15rem;
        line-height: 1.1;
        color: var(--kc-color-ink);
    }
    .kc-stickybuy__cart-price .amount,
    .kc-stickybuy__cart-price bdi { color: inherit; }
    .kc-stickybuy__cart-price del { opacity: .5; font-size: .8rem; margin-right: .3rem; }
    .kc-stickybuy__cart-price ins { text-decoration: none; }
    /* WhatsApp Enquire — vibrant green, bolder, lifted: the prominent action */
    .kc-stickybuy__wa {
        gap: .5rem;
        padding: .7rem .6rem;
        background: #25D366;
        color: #fff;
        font-family: var(--kc-font-body);
        font-size: .95rem;
        font-weight: 700;
        letter-spacing: .02em;
        box-shadow: 0 8px 20px -8px rgba(37, 211, 102, 0.65);
    }
    .kc-stickybuy__wa:active { background: #1eb957; }
    .kc-stickybuy__wa svg { width: 22px; height: 22px; flex-shrink: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-stickybuy { transition: none !important; }
}
.kc-product-page__cart-btn-price .amount,
.kc-product-page__cart-btn-price bdi,
.kc-product-page__cart-btn-price span { font: inherit !important; color: inherit !important; }

/* Pay-in-full / reserve-with-deposit segmented toggle, sits above Add to Cart. */
.kc-pay-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
    margin: 0 0 1rem;
}
.kc-pay-opt {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .85rem .95rem .9rem;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.kc-pay-opt input { position: absolute; opacity: 0; pointer-events: none; }
.kc-pay-opt::after {            /* custom radio dot, top-right */
    content: "";
    position: absolute;
    top: .85rem;
    right: .9rem;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--kc-color-line);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.kc-pay-opt:hover { border-color: #c8cdd2; }
.kc-pay-opt.is-active {
    border-color: var(--kc-color-ink);
    background: #F4F2EE;
}
.kc-pay-opt.is-active::after {
    border-color: var(--kc-color-primary);
    box-shadow: inset 0 0 0 3px var(--kc-color-primary);
}
.kc-pay-opt-title {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--kc-color-ink);
    padding-right: 1.4rem;          /* clear the radio dot */
}
.kc-pay-opt-sub {
    font-size: .72rem;
    letter-spacing: .03em;
    color: #6c757d;
}
.kc-pay-opt-sub .amount,
.kc-pay-opt-sub bdi { font: inherit; color: inherit; }
/* Reserve note — collapses to nothing, then reveals (height + fade) above the
   toggle when "Reserve today" is selected. grid-rows 0fr→1fr animates to the
   note's true height with no magic max-height number. */
.kc-pay-note-wrap {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    margin: 0;
    transition: grid-template-rows .34s cubic-bezier(.4, 0, .2, 1),
                opacity .26s ease,
                margin .34s cubic-bezier(.4, 0, .2, 1);
}
.kc-pay-note-wrap.is-shown {
    grid-template-rows: 1fr;
    opacity: 1;
    margin: 0 0 1rem;   /* gap to the toggle, matching the rail rhythm */
}
.kc-pay-note {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    min-height: 0;       /* allow the grid row to clip it to 0 */
    overflow: hidden;
    margin: 0;
    padding: .85rem .95rem;
    background: rgba(0, 176, 219, .07);
    border: 1px solid rgba(0, 176, 219, .24);
    font-size: .77rem;
    line-height: 1.55;
    color: #3f4b56;
}
.kc-pay-note__icon {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin-top: .08rem;
    color: var(--kc-color-primary);
}
.kc-pay-note__icon svg { display: block; width: 100%; height: 100%; }
.kc-pay-note strong { color: var(--kc-color-ink); font-weight: 600; }

/* Finance — a refined, fully-clickable card: card icon, two-line label, arrow. */
.kc-finance {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem 1rem;
    background: #F4F2EE;
    border: 1px solid var(--kc-color-line);
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease;
}
.kc-finance:hover { background: #eceae3; border-color: #d6d2c9; }
.kc-finance__icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--kc-color-primary);
}
.kc-finance__icon svg { width: 26px; height: 26px; display: block; }
.kc-finance__text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .08rem;
}
.kc-finance__title {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .005em;
    color: var(--kc-color-ink);
}
.kc-finance__sub {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    letter-spacing: .01em;
    line-height: 1.35;
    color: var(--kc-color-muted);
}
.kc-finance__arrow {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--kc-color-ink);
}
.kc-finance__arrow svg { width: 15px; height: 15px; display: block; transition: transform .2s ease; }
.kc-finance:hover .kc-finance__arrow svg { transform: translateX(3px); }
.kc-finance:hover .kc-finance__arrow { color: var(--kc-color-primary); }

/* WhatsApp "secure this watch" — outlined treatment with WhatsApp green as accent
   only, so it doesn't shout louder than the primary Add to Cart. */
/* Prominent solid-green WhatsApp CTA, sitting directly under Add to Cart —
   for these high-value pieces the personal enquiry is a primary action. */
.kc-product-page__whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    padding: 1.15rem 1.2rem;
    background: #25D366;
    color: #fff !important;
    font-family: var(--kc-font-body);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-decoration: none;
    border: 0;
    transition: background-color .2s ease;
}
.kc-product-page__whatsapp:hover {
    background: #1eb957;
}
.kc-product-page__whatsapp svg {
    width: 21px;
    height: 21px;
    flex-shrink: 0;
    color: #fff;
}

.kc-product-page__buy-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__buy-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    text-decoration: none;
    transition: color .15s ease;
}
.kc-product-page__buy-link:hover { color: var(--kc-color-primary); }
.kc-product-page__buy-link svg { width: 13px; height: 13px; }

.kc-product-page__buy-spectable { width: 100%; }
.kc-product-page__buy-spectable-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1.2rem;
}
.kc-product-page__buy-specs {
    margin: 0;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--kc-color-line);
    width: 100%;
}
.kc-product-page__buy-spec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--kc-color-line);
    gap: 1.2rem;
    transition: background .2s ease;
}
.kc-product-page__buy-spec:hover {
    background: linear-gradient(90deg, transparent, rgba(244,242,238,0.9) 15%, rgba(244,242,238,0.9) 85%, transparent);
}
.kc-product-page__buy-spec:hover .kc-spec-ico { color: var(--kc-color-primary); }
.kc-product-page__buy-spec dt {
    display: inline-flex;
    align-items: center;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin: 0;
}
.kc-product-page__buy-spec dd {
    font-family: var(--kc-font-display);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    text-align: right;
    letter-spacing: -.005em;
    line-height: 1.1;
}

/* Monoline icon beside each spec label. */
.kc-spec-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    margin-right: .7rem;
    color: var(--kc-color-muted);
    opacity: .85;
    transition: color .2s ease;
}
.kc-spec-ico svg { width: 17px; height: 17px; display: block; }

/* Cyan tick for "Box & Papers" — signals included provenance at a glance. */
.kc-spec-tick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: .5rem;
    border-radius: 50%;
    background: rgba(0, 176, 219, 0.12);
    color: var(--kc-color-primary);
    vertical-align: -3px;
}
.kc-spec-tick svg { width: 11px; height: 11px; display: block; }

/* Material / dial colour chip — a small metallic bead beside the spec value.
   The inset highlights simulate a lit polished surface; the outer ring keeps
   light swatches (white dial, platinum) legible against the page. */
.kc-spec-swatch {
    display: inline-block;
    vertical-align: -2px;
    width: 14px;
    height: 14px;
    margin-right: .55rem;
    border-radius: 50%;
    box-shadow:
        inset 0 1px 1.5px rgba(255, 255, 255, 0.55),
        inset 0 -1px 2px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(1, 21, 37, 0.12);
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

/* === LEGACY HERO (kept for backward compatibility) === */
.kc-product-page__hero { padding: 3rem 0 5rem; }
.kc-product-page__hero-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 480px;
    gap: 4.5rem;
    align-items: start;
}
.kc-product-page__gallery {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.kc-product-page__photo {
    margin: 0;
    background: #F4F2EE;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
}
.kc-product-page__photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.kc-product-page__photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--kc-font-body);
    color: var(--kc-color-muted);
    font-size: .9rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* === BUY BOX === */
/* NOTE: the old sticky purchase-column reused .kc-product-page__buy /
   __buy-inner. Those duplicate rules were removed — they collided with the
   live story+spec section (4350/4374), zeroing its horizontal padding and
   clipping spec values off-screen on mobile via the section's overflow:hidden.
   The cart/specialist/trust rules below are still live and stay. */
.kc-product-page__buy-brand {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1.2rem;
}
.kc-product-page__buy-title {
    font-family: var(--kc-font-display);
    font-size: clamp(3rem, 5vw, 4.4rem);
    font-weight: 400;
    line-height: .92;
    letter-spacing: -0.015em;
    color: var(--kc-color-ink);
    margin: 0 0 .8rem;
    text-transform: capitalize;
}
.kc-product-page__buy-subtitle {
    font-family: var(--kc-font-body);
    font-size: 1rem;
    color: var(--kc-color-ink);
    letter-spacing: .01em;
    margin: 0 0 2rem;
    line-height: 1.45;
}
.kc-product-page__buy-price {
    font-family: var(--kc-font-display);
    font-size: 2.6rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    letter-spacing: -0.01em;
    margin: 0 0 1.6rem;
    line-height: 1;
    padding-bottom: 1.6rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__buy-price .amount,
.kc-product-page__buy-price bdi,
.kc-product-page__buy-price span { font: inherit !important; color: inherit !important; }
.kc-product-page__buy-price del { opacity: .45; margin-right: .5rem; font-size: 1.1rem; }
.kc-product-page__buy-price ins { text-decoration: none; }

.kc-product-page__buy-tags {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    column-gap: 1.25rem;
    row-gap: .5rem;
}
.kc-product-page__buy-tag {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: 0;
    background: transparent;
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
}
.kc-product-page__buy-tag svg {
    width: 11px;
    height: 11px;
    color: var(--kc-color-primary);
}
.kc-product-page__buy-tag--bp { color: var(--kc-color-ink); }

.kc-product-page__cart { margin: 0; }
.kc-product-page__cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
    padding: 1.25rem 1.75rem;
    background: var(--kc-color-primary) !important;
    color: #fff !important;
    border: 0 !important;
    font-family: var(--kc-font-body) !important;
    font-size: .82rem !important;
    font-weight: 600 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    cursor: pointer;
    transition: background-color .2s ease, transform .15s ease;
    border-radius: 0 !important;
    text-shadow: none !important;
}
.kc-product-page__cart-btn:hover {
    background: #0094b9 !important;
    transform: translateY(-1px);
}
.kc-product-page__cart-btn-arrow svg {
    width: 16px;
    height: 16px;
    transition: transform .2s ease;
}
.kc-product-page__cart-btn:hover .kc-product-page__cart-btn-arrow svg { transform: translateX(3px); }

.kc-product-page__specialist {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--kc-color-line);
    margin-bottom: 2.5rem;
    transition: color .15s ease, text-decoration-color .15s ease;
}
.kc-product-page__specialist:hover {
    color: var(--kc-color-primary);
    text-decoration-color: var(--kc-color-primary);
}
.kc-product-page__specialist svg { width: 12px; height: 12px; }

.kc-product-page__buy-trust {
    list-style: none;
    padding: 1.5rem 0 0;
    margin: 0;
    border-top: 1px solid var(--kc-color-line);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem 1.4rem;
}
.kc-product-page__buy-trust li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    color: var(--kc-color-ink);
    line-height: 1.3;
}
.kc-product-page__buy-trust svg {
    width: 13px;
    height: 13px;
    color: var(--kc-color-primary);
    flex-shrink: 0;
    margin-top: 2px;
}

/* === VIRTUAL TRY-ON CTA (in buy box) === */
.kc-product-page__tryon {
    margin-top: 1.5rem;
    padding: 1.4rem;
    background: #F4F2EE;
    color: var(--kc-color-ink);
    display: grid;
    grid-template-columns: 1fr 88px;
    gap: 1.1rem;
    align-items: center;
    position: relative;
}
.kc-product-page__tryon-copy { position: relative; z-index: 1; }
.kc-product-page__tryon-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .35rem;
}
.kc-product-page__tryon-title {
    font-family: var(--kc-font-display);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 .5rem;
    line-height: 1.1;
    letter-spacing: -.005em;
}
.kc-product-page__tryon-body {
    font-family: var(--kc-font-body);
    font-size: .8rem;
    line-height: 1.5;
    color: var(--kc-color-ink);
    opacity: .7;
    margin: 0 0 .85rem;
}
.kc-product-page__tryon-cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    text-decoration: none;
    padding-bottom: .2rem;
    border-bottom: 1px solid var(--kc-color-ink);
    transition: color .15s ease, border-color .15s ease;
}
.kc-product-page__tryon-cta:hover {
    color: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
}
.kc-product-page__tryon-cta svg { width: 11px; height: 11px; transition: transform .2s ease; }
.kc-product-page__tryon-cta:hover svg { transform: translateX(2px); }

.kc-product-page__tryon-qr {
    display: block;
    background: #fff;
    padding: 6px;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    border: 1px solid var(--kc-color-line);
    transition: transform .2s ease;
}
.kc-product-page__tryon-qr:hover { transform: scale(1.04); }
.kc-product-page__tryon-qr img { width: 100%; height: 100%; display: block; }

/* Part-exchange / sell — a single outlined line button (sibling of WhatsApp). */
.kc-product-page__partex-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: .95rem 1.2rem;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .01em;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.kc-product-page__partex-btn:hover {
    background: #F4F2EE;
    border-color: var(--kc-color-ink);
}
.kc-product-page__partex-btn svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    transition: transform .2s ease;
}
.kc-product-page__partex-btn:hover svg { transform: translateX(3px); }

/* Part-exchange explainer drawer (right-hand slide-out). */
.kc-partex { position: fixed; inset: 0; z-index: 10000; }
.kc-partex[hidden] { display: none; }
.kc-partex__overlay {
    position: absolute;
    inset: 0;
    background: rgba(1, 21, 37, 0.5);
    opacity: 0;
    transition: opacity .4s ease;
}
.kc-partex.is-open .kc-partex__overlay { opacity: 1; }
.kc-partex__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(440px, 92vw);
    display: flex;
    flex-direction: column;
    padding: clamp(1.75rem, 3vw, 2.75rem);
    background: #fff;
    box-shadow: -24px 0 64px rgba(1, 21, 37, 0.18);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform .42s cubic-bezier(.4, 0, .2, 1);
}
.kc-partex.is-open .kc-partex__panel { transform: none; }
.kc-partex__close {
    position: absolute;
    top: 1.1rem;
    right: 1.1rem;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--kc-color-line);
    color: var(--kc-color-ink);
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}
.kc-partex__close:hover { background: #F4F2EE; border-color: var(--kc-color-ink); }
.kc-partex__close svg { width: 18px; height: 18px; }
.kc-partex__eyebrow {
    margin: 0 0 .5rem;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-partex__title {
    margin: 0 0 .85rem;
    font-family: var(--kc-font-display);
    font-size: clamp(1.65rem, 2.6vw, 2.15rem);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.01em;
    color: var(--kc-color-ink);
}
.kc-partex__intro {
    margin: 0 0 1.85rem;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1.6;
    color: var(--kc-color-ink);
    opacity: .75;
}
.kc-partex__steps { list-style: none; margin: 0 0 2rem; padding: 0; }
.kc-partex__step {
    display: flex;
    gap: 1rem;
    padding: 1.1rem 0;
    border-top: 1px solid var(--kc-color-line);
}
.kc-partex__step:last-child { border-bottom: 1px solid var(--kc-color-line); }
.kc-partex__step-num {
    flex: 0 0 auto;
    font-family: var(--kc-font-display);
    font-size: 1.05rem;
    line-height: 1.4;
    color: var(--kc-color-primary);
}
.kc-partex__step-copy { display: flex; flex-direction: column; gap: .25rem; }
.kc-partex__step-title {
    font-family: var(--kc-font-body);
    font-size: .92rem;
    font-weight: 600;
    color: var(--kc-color-ink);
}
.kc-partex__step-text {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    line-height: 1.55;
    color: var(--kc-color-ink);
    opacity: .68;
}
.kc-partex__foot { margin-top: auto; }
.kc-partex__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1.15rem 1.4rem;
    background: var(--kc-color-primary);
    color: #fff;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: none;
    transition: background-color .2s ease;
}
.kc-partex__cta:hover { background: #0094b9; }
.kc-partex__cta svg { width: 15px; height: 15px; flex-shrink: 0; transition: transform .2s ease; }
.kc-partex__cta:hover svg { transform: translateX(3px); }
.kc-partex__reassure {
    margin: .85rem 0 0;
    text-align: center;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    letter-spacing: .03em;
    color: var(--kc-color-ink);
    opacity: .55;
}
@media (prefers-reduced-motion: reduce) {
    .kc-partex__panel, .kc-partex__overlay { transition: none; }
}

/* Similar watches — slow-drifting, draggable rail in the acquire column. */
.kc-simrail {
    position: relative;
    min-width: 0;                /* never let the max-content track widen an ancestor */
    margin-top: .25rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--kc-color-line);
}
.kc-simrail__viewport { min-width: 0; }
/* Native cursor gives way to the custom drag badge over the cards. */
.kc-simrail.has-cursor .kc-simrail__track,
.kc-simrail.has-cursor .kc-simrail__track.is-dragging { cursor: none; }
.kc-simrail.has-cursor .kc-simrail__card { cursor: none; }
.kc-simrail__cursor {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 6;
    width: 54px;
    height: 54px;
    margin: -27px 0 0 -27px;     /* centre on the pointer */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--kc-color-ink);
    color: #fff;
    pointer-events: none;
    opacity: 0;
    scale: .4;
    transition: opacity .22s ease, scale .2s cubic-bezier(.34, 1.56, .64, 1), background-color .15s ease;
    will-change: transform;
}
.kc-simrail__cursor.is-on   { opacity: 1; scale: 1; }
.kc-simrail__cursor.is-grab { scale: .82; background: var(--kc-color-primary); }
.kc-simrail__cursor svg { width: 26px; height: 15px; display: block; }
.kc-simrail__cursor.is-grab svg { animation: kc-simcur-nudge .6s ease-in-out infinite; }
@keyframes kc-simcur-nudge {
    0%, 100% { transform: scaleX(.86); }
    50%      { transform: scaleX(1); }
}
.kc-simrail__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}
.kc-simrail__title {
    margin: 0;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
}
.kc-simrail__hint {
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
}
.kc-simrail__viewport {
    overflow: hidden;
    /* fade the cards out at both edges instead of a hard clip */
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
            mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.kc-simrail__track {
    display: flex;
    flex-wrap: nowrap;
    gap: .8rem;
    width: max-content;
    cursor: grab;
    user-select: none;
    touch-action: pan-y;        /* let the page scroll vertically; we own the horizontal */
    will-change: transform;
}
.kc-simrail__track.is-dragging { cursor: grabbing; }
.kc-simrail__card {
    flex: 0 0 auto;
    width: 150px;
    text-decoration: none;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
}
.kc-simrail__media {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 9%;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    overflow: hidden;
}
.kc-simrail__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    pointer-events: none;       /* so the drag isn't swallowed by the image */
    transition: transform .4s ease;
}
/* Background-removed mains float with a soft ground shadow. */
.kc-simrail__media.is-cutout { padding: 12%; }
.kc-simrail__media.is-cutout img { filter: drop-shadow(0 6px 9px rgba(1, 21, 37, 0.18)); }
.kc-simrail__card:hover .kc-simrail__media img { transform: scale(1.04); }
.kc-simrail__brand {
    display: block;
    margin: .55rem 0 .12rem;
    font-family: var(--kc-font-body);
    font-size: .56rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
}
.kc-simrail__name {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 .2rem;
    font-family: var(--kc-font-display);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.005em;
    color: var(--kc-color-ink);
}
.kc-simrail__price {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    color: var(--kc-color-muted);
}
.kc-simrail__price .amount,
.kc-simrail__price bdi,
.kc-simrail__price span { font: inherit !important; color: inherit !important; }
.kc-simrail__price del { opacity: .5; margin-right: .3rem; }
.kc-simrail__price ins { text-decoration: none; }

/* === MY-WRIST GALLERY (user-captured photos from try-on, kept in localStorage) === */
.kc-product-page__mywrist {
    background: #fff;
    padding: 3.5rem 0 4rem;
    border-top: 1px solid var(--kc-color-line);
}
.kc-product-page__mywrist[hidden] { display: none; }
.kc-product-page__mywrist-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-product-page__mywrist-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
}
.kc-product-page__mywrist-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .5rem;
    width: 100%;
    flex-basis: 100%;
}
.kc-product-page__mywrist-title {
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    letter-spacing: -.01em;
}
.kc-product-page__mywrist-add {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
    text-decoration: none;
    padding-bottom: .25rem;
    border-bottom: 1px solid var(--kc-color-line);
    transition: color .15s ease, border-color .15s ease;
}
.kc-product-page__mywrist-add:hover { color: var(--kc-color-primary); border-color: var(--kc-color-primary); }
.kc-product-page__mywrist-add svg { width: 12px; height: 12px; }

.kc-product-page__mywrist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
}
.kc-product-page__mywrist-tile {
    position: relative;
    background: #F4F2EE;
    border: 0;
    padding: 0;
    aspect-ratio: 4 / 5;
    cursor: pointer;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.kc-product-page__mywrist-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px -10px rgba(1, 21, 37, 0.25);
}
.kc-product-page__mywrist-tile canvas {
    width: 100%; height: 100%; display: block; object-fit: cover;
}
.kc-product-page__mywrist-tile-meta {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    font-family: var(--kc-font-body);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 1px 8px rgba(0,0,0,0.55);
}
.kc-product-page__mywrist-tile-del {
    position: absolute;
    top: .6rem;
    right: .6rem;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .15s ease, background-color .15s ease;
    cursor: pointer;
}
.kc-product-page__mywrist-tile-del svg { width: 12px; height: 12px; }
.kc-product-page__mywrist-tile:hover .kc-product-page__mywrist-tile-del,
.kc-product-page__mywrist-tile:focus-visible .kc-product-page__mywrist-tile-del { opacity: 1; }
.kc-product-page__mywrist-tile-del:hover { background: #d23b3b; }

.kc-product-page__mywrist-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(1, 21, 37, 0.94);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    gap: 1.25rem;
}
.kc-product-page__mywrist-modal-stage {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.kc-product-page__mywrist-modal canvas {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    background: #000;
}
.kc-product-page__mywrist-modal-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}
.kc-product-page__mywrist-modal-close:hover { background: rgba(255, 255, 255, 0.22); }
.kc-product-page__mywrist-modal-close svg { width: 16px; height: 16px; }

.kc-product-page__mywrist-modal-bar {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .9rem;
    width: 100%;
}
.kc-product-page__mywrist-modal-toggle {
    display: inline-flex;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    padding: 4px;
    gap: 0;
}
.kc-product-page__mywrist-modal-toggle[hidden] { display: none; }
.kc-product-page__mywrist-modal-toggle button {
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    padding: .5rem 1rem;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    border-radius: 999px;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}
.kc-product-page__mywrist-modal-toggle button.is-active {
    background: #fff;
    color: #011525;
}
.kc-product-page__mywrist-modal-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    justify-content: center;
}
.kc-product-page__mywrist-modal-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1.4rem;
    background: #fff;
    color: #011525;
    border: 0;
    border-radius: 0;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}
.kc-product-page__mywrist-modal-btn svg { width: 14px; height: 14px; }
.kc-product-page__mywrist-modal-btn--accent {
    background: #00B0DB;
    color: #fff;
}
.kc-product-page__mywrist-modal-btn--accent:hover { background: #009ec5; }
.kc-product-page__mywrist-modal-btn.is-loading {
    background: #555;
    color: #fff;
    cursor: wait;
    pointer-events: none;
}
.kc-product-page__mywrist-modal-btn.is-loading svg { animation: kc-spin 1s linear infinite; }

/* === ON-MODEL GALLERY === */
.kc-product-page__onmodel {
    background: #F4F2EE;
    padding: 4rem 0 5rem;
    border-top: 1px solid var(--kc-color-line);
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__onmodel-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-product-page__onmodel-head { margin-bottom: 2rem; }
.kc-product-page__onmodel-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .55rem;
}
.kc-product-page__onmodel-title {
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    letter-spacing: -.01em;
}
.kc-product-page__onmodel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
}
.kc-product-page__onmodel-tile {
    position: relative;
    background: #fff;
    border: 0;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    transition: transform .25s ease, box-shadow .25s ease;
}
.kc-product-page__onmodel-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px -10px rgba(1, 21, 37, 0.25);
}
.kc-product-page__onmodel-tile canvas {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.kc-product-page__onmodel-tile-label {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}

/* Modal */
.kc-product-page__onmodel-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(1, 21, 37, 0.94);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}
.kc-product-page__onmodel-modal[hidden] { display: none; }
.kc-product-page__onmodel-modal canvas {
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
    background: #000;
}
.kc-product-page__onmodel-modal-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color .15s ease;
}
.kc-product-page__onmodel-modal-close:hover { background: rgba(255, 255, 255, 0.22); }
.kc-product-page__onmodel-modal-close svg { width: 16px; height: 16px; }
.kc-product-page__onmodel-modal-nav {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
    pointer-events: none;
}
.kc-product-page__onmodel-modal-nav button {
    pointer-events: auto;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color .15s ease;
}
.kc-product-page__onmodel-modal-nav button:hover { background: rgba(255, 255, 255, 0.22); }
.kc-product-page__onmodel-modal-nav svg { width: 18px; height: 18px; }

/* === SPECIFICATIONS BAND (Nothing-design treatment) === */
.kc-product-page__specs {
    background: var(--kc-color-ink);
    color: #fff;
    padding: 5rem 0;
}
.kc-product-page__specs-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-product-page__specs-head { margin-bottom: 3rem; }
.kc-product-page__specs-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .6rem;
}
.kc-product-page__specs-title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1;
    color: #fff;
    margin: 0;
    letter-spacing: -0.01em;
}
.kc-product-page__specs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,0.18);
}
.kc-product-page__spec {
    padding: 1.4rem 0 1.4rem;
    border-bottom: 1px solid rgba(255,255,255,0.18);
    padding-right: 1.5rem;
}
.kc-product-page__spec-label {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    margin-bottom: .55rem;
}
.kc-product-page__spec-value {
    font-family: var(--kc-font-body);
    font-size: 1.05rem;
    color: #fff;
    line-height: 1.2;
    font-weight: 400;
}
.kc-product-page__spec-value--mono {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 1.02rem;
    letter-spacing: .01em;
}

/* === STORY / EDITORIAL DESCRIPTION === */
.kc-product-page__story {
    background: #fff;
    padding: 6rem 0;
}
.kc-product-page__story-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-product-page__story-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 5rem;
    align-items: start;
}
.kc-product-page__story-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .8rem;
}
.kc-product-page__story-title {
    font-family: var(--kc-font-display);
    font-size: clamp(2.2rem, 4vw, 3.2rem);
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 2rem;
    line-height: 1.05;
    letter-spacing: -0.01em;
}
.kc-product-page__story-body {
    font-family: var(--kc-font-body);
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--kc-color-ink);
}
.kc-product-page__story-body p { margin: 0 0 1.4rem; }
.kc-product-page__story-body p:last-child { margin-bottom: 0; }
.kc-product-page__story-body p:first-of-type::first-line {
    font-weight: 500;
    letter-spacing: .01em;
}

/* Sidebar specs in the story column */
.kc-product-page__story-specs {
    position: sticky;
    top: 2rem;
}
.kc-product-page__story-specs-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 1.5rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__story-specs-list {
    margin: 0;
    display: flex;
    flex-direction: column;
}
.kc-product-page__story-spec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--kc-color-line);
    gap: 1.2rem;
    transition: background .2s ease;
}
.kc-product-page__story-spec:hover {
    background: linear-gradient(90deg, transparent, rgba(244,242,238,0.9) 15%, rgba(244,242,238,0.9) 85%, transparent);
}
.kc-product-page__story-spec:hover .kc-spec-ico { color: var(--kc-color-primary); }
.kc-product-page__story-spec dt {
    display: inline-flex;
    align-items: center;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin: 0;
}
.kc-product-page__story-spec dd {
    font-family: var(--kc-font-display);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    text-align: right;
    letter-spacing: -.005em;
    line-height: 1.1;
}

@media (max-width: 960px) {
    .kc-product-page__story-layout { grid-template-columns: 1fr; gap: 3rem; }
    .kc-product-page__story-specs { position: static; }
}

/* === TRUST STRIP — framed assurance section: serif header + numbered cards.
   Cream canvas; each promise is a white card with a cyan icon chip, a faint
   Cormorant index, and a hover lift that draws a cyan top accent. === */
.kc-product-page__trust {
    background: #F4F2EE;
    padding: clamp(4rem, 7vw, 6.5rem) 0;
    border-top: 1px solid var(--kc-color-line);
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-product-page__trust-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 clamp(1.5rem, 4vw, 3rem);
}
.kc-product-page__trust-head {
    text-align: center;
    margin-bottom: clamp(2.5rem, 4vw, 3.75rem);
}
.kc-product-page__trust-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: var(--kc-color-muted);
    margin: 0 0 .85rem;
}
.kc-product-page__trust-title {
    font-family: var(--kc-font-display);
    font-size: clamp(1.9rem, 3vw, 2.85rem);
    font-weight: 400;
    line-height: 1.05;
    color: var(--kc-color-ink);
    margin: 0;
}
.kc-product-page__trust-title em {
    font-style: italic;
    color: var(--kc-color-primary);
}
.kc-product-page__trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(1rem, 1.6vw, 1.5rem);
}
.kc-product-page__trust-item {
    position: relative;
    overflow: hidden;
    text-align: left;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 14px;
    padding: clamp(1.6rem, 2.2vw, 2.1rem) clamp(1.5rem, 2vw, 1.9rem) clamp(1.7rem, 2.2vw, 2.1rem);
    transition: border-color .3s ease, box-shadow .35s ease, transform .35s cubic-bezier(.22, 1, .36, 1);
}
/* cyan accent that draws across the top on hover */
.kc-product-page__trust-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--kc-color-primary);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.kc-product-page__trust-item:hover {
    border-color: rgba(0, 176, 219, .35);
    box-shadow: 0 22px 45px -28px rgba(1, 21, 37, .35);
    transform: translateY(-4px);
}
.kc-product-page__trust-item:hover::before { transform: scaleX(1); }
/* faint Cormorant numeral, top-right */
.kc-product-page__trust-index {
    position: absolute;
    top: clamp(1rem, 1.6vw, 1.5rem);
    right: clamp(1.2rem, 1.8vw, 1.7rem);
    font-family: var(--kc-font-display);
    font-size: 1.55rem;
    font-style: italic;
    line-height: 1;
    color: var(--kc-color-ink);
    opacity: .12;
    transition: opacity .3s ease, color .3s ease;
}
.kc-product-page__trust-item:hover .kc-product-page__trust-index {
    color: var(--kc-color-primary);
    opacity: .5;
}
.kc-product-page__trust-ico {
    box-sizing: border-box;
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 1.35rem;
    color: var(--kc-color-ink);
    background: rgba(0, 176, 219, .08);
    border: 1px solid rgba(0, 176, 219, .18);
    border-radius: 13px;
    transition: color .3s ease, background-color .3s ease, border-color .3s ease;
}
.kc-product-page__trust-ico svg {
    width: 26px;
    height: 26px;
    display: block;
}
.kc-product-page__trust-item:hover .kc-product-page__trust-ico {
    color: #fff;
    background: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
}
.kc-product-page__trust-item-title {
    font-family: var(--kc-font-body);
    font-size: .98rem;
    font-weight: 600;
    color: var(--kc-color-ink);
    margin: 0 0 .5rem;
    letter-spacing: .01em;
}
.kc-product-page__trust-item-text {
    font-family: var(--kc-font-body);
    font-size: .85rem;
    color: var(--kc-color-muted);
    margin: 0;
    line-height: 1.6;
}
/* staggered scroll-reveal (plugs into the [data-kc-reveal] is-armed/is-in system) */
.kc-product-page__trust.is-armed .kc-product-page__trust-head,
.kc-product-page__trust.is-armed .kc-product-page__trust-item {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
}
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-head,
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-item { opacity: 1; transform: none; }
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-item:nth-child(1) { transition-delay: .12s; }
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-item:nth-child(2) { transition-delay: .21s; }
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-item:nth-child(3) { transition-delay: .3s; }
.kc-product-page__trust.is-armed.is-in .kc-product-page__trust-item:nth-child(4) { transition-delay: .39s; }

@media (prefers-reduced-motion: reduce) {
    .kc-product-page__trust.is-armed .kc-product-page__trust-head,
    .kc-product-page__trust.is-armed .kc-product-page__trust-item { opacity: 1 !important; transform: none !important; transition: none !important; }
    .kc-product-page__trust-item::before { transition: none; }
}
@media (max-width: 900px) {
    .kc-product-page__trust-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .kc-product-page__trust-grid { grid-template-columns: 1fr; }
}

/* === FAQ — editorial split: brand image left, numbered accordion right.
   Ink canvas; the open row highlights as a cream plate (ELEMENTIS-style). === */
.kc-faq {
    background: var(--kc-color-ink);
    color: #fff;
    padding: 6.5rem 0;
}
.kc-faq__inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: start;
}
.kc-faq__media {
    position: sticky;
    top: 96px;
    aspect-ratio: 3 / 4;
    border-radius: 4px;
    overflow: hidden;
    background: #000;
}
.kc-faq__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-faq__head { margin-bottom: 2.25rem; }
.kc-faq__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: rgba(255, 255, 255, 0.6);
    margin: 0 0 1rem;
}
.kc-faq__title {
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 400;
    line-height: 1.06;
    color: #fff;
    margin: 0;
}
.kc-faq__title em {
    font-style: italic;
    color: var(--kc-color-primary);
}

.kc-faq__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.kc-faq__item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    transition: background-color .3s ease, color .3s ease;
}
.kc-faq__item:hover:not(.is-open) { background: rgba(255, 255, 255, 0.045); }
.kc-faq__q {
    width: 100%;
    display: grid;
    grid-template-columns: 2.6rem 1fr 16px;
    align-items: center;
    gap: 1.25rem;
    padding: 1.35rem 1.4rem;
    background: none;
    border: 0;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.kc-faq__num {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .14em;
    color: rgba(255, 255, 255, 0.45);
    transition: color .3s ease;
}
.kc-faq__q-text {
    font-family: var(--kc-font-display);
    font-size: clamp(1.2rem, 1.5vw, 1.5rem);
    line-height: 1.2;
    font-weight: 400;
}
.kc-faq__arrow {
    width: 16px;
    height: 16px;
    color: rgba(255, 255, 255, 0.55);
    transition: transform .35s cubic-bezier(.22, 1, .36, 1), color .3s ease;
}
.kc-faq__item:hover .kc-faq__arrow { color: #fff; }

/* open row — cream plate, ink text, arrow turns to point into the answer */
.kc-faq__item.is-open {
    background: var(--kc-color-cream, #F4F2EE);
    color: var(--kc-color-ink);
}
.kc-faq__item.is-open .kc-faq__num { color: var(--kc-color-primary); }
.kc-faq__item.is-open .kc-faq__arrow { color: var(--kc-color-ink); transform: rotate(90deg); }

/* answer expands via the 0fr→1fr grid-track trick */
.kc-faq__a {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .45s cubic-bezier(.22, 1, .36, 1);
}
.kc-faq__a-clip { overflow: hidden; min-height: 0; }
.kc-faq__a p {
    margin: 0;
    padding: 0 3rem 1.45rem 5.25rem;   /* aligns under the question text */
    font-family: var(--kc-font-body);
    font-size: .95rem;
    line-height: 1.65;
    color: rgba(1, 21, 37, 0.72);
}
.kc-faq__item.is-open .kc-faq__a { grid-template-rows: 1fr; }

@media (prefers-reduced-motion: reduce) {
    .kc-faq__item, .kc-faq__a, .kc-faq__arrow, .kc-faq__num { transition: none !important; }
}
@media (max-width: 960px) {
    .kc-faq { padding: 4.5rem 0; }
    .kc-faq__inner { grid-template-columns: 1fr; gap: 2.5rem; }
    .kc-faq__media { position: static; aspect-ratio: 16 / 9; }
    .kc-faq__q { grid-template-columns: 2rem 1fr 16px; gap: .9rem; padding: 1.15rem 1rem; }
    .kc-faq__a p { padding: 0 1rem 1.25rem 3.9rem; }
}

/* === RELATED === */
.kc-product-page__related {
    background: #fff;
    padding: 6rem 0;
}
.kc-product-page__related-inner {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.kc-product-page__related-head { margin-bottom: 2.75rem; }
.kc-product-page__related-eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin: 0 0 .6rem;
}
.kc-product-page__related-title {
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0;
    letter-spacing: -0.01em;
}
.kc-product-page__related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem 1.5rem;
}

/* === RESPONSIVE === */
@media (max-width: 1200px) {
    .kc-product-page__hero-inner { grid-template-columns: minmax(0, 1fr) 400px; gap: 3rem; }
    .kc-product-page__related-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1200px) {
    .kc-product-page__buy-inner { grid-template-columns: 1fr; }
    .kc-product-page__buy-spectable { grid-column: 1; }
    /* Spectable now stacks under the story in column 1 — drop its divider. */
    .kc-product-page__buy-spectable::before { display: none; }
}
@media (max-width: 960px) {
    .kc-product-page__buy-inner { grid-template-columns: 1fr; gap: 2.5rem; }
    .kc-product-page__buy { padding: 2.5rem 0 4rem; }
    .kc-product-page__buy-story-lead { font-size: clamp(1.2rem, 4.5vw, 1.5rem); }
    .kc-product-page__buy-spectable { grid-column: auto; }
    .kc-product-page__buy-rail::before { display: none; } /* fully stacked — no dividers */
    .kc-product-page__buy-watermark { font-size: clamp(7rem, 40vw, 14rem); opacity: .03; }
    .kc-product-page__hero { padding: 2rem 0 4rem; }
    .kc-product-page__hero-inner { grid-template-columns: 1fr; gap: 2.5rem; }
    /* (trust strip now carries its own responsive rules in the trust block) */
    .kc-product-page__related-grid { grid-template-columns: repeat(2, 1fr); }
    .kc-product-page__specs { padding: 3.5rem 0; }
    .kc-product-page__story { padding: 4rem 0; }
    .kc-product-page__related { padding: 4rem 0; }
}
@media (max-width: 540px) {
    .kc-product-page__buy-title { font-size: 2.2rem; }
    .kc-product-page__buy-price { font-size: 1.65rem; }
    .kc-product-page__buy-trust { grid-template-columns: 1fr; }
    .kc-product-page__related-grid { grid-template-columns: 1fr; }
}
/* "You may also consider" becomes a swipeable, full-bleed scroll-snap slider on
   phones — a peek of the next card signals there's more. Placed after the grid
   rules above so it wins. (max-width 640 → covers phones, incl. large ones.) */
@media (max-width: 640px) {
    .kc-product-page__related-grid {
        display: flex;
        grid-template-columns: none;
        gap: 1rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        /* bleed to the screen edges; re-inset content so card 1 lines up with
           the header and the snap rests at the inner edge */
        margin: 0 calc(-1 * clamp(1.5rem, 4vw, 3rem));
        padding: 0 clamp(1.5rem, 4vw, 3rem) .5rem;
        scroll-padding-left: clamp(1.5rem, 4vw, 3rem);
    }
    .kc-product-page__related-grid::-webkit-scrollbar { display: none; }
    .kc-product-page__related-grid .kc-product {
        flex: 0 0 78%;
        scroll-snap-align: start;
    }
}

/* ---------------------------------------------------------
   PAGE-TRANSITION CURTAIN
   Reveal (enter) auto-plays on load; cover (leave) is JS-driven.
   A single continuous upward sweep across navigations.
--------------------------------------------------------- */
@keyframes kc-curtain-reveal {
    0%   { transform: translateY(0); }
    100% { transform: translateY(-100%); }
}
@keyframes kc-curtain-logo {
    0%, 50% { opacity: 1; transform: translateY(0); }
    100%    { opacity: 0; transform: translateY(-22px); }
}
.kc-curtain {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: var(--kc-color-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transform: translateY(-100%);
    animation: kc-curtain-reveal .9s cubic-bezier(.76, 0, .24, 1) both;
}
.kc-curtain__inner { display: flex; align-items: center; justify-content: center; }
.kc-curtain__logo {
    width: clamp(120px, 15vw, 190px);
    height: auto;
    display: block;
    filter: brightness(0) invert(1);   /* force the navy mark to white on the ink curtain */
    animation: kc-curtain-logo .9s ease both;
}
/* Leave — cover from the bottom, then navigate. */
.kc-curtain.is-leaving {
    animation: none;
    transform: translateY(100%);
    transition: transform .55s cubic-bezier(.76, 0, .24, 1);
}
.kc-curtain.is-leaving .kc-curtain__logo { animation: none; opacity: 1; transform: none; }
.kc-curtain.is-leaving.is-cover { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
    .kc-curtain { animation: none; transform: translateY(-100%); }
    .kc-curtain__logo { animation: none; opacity: 0; }
    .kc-curtain.is-leaving { transition: none; }
}

/* ---------------------------------------------------------
   IMMERSIVE FULL-WIDTH HERO (Saisei-style)
   Full-bleed dark stage; title + chapters + progress overlaid,
   each layer drifting at its own parallax rate on drag.
--------------------------------------------------------- */
.kc-product-page__gallery--immersive { display: block; }
.kc-product-page__gallery--immersive .kc-product-page__stage { height: clamp(560px, 90vh, 960px); }
.kc-product-page__gallery--immersive .kc-hero-slide-img { height: 78%; max-width: 80%; }
/* Isolated cutout — floats on the dark scene, no card; shadow follows the watch. */
.kc-hero-slide-img--cutout {
    background: none !important;
    box-shadow: none !important;
    object-fit: contain;
    height: 72%;
    width: auto;
    max-width: 76%;
    filter: drop-shadow(0 34px 42px rgba(0,0,0,0.55)) drop-shadow(0 6px 14px rgba(0,0,0,0.4));
}
.kc-product-page__gallery--immersive .kc-hero-slide-img--cutout { height: 72%; max-width: 76%; }

.kc-hero-ov {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}
.kc-hero-ov [data-kc-pll] { will-change: transform; }

/* Title — bottom-left */
.kc-hero-ov__title {
    position: absolute;
    left: clamp(1.5rem, 4vw, 4.5rem);
    bottom: clamp(3.5rem, 7vh, 5.5rem);
    color: #fff;
    max-width: 60%;
}
.kc-hero-ov__brand {
    display: block;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .4em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    margin-bottom: .9rem;
    text-shadow: 0 1px 14px rgba(0,0,0,.5);
}
.kc-hero-ov__model {
    font-family: var(--kc-font-display);
    font-size: clamp(2.6rem, 5.2vw, 5rem);
    font-weight: 400;
    line-height: .92;
    letter-spacing: -.02em;
    color: #fff;
    margin: 0;
    text-shadow: 0 2px 30px rgba(0,0,0,.5);
}
.kc-hero-ov__model::after { content: "."; color: var(--kc-color-primary); }
.kc-hero-ov__sub {
    font-family: var(--kc-font-body);
    font-size: .8rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
    margin: 1rem 0 0;
    text-shadow: 0 1px 12px rgba(0,0,0,.6);
}
.kc-hero-ov__cue {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-top: 1.4rem;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
    transition: gap .2s ease, color .2s ease;
}
.kc-hero-ov__cue svg { width: 14px; height: 14px; }
.kc-hero-ov__cue:hover { color: var(--kc-color-primary); gap: .95rem; }

/* Chapters — top-right */
.kc-hero-ov__chapters {
    position: absolute;
    top: clamp(1.5rem, 4vw, 3rem);
    right: clamp(1.5rem, 4vw, 4.5rem);
    width: min(300px, 42vw);
    pointer-events: auto;
}
.kc-hero-ov__chapters-eyebrow {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
    margin: 0 0 1.1rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid rgba(255,255,255,.16);
}
.kc-hero-ov__count { color: #fff; font-variant-numeric: tabular-nums; letter-spacing: .14em; }
.kc-hero-ov__count [data-kc-count-current] { color: var(--kc-color-primary); }
.kc-hero-ov__chapters-list { list-style: none; margin: 0; padding: 0; }
.kc-hero-ov__chapter {
    display: flex;
    align-items: center;
    gap: .8rem;
    width: 100%;
    padding: .4rem 0;
    background: none;
    border: 0;
    cursor: pointer;
    text-align: left;
}
.kc-hero-ov__chapter-num {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .12em;
    font-variant-numeric: tabular-nums;
    color: rgba(255,255,255,.45);
    transition: color .2s ease;
    flex-shrink: 0;
}
.kc-hero-ov__chapter-label {
    font-family: var(--kc-font-display);
    font-size: 1.1rem;
    color: rgba(255,255,255,.6);
    letter-spacing: -.005em;
    transition: color .2s ease;
    flex-shrink: 0;
}
.kc-hero-ov__chapter-line {
    flex: 1;
    height: 1px;
    background: rgba(255,255,255,.18);
    transform: scaleX(.3);
    transform-origin: left center;
    transition: transform .35s cubic-bezier(.22,.61,.36,1), background-color .2s ease;
}
.kc-hero-ov__chapter:hover .kc-hero-ov__chapter-label,
.kc-hero-ov__chapter:hover .kc-hero-ov__chapter-num { color: #fff; }
.kc-hero-ov__chapter:hover .kc-hero-ov__chapter-line { transform: scaleX(.5); }
.kc-hero-ov__chapter.is-active .kc-hero-ov__chapter-label { color: #fff; }
.kc-hero-ov__chapter.is-active .kc-hero-ov__chapter-num { color: var(--kc-color-primary); }
.kc-hero-ov__chapter.is-active .kc-hero-ov__chapter-line { transform: scaleX(1); background: #fff; }

@media (max-width: 900px) {
    .kc-product-page__gallery--immersive .kc-product-page__stage { height: clamp(520px, 80vh, 680px); }
    .kc-hero-ov__chapters { display: none; }            /* declutter on mobile */
    .kc-hero-ov__title { max-width: 84%; bottom: clamp(3rem, 9vh, 4.5rem); }
    .kc-product-page__gallery--immersive .kc-hero-slide-img { height: 50%; max-width: 86%; }
}

/* ---------------------------------------------------------
   SOLO HERO — single isolated watch, manipulated (float + parallax)
--------------------------------------------------------- */
.kc-product-page__gallery--solo { display: block; }
.kc-product-page__gallery--solo .kc-product-page__stage {
    position: relative;
    overflow: hidden;
    height: clamp(560px, 90vh, 960px);
    background: #101218;
}
/* Blurred backdrop = the same photo, dimmed to a moody field. */
.kc-solo-bg {
    position: absolute;
    inset: -8%;
    background-size: cover;
    background-position: center;
    filter: blur(40px) brightness(.5) saturate(1.2);
    transform: scale(1.12);
}
/* Spotlight vignette so the piece reads like a lit display. */
.kc-solo-grain {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(115% 85% at 50% 44%, rgba(8,9,13,0) 30%, rgba(8,9,13,0.62) 100%);
    z-index: 1;
}
/* Piece wrapper — JS applies the mouse-parallax transform here. */
.kc-solo-piece {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s cubic-bezier(.22,.61,.36,1);
    will-change: transform;
}
/* The watch — slow vertical float; the CSS float + the wrapper parallax don't collide. */
.kc-solo-float {
    position: relative;            /* watch centred; reflection hangs below it */
    animation: kc-solo-float 6.5s ease-in-out infinite;
}
.kc-solo-watch {
    height: clamp(280px, 60vh, 560px);
    width: auto;
    max-width: 72vw;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 30px 44px rgba(0,0,0,0.6));
}
.kc-solo-watch.is-cutout { filter: drop-shadow(0 36px 46px rgba(0,0,0,0.62)) drop-shadow(0 8px 16px rgba(0,0,0,0.45)); }
/* Mirror reflection beneath the watch — flipped, faded, masked. */
.kc-solo-reflect {
    position: absolute;
    top: 100%;
    left: 50%;
    height: clamp(280px, 60vh, 560px);
    width: auto;
    max-width: 72vw;
    object-fit: contain;
    display: block;
    transform: translateX(-50%) scaleY(-1);
    margin-top: -2%;
    opacity: .16;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.9) 0%, rgba(0,0,0,0) 42%);
            mask-image: linear-gradient(to bottom, rgba(0,0,0,.9) 0%, rgba(0,0,0,0) 42%);
    pointer-events: none;
}
.kc-solo-watch.is-cutout { filter: drop-shadow(0 36px 46px rgba(0,0,0,0.62)) drop-shadow(0 8px 16px rgba(0,0,0,0.45)); }
@keyframes kc-solo-float {
    0%, 100% { transform: translateY(-1.4%); }
    50%      { transform: translateY(1.4%); }
}
/* Soft ground shadow that breathes with the float. */
.kc-solo-shadow {
    position: absolute;
    bottom: 12%;
    left: 50%;
    width: 30%;
    height: 22px;
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 70%);
    filter: blur(7px);
    transform: translateX(-50%);
    animation: kc-solo-shadow 6.5s ease-in-out infinite;
    z-index: 1;
}
@keyframes kc-solo-shadow {
    0%, 100% { transform: translateX(-50%) scaleX(.9);  opacity: .5; }
    50%      { transform: translateX(-50%) scaleX(1.08); opacity: .72; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-solo-watch, .kc-solo-shadow { animation: none; }
}
/* No cutout yet → show the full photo as a full-bleed background instead of a
   floating rectangle. Kills the float/tilt/shadow/reflection and lifts the
   vignette + a bottom scrim above the image so the overlay text stays legible. */
.kc-product-page__gallery--solo.is-raw .kc-solo-bg { display: none; }
.kc-product-page__gallery--solo.is-raw .kc-solo-piece { z-index: 1; }
.kc-product-page__gallery--solo.is-raw .kc-solo-float {
    position: absolute;
    inset: 0;
    animation: none;
}
.kc-product-page__gallery--solo.is-raw .kc-solo-watch {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    filter: none;
}
.kc-product-page__gallery--solo.is-raw .kc-solo-shadow,
.kc-product-page__gallery--solo.is-raw .kc-solo-hotspots { display: none; }
.kc-product-page__gallery--solo.is-raw .kc-solo-grain {
    z-index: 2;
    background:
        linear-gradient(to top, rgba(8, 9, 13, 0.82) 0%, rgba(8, 9, 13, 0.22) 32%, rgba(8, 9, 13, 0) 56%),
        radial-gradient(120% 90% at 50% 40%, rgba(8, 9, 13, 0) 34%, rgba(8, 9, 13, 0.6) 100%);
}
@media (max-width: 900px) {
    .kc-product-page__gallery--solo .kc-product-page__stage { height: clamp(480px, 76vh, 640px); }
    /* Size by a DEFINITE width (not a % height — the float has no definite
       height, so a % there collapses to auto and stretches the float full-
       width, leaving the watch left-aligned and off-centre). A definite width
       lets the float shrink-wrap the watch so the flex centring lands it dead
       centre; the reflection matches so it sits squarely beneath. */
    .kc-solo-watch,
    .kc-solo-reflect { height: auto; width: min(86vw, 360px); max-width: none; }
    /* Drop the scroll cue on mobile (the buy block is right below the fold). */
    .kc-hero-ov__cue { display: none; }
    /* Centre the watch in the gap between the breadcrumbs (top-anchored) and
       the brand name (bottom-anchored). The insets MUST be fixed lengths, not
       a % of the stage — the crumbs/brand don't scale with stage height, so a
       % drifts the watch too high on taller phones. Top inset ≈ crumbs zone;
       bottom inset ≈ the title's bottom offset (7vh) + its height, so the band
       spans exactly crumbs→brand and the flex centring lands dead middle. */
    .kc-product-page__gallery--solo:not(.is-gallery) .kc-solo-piece {
        top: 2.1rem;
        bottom: calc(clamp(3.5rem, 7vh, 5.5rem) + 8.8rem);
    }
    /* Title drops to the very bottom; "Explore the gallery" collapses to a
       compact grid icon in the bottom-right corner so it clears the title.
       Scoped under the parent so these win over the base .kc-solo-enter rules,
       which sit LATER in the file (equal specificity would otherwise lose). */
    /* keep the title clear of the bottom-right gallery chip (~50px + margin) */
    .kc-hero-ov__title { bottom: clamp(1.4rem, 4.5vw, 2rem); max-width: calc(100% - 7rem); }
    .kc-product-page__gallery--solo .kc-solo-enter {
        right: clamp(1.1rem, 4vw, 1.6rem);
        bottom: clamp(1.1rem, 4vw, 1.6rem);
        width: 50px;
        height: 50px;
        padding: 0;
        gap: 0;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.2);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        color: #fff;
    }
    .kc-product-page__gallery--solo .kc-solo-enter__txt,
    .kc-product-page__gallery--solo .kc-solo-enter__arrow { display: none; }
    /* static grid icon is the no-JS fallback; the Lottie hand-gesture replaces
       it once the runtime mounts (.has-lottie added by JS) */
    .kc-product-page__gallery--solo .kc-solo-enter__icon { display: block; width: 19px; height: 19px; }
    .kc-product-page__gallery--solo .kc-solo-enter.has-lottie .kc-solo-enter__icon { display: none; }
    .kc-product-page__gallery--solo .kc-solo-enter.has-lottie .kc-solo-enter__lottie { display: block; }
    /* The animation has wide transparent padding around the hand (~38% of the
       canvas), so it fills the chip and scales up to make the gesture legible;
       the transparent overflow is invisible and ignores pointer events. */
    .kc-solo-enter__lottie { width: 50px; height: 50px; line-height: 0; pointer-events: none; }
    .kc-solo-enter__lottie svg { display: block; transform: scale(1.55); transform-origin: center; }
    /* views count rides on the top-right of the chip */
    .kc-product-page__gallery--solo .kc-solo-enter__count {
        display: grid;
        place-items: center;
        position: absolute;
        top: -5px;
        right: -5px;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        border-radius: 999px;
        background: var(--kc-color-primary);
        color: #fff;
        font-family: var(--kc-font-body);
        font-size: .58rem;
        font-weight: 700;
        line-height: 1;
        font-variant-numeric: tabular-nums;
    }
}


/* Solo hero — ghosted numeral, spec rail, price, scroll cue. */
.kc-solo-numeral {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -54%);
    z-index: 1;
    font-family: var(--kc-font-display);
    font-size: clamp(16rem, 42vw, 46rem);
    line-height: .8;
    font-weight: 500;
    letter-spacing: -.04em;
    color: #fff;
    opacity: .04;
    pointer-events: none;
    white-space: nowrap;
    user-select: none;
}
.kc-solo-specs {
    position: absolute;
    right: clamp(1.5rem, 4vw, 4.5rem);
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: right;
    pointer-events: auto;
}
.kc-solo-specs li {
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(255,255,255,.62);
    padding: .55rem 0;
    border-top: 1px solid rgba(255,255,255,.12);
}
.kc-solo-specs li:first-child { border-top: 0; }
.kc-solo-price {
    position: absolute;
    top: clamp(1.5rem, 4vw, 3rem);
    right: clamp(1.5rem, 4vw, 4.5rem);
    z-index: 4;
    font-family: var(--kc-font-display);
    font-size: clamp(1.5rem, 2vw, 2.1rem);
    color: #fff;
    letter-spacing: -.01em;
    text-shadow: 0 2px 16px rgba(0,0,0,.5);
}
.kc-solo-price .amount, .kc-solo-price bdi, .kc-solo-price span { font: inherit !important; color: inherit !important; }
.kc-solo-price del { opacity: .45; font-size: .6em; margin-right: .35rem; }
.kc-solo-price ins { text-decoration: none; }
.kc-solo-scroll {
    position: absolute;
    left: 50%;
    bottom: clamp(1.25rem, 3vh, 2.25rem);
    transform: translateX(-50%);
    z-index: 4;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .65rem;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
    text-decoration: none;
}
.kc-solo-scroll-line {
    width: 1px;
    height: 38px;
    background: linear-gradient(to bottom, rgba(255,255,255,.6), rgba(255,255,255,0));
    position: relative;
    overflow: hidden;
}
.kc-solo-scroll-line::after {
    content: "";
    position: absolute;
    top: -40%;
    left: 0;
    width: 100%;
    height: 40%;
    background: #fff;
    animation: kc-scroll-drop 1.8s cubic-bezier(.5,0,.5,1) infinite;
}
@keyframes kc-scroll-drop { 0% { top: -40%; } 60%,100% { top: 100%; } }
.kc-solo-scroll:hover { color: #fff; }
@media (max-width: 900px) {
    .kc-solo-specs, .kc-solo-price { display: none; }   /* declutter on mobile */
    .kc-solo-numeral { font-size: clamp(10rem, 60vw, 24rem); }
}
@media (prefers-reduced-motion: reduce) {
    .kc-solo-scroll-line::after { animation: none; }
}

/* ---------------------------------------------------------
   SOLO HERO — gallery state (swipe right to reveal)
--------------------------------------------------------- */
.kc-product-page__gallery--solo .kc-product-page__stage { cursor: grab; touch-action: pan-y; }
.kc-product-page__gallery--solo .kc-product-page__stage:active { cursor: grabbing; }

/* State transitions: watch slides left + shrinks, text fades out, gallery slides in. */
.kc-solo-piece,
.kc-hero-ov__title,
.kc-solo-specs,
.kc-solo-price,
.kc-solo-scroll,
.kc-solo-numeral {
    transition: transform .8s cubic-bezier(.62,0,.2,1), opacity .55s ease;
}
.kc-product-page__gallery--solo.is-gallery .kc-solo-piece {
    transform: translateX(-28%) scale(1.08);
}
.kc-product-page__gallery--solo.is-gallery .kc-hero-ov__title { transform: translateX(-40px); opacity: 0; pointer-events: none; }
.kc-product-page__gallery--solo.is-gallery .kc-solo-specs,
.kc-product-page__gallery--solo.is-gallery .kc-solo-price,
.kc-product-page__gallery--solo.is-gallery .kc-solo-scroll { opacity: 0; pointer-events: none; }
.kc-product-page__gallery--solo.is-gallery .kc-solo-numeral { opacity: 0; }

/* Enter / back affordances */
.kc-solo-enter, .kc-solo-back {
    position: absolute;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    background: none;
    border: 0;
    cursor: pointer;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(255,255,255,.78);
    transition: color .2s ease, opacity .4s ease, transform .4s ease;
}
.kc-solo-enter__arrow, .kc-solo-back svg { width: 22px; height: 8px; }
.kc-solo-enter:hover, .kc-solo-back:hover { color: #fff; }
.kc-solo-enter { right: clamp(1.5rem, 4vw, 4.5rem); bottom: clamp(1.5rem, 4vw, 3rem); }
.kc-solo-enter__arrow { transition: transform .25s ease; }
.kc-solo-enter:hover .kc-solo-enter__arrow { transform: translateX(4px); }
/* the icon + count are the compact mobile form of the button (hidden on desktop) */
.kc-solo-enter__icon, .kc-solo-enter__count, .kc-solo-enter__lottie { display: none; }
.kc-solo-back {
    left: clamp(1.5rem, 4vw, 4.5rem); top: clamp(1.5rem, 4vw, 3rem);
    opacity: 0; pointer-events: none;
    padding: .6rem 1.1rem;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.kc-product-page__gallery--solo.is-gallery .kc-solo-enter { opacity: 0; pointer-events: none; transform: translateX(20px); }
.kc-product-page__gallery--solo.is-gallery .kc-solo-back { opacity: 1; pointer-events: auto; }

/* The gallery grid — right half, slides/fades in. */
.kc-solo-gallery {
    position: absolute;
    top: 0; bottom: 0;
    right: 0;
    width: 56%;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: clamp(1.5rem, 5vh, 3.5rem) clamp(1.75rem, 4vw, 4.5rem);
    opacity: 0;
    transform: translateX(5%);
    pointer-events: none;
    transition: opacity .6s ease .1s, transform .8s cubic-bezier(.62,0,.2,1) .05s;
    border-left: 1px solid rgba(255,255,255,.08);
}
.kc-product-page__gallery--solo.is-gallery .kc-solo-gallery {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

.kc-solo-gallery__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.kc-solo-gallery__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: rgba(255,255,255,.85);
}
.kc-solo-gallery__count {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    font-variant-numeric: tabular-nums;
}
.kc-solo-gallery__grid {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    flex: 1;
    min-height: 0;
}
.kc-solo-gallery__item {
    margin: 0;
    overflow: hidden;
    background: #15171d;
    position: relative;
    cursor: pointer;
    flex: 0 1 58px;                 /* fixed thin basis; grow does the expanding */
    flex-grow: 0;
    min-height: 58px;
    opacity: 0;
    transform: translateY(14px);
    /* flex-grow animates the height both ways (basis stays fixed = no snap). */
    transition: flex-grow .6s cubic-bezier(.62,0,.2,1),
                transform .5s cubic-bezier(.22,.61,.36,1), opacity .5s ease;
}
.kc-product-page__gallery--solo.is-gallery .kc-solo-gallery__item {
    opacity: 1;
    transform: none;
    transition-delay: 0s, calc(0.2s + var(--gi) * 0.06s), calc(0.2s + var(--gi) * 0.06s);
}
/* Open states: the first is open by default; hovering any opens it (others stay thin). */
.kc-solo-gallery__item.is-open { flex-grow: 9; }
.kc-solo-gallery__grid:hover .kc-solo-gallery__item.is-open:not(:hover) { flex-grow: 0; }
.kc-solo-gallery__item:hover { flex-grow: 9; }
.kc-solo-gallery__item::after {
    content: "";
    position: absolute; inset: 0;
    border: 1px solid rgba(255,255,255,0);
    transition: border-color .3s ease;
    pointer-events: none;
    z-index: 2;
}
.kc-solo-gallery__item img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
    filter: grayscale(1) brightness(.78);
    transition: filter .45s ease;
}
/* Hover = zoom in for detail, lift above siblings. */
.kc-solo-gallery__item:hover { box-shadow: 0 26px 60px -22px rgba(0,0,0,.7); }
.kc-solo-gallery__cap {
    position: absolute;
    left: 1.1rem; bottom: .85rem;
    z-index: 3;
    display: flex;
    align-items: baseline;
    gap: .65rem;
    color: #fff;
    text-shadow: 0 1px 10px rgba(0,0,0,.7);
    pointer-events: none;
}
.kc-solo-gallery__cap-num {
    font-family: var(--kc-font-body);
    font-size: .6rem; font-weight: 600; letter-spacing: .18em;
    color: var(--kc-color-primary);
    font-variant-numeric: tabular-nums;
}
.kc-solo-gallery__cap-label {
    font-family: var(--kc-font-display);
    font-size: 1.05rem; letter-spacing: -.005em;
}
.kc-solo-gallery__item:hover::after { border-color: rgba(255,255,255,.35); }
.kc-solo-gallery__item.is-open img,
.kc-solo-gallery__item:hover img { filter: grayscale(0) brightness(1); }

@media (max-width: 900px) {
    /* The desktop accordion expands the open tile via flex-grow — but on a
       touch panel there's no hover, and 6 tiles at the 58px basis already fill
       the stage, leaving no space to grow. So on mobile the gallery becomes a
       scrollable stack of full, colour detail shots instead. */
    .kc-solo-gallery {
        width: 100%;
        border-left: 0;
        padding: 4.25rem 1.1rem 1.1rem;   /* top pad clears the Back button */
    }
    .kc-solo-gallery__grid {
        flex: 1;
        min-height: 0;
        gap: .6rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-right: 2px;
        scroll-snap-type: y proximity;
    }
    .kc-solo-gallery__grid::-webkit-scrollbar { display: none; }
    .kc-solo-gallery__item {
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
        aspect-ratio: 3 / 2;
        flex-grow: 0;              /* no accordion grow on touch */
        border-radius: 6px;
        scroll-snap-align: start;
    }
    /* every shot reads in full colour, all visible while scrolling */
    .kc-solo-gallery__item img { filter: none; object-position: center; }
    .kc-solo-gallery__cap { left: .9rem; bottom: .75rem; }
    /* hide the faded watch behind the stack — the images carry the view now */
    .kc-product-page__gallery--solo.is-gallery .kc-solo-piece { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-solo-gallery__item, .kc-solo-piece, .kc-hero-ov__title { transition: opacity .3s ease; }
}

/* ---------------------------------------------------------
   BLUEPRINT HOTSPOTS — hover a spec to mark it on the watch
--------------------------------------------------------- */
.kc-solo-specs li { cursor: default; transition: color .2s ease; }
.kc-solo-specs li[data-hotspot] { cursor: pointer; transition: color .2s ease, text-shadow .2s ease; }
.kc-solo-specs li[data-hotspot]:hover {
    color: #fff;
    text-shadow: 0 0 14px rgba(0, 176, 219, .85);   /* glow ties the spec to its highlight */
}

.kc-solo-hotspots {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}
.kc-solo-hot {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(.8);
    border: 2px solid rgba(0, 176, 219, 1);
    border-radius: 50%;
    background: rgba(0, 176, 219, 0.12);          /* tint the region so it reads on bright metal */
    opacity: 0;
    transition: opacity .35s ease, transform .45s cubic-bezier(.34,1.56,.64,1);
    box-shadow:
        0 0 0 1px rgba(2, 16, 28, .4),            /* dark contrast ring against bright dials */
        0 0 0 4px rgba(0, 176, 219, .25),
        0 0 46px rgba(0, 176, 219, .6),
        inset 0 0 28px rgba(0, 176, 219, .22);
}
/* crosshair ticks */
.kc-solo-hot::before, .kc-solo-hot::after {
    content: "";
    position: absolute;
    background: rgba(0, 176, 219, 1);
    box-shadow: 0 0 8px rgba(0, 176, 219, .9);
}
.kc-solo-hot::before { left: 50%; top: -13px; width: 2px; height: 26px; transform: translateX(-50%); }
.kc-solo-hot::after  { top: 50%; left: -13px; height: 2px; width: 26px; transform: translateY(-50%); }

/* sizes/positions (approx, watch centred in the cutout) */
.kc-solo-hot--case {
    width: auto; height: 64%;
    left: 103%; top: 50%;          /* just outside the watch, in the dark space */
    border: 0; border-radius: 0; box-shadow: none;
    transform: translate(0, -50%) scale(1);
    opacity: 0;
    transition: opacity .3s ease;
}
.kc-solo-hot--case::before, .kc-solo-hot--case::after { display: none; }  /* no crosshair for the caliper */
/* the vertical line that grows from the centre outward */
.kc-solo-hot-line {
    position: absolute;
    left: 0; top: 0;
    width: 2px; height: 100%;
    background: rgba(0, 176, 219, 1);
    transform: scaleY(0);
    transform-origin: center;
    transition: transform .5s cubic-bezier(.62,0,.2,1);
    box-shadow: 0 0 18px rgba(0, 176, 219, .8);
}
/* end caps (top + bottom ticks) — fade in after the line draws */
.kc-solo-hot-line::before, .kc-solo-hot-line::after {
    content: "";
    position: absolute;
    left: -7px;
    width: 16px; height: 2px;
    background: rgba(0, 176, 219, 1);
    box-shadow: 0 0 8px rgba(0, 176, 219, .8);
    opacity: 0;
    transition: opacity .25s ease .35s;
}
.kc-solo-hot-line::before { top: 0; }
.kc-solo-hot-line::after  { bottom: 0; }
/* the size value, beside the line */
.kc-solo-hot-val {
    position: absolute;
    left: 16px; top: 50%;
    transform: translateY(-50%) translateX(-6px);
    font-family: var(--kc-font-body);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .04em;
    color: #fff;
    white-space: nowrap;
    opacity: 0;
    transition: opacity .3s ease .4s, transform .4s cubic-bezier(.22,.61,.36,1) .4s;
    text-shadow: 0 1px 10px rgba(0,0,0,.6);
}
.kc-solo-hotspots.show-case .kc-solo-hot--case { opacity: 1; }
.kc-solo-hotspots.show-case .kc-solo-hot-line { transform: scaleY(1); }
.kc-solo-hotspots.show-case .kc-solo-hot-line::before,
.kc-solo-hotspots.show-case .kc-solo-hot-line::after { opacity: 1; }
.kc-solo-hotspots.show-case .kc-solo-hot-val { opacity: 1; transform: translateY(-50%) translateX(0); }
/* keep ring hotspots below */
.kc-solo-hot--bezel-x {}
/* Circles, not ovals: drive size from height + aspect-ratio so they stay round
   regardless of the (non-square) stage proportions. */
.kc-solo-hot--bezel    { height: 46%; width: auto; aspect-ratio: 1 / 1; }
.kc-solo-hot--dial     { height: 26%; width: auto; aspect-ratio: 1 / 1; }
.kc-solo-hot--bracelet { width: 30%; height: 12%; top: 12%; border-radius: 6px; }

.kc-solo-hotspots.show-bezel    .kc-solo-hot--bezel,
.kc-solo-hotspots.show-dial     .kc-solo-hot--dial,
.kc-solo-hotspots.show-bracelet .kc-solo-hot--bracelet {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.kc-solo-hot--bracelet { transform: translate(-50%, 0) scale(.8); }
.kc-solo-hotspots.show-bracelet .kc-solo-hot--bracelet { transform: translate(-50%, 0) scale(1); }
@media (prefers-reduced-motion: reduce) {
    .kc-solo-hot { transition: opacity .2s ease; }
}


/* ---------------------------------------------------------
   PDP HERO — gallery 75% + acquire rail 25%
--------------------------------------------------------- */
.kc-pdp-hero {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(340px, 1fr);
    min-height: clamp(560px, 90vh, 960px);   /* grows with the rail — no inner scroll-trap */
    background: #fff;
}
.kc-pdp-hero .kc-product-page__gallery--solo,
.kc-pdp-hero .kc-product-page__gallery--solo .kc-product-page__stage { height: 100%; }

.kc-pdp-hero__rail {
    overflow: visible;           /* no inner scroll — the page scrolls as one */
    min-width: 0;                /* let the 1fr grid track win over the simrail's max-content min-size */
    background: #fff;
    padding: clamp(1.75rem, 4vh, 3.25rem) clamp(1.5rem, 1.8vw, 2.5rem);
    justify-content: center;     /* centre the buy block when the gallery is taller */
    border-left: 1px solid var(--kc-color-line);
}
/* The buy-rail triptych divider is for the buy section's column gap — in the hero
   the rail butts onto the gallery, so that hairline would float into the dark
   image (it was only hidden before because the rail used to clip overflow). */
.kc-pdp-hero__rail::before { display: none; }
.kc-pdp-hero__rail::-webkit-scrollbar { display: none; }
/* Price slightly tighter to fit the narrower column. */
.kc-pdp-hero__rail .kc-product-page__price-hero { font-size: clamp(2rem, 2.4vw, 2.7rem); }

@media (max-width: 960px) {
    .kc-pdp-hero {
        grid-template-columns: 1fr;
        min-height: 0;            /* drop the desktop floor once stacked */
    }
    .kc-pdp-hero .kc-product-page__gallery--solo .kc-product-page__stage {
        height: clamp(440px, 60vh, 640px);
        min-height: 0;            /* override the desktop min so mobile stays compact */
    }
    .kc-pdp-hero__rail {
        height: auto;
        overflow: visible;
        border-left: 0;
        border-top: 1px solid var(--kc-color-line);
    }
}

/* Virtual Try-On panel hidden for now (re-enable by removing this rule). */
.kc-product-page__tryon { display: none; }

/* ============================================================================
   THE GALLERY REEL — scroll-driven horizontal cinema (assets/js/reel.js)
   ========================================================================== */
.kc-reel {
    position: relative;
    background: #0a121c;
    color: #fff;
}
.kc-reel__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}
/* Full-bleed slides, stacked; JS cross-fades + zooms between them on scroll. */
.kc-reel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    background: #0a121c;           /* solid backdrop — a still-loading slide reads dark, not blurry */
    transform-origin: center center;
    will-change: opacity, transform;
}
.kc-reel__slide:first-child { opacity: 1; }   /* no-JS: at least the first shot shows */
.kc-reel__fg {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;           /* clip the oversized (parallaxing) image */
}
.kc-reel__fg img {
    position: absolute;
    top: 0;
    left: -14%;
    width: 128%;                /* oversized so the parallax drift never shows an edge */
    max-width: none;            /* override the global img { max-width:100% } cap */
    height: 100%;
    object-fit: cover;          /* fill the viewport edge-to-edge — true full-bleed */
    object-position: center;
    display: block;
    pointer-events: none;
    user-select: none;
}
/* Overlay chrome — above the slides, never intercepts scroll. */
.kc-reel__scrim {
    position: absolute;
    inset: 0;
    z-index: 50;
    pointer-events: none;
    background:
        linear-gradient(to bottom, rgba(6, 12, 20, .5) 0%, transparent 20%),
        linear-gradient(to top, rgba(6, 12, 20, .55) 0%, transparent 26%);
}
.kc-reel__overlay {
    position: absolute;
    inset: 0;
    z-index: 51;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(1.75rem, 4vh, 3.25rem) clamp(1.5rem, 5vw, 5rem);
    pointer-events: none;
}
.kc-reel__eyebrow {
    margin: 0 0 .55rem;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}
.kc-reel__title {
    margin: 0;
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.01em;
    color: #fff;
    text-shadow: 0 2px 22px rgba(0, 0, 0, .55);
}
.kc-reel__foot {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.kc-reel__counter {
    flex: 0 0 auto;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    letter-spacing: .14em;
    color: rgba(255, 255, 255, .6);
    text-shadow: 0 1px 10px rgba(0, 0, 0, .5);
}
.kc-reel__counter [data-kc-reel-idx] { color: #fff; font-weight: 600; }
.kc-reel__counter-sep { margin: 0 .4rem; color: rgba(255, 255, 255, .3); }
.kc-reel__progress {
    flex: 1 1 auto;
    position: relative;
    height: 1.5px;
    background: rgba(255, 255, 255, .18);
    overflow: hidden;
}
.kc-reel__progress-bar {
    position: absolute;
    inset: 0;
    transform-origin: left center;
    transform: scaleX(0);
    background: var(--kc-color-primary);
}
.kc-reel__hint {
    flex: 0 0 auto;
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .5);
    text-shadow: 0 1px 10px rgba(0, 0, 0, .5);
    transition: opacity .4s ease;
}
/* Reduced-motion fallback — a plain vertical stack of full-bleed shots. */
.kc-reel.is-static .kc-reel__sticky { position: static; height: auto; overflow: visible; }
.kc-reel.is-static .kc-reel__slide {
    position: relative;
    inset: auto;
    opacity: 1;
    height: clamp(60vh, 70vw, 86vh);
}
.kc-reel.is-static .kc-reel__overlay,
.kc-reel.is-static .kc-reel__scrim { display: none; }

/* =========================================================================
   GLOBAL SEARCH OVERLAY  (header search icon → live, attribute-wide search)
   ========================================================================= */
.kc-search {
    position: fixed;
    inset: 0;
    z-index: 1200;
}
.kc-search[hidden] { display: none; }
.kc-search__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(1, 21, 37, 0.55);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .38s ease;
}
.kc-search.is-open .kc-search__backdrop { opacity: 1; }

.kc-search__panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: #F4F2EE;
    color: var(--kc-color-ink);
    max-height: 90vh;
    overflow-y: auto;
    transform: translateY(-101%);
    transition: transform .46s cubic-bezier(.22, 1, .36, 1);
    box-shadow: 0 34px 90px -34px rgba(1, 21, 37, 0.55);
}
.kc-search.is-open .kc-search__panel { transform: translateY(0); }

/* search bar */
.kc-search__bar {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 1.6rem clamp(1.5rem, 5vw, 5rem);
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-search__bar-icon {
    width: 24px;
    height: 24px;
    color: var(--kc-color-primary);
    flex-shrink: 0;
}
.kc-search__input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    font-family: var(--kc-font-display);
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    font-weight: 400;
    line-height: 1.1;
    color: var(--kc-color-ink);
    padding: .25rem 0;
}
.kc-search__input:focus { outline: none; }
.kc-search__input::placeholder { color: rgba(1, 21, 37, 0.32); }
.kc-search__input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.kc-search__clear {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid var(--kc-color-line);
    background: #fff;
    color: var(--kc-color-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease;
}
.kc-search__clear svg { width: 14px; height: 14px; }
.kc-search__clear:hover { color: var(--kc-color-ink); border-color: var(--kc-color-ink); }
.kc-search__esc {
    flex-shrink: 0;
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--kc-color-muted);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 3px;
    padding: .55rem .75rem;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease;
}
.kc-search__esc:hover { color: var(--kc-color-ink); border-color: var(--kc-color-ink); }

/* body */
.kc-search__body {
    max-width: var(--kc-container);
    margin: 0 auto;
    padding: 2.25rem clamp(1.5rem, 5vw, 5rem) 3rem;
}
.kc-search__home {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.75rem;
}
/* the JS toggles these via the [hidden] attribute — keep it winning over display:grid */
.kc-search__home[hidden],
.kc-search__results[hidden],
.kc-search__col[hidden] { display: none !important; }
.kc-search__label {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .26em;
    color: var(--kc-color-muted);
    margin: 0 0 1.1rem;
}
.kc-search__label--mt { margin-top: 1.7rem; }
.kc-search__col-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}
.kc-search__clear-recent {
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--kc-color-muted);
    background: none;
    border: 0;
    cursor: pointer;
    padding: 0 0 1.1rem;
    transition: color .2s ease;
}
.kc-search__clear-recent:hover { color: var(--kc-color-primary); }
.kc-search__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.kc-search__chip {
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    padding: .5rem .95rem;
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
.kc-search__chip:hover {
    color: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    background: rgba(0, 176, 219, 0.05);
}
/* Recent searches sit inline at the front of the popular chips, marked by a clock. */
.kc-search__chips-recent { display: contents; }
.kc-search__chip--recent {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--kc-color-cream, #F4F2EE);
}
.kc-search__chip-clock {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
    color: var(--kc-color-muted);
    transition: color .18s ease;
}
.kc-search__chip--recent:hover .kc-search__chip-clock { color: var(--kc-color-primary); }
.kc-search__links {
    display: flex;
    flex-direction: column;
}
.kc-search__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-family: var(--kc-font-display);
    font-size: 1.2rem;
    color: var(--kc-color-ink);
    text-decoration: none;
    padding: .5rem 0;
    border-bottom: 1px solid var(--kc-color-line);
    transition: color .2s ease;
}
.kc-search__link:last-child { border-bottom: 0; }
.kc-search__link svg {
    width: 14px;
    height: 14px;
    color: var(--kc-color-primary);
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity .2s ease, transform .2s ease;
}
.kc-search__link:hover { color: var(--kc-color-primary); }
.kc-search__link:hover svg { opacity: 1; transform: none; }

/* dial-colour swatches */
.kc-search__swatches {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.kc-search__swatch {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    padding: .4rem .9rem .4rem .48rem;
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease;
}
.kc-search__swatch:hover { border-color: var(--kc-color-primary); color: var(--kc-color-primary); }
.kc-search__swatch-dot {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-size: cover;
    flex-shrink: 0;
    /* same glossy bead as the product-page .kc-rail-swatch__dot */
    box-shadow:
        inset 0 1.5px 2px rgba(255, 255, 255, 0.5),
        inset 0 -2px 3px rgba(0, 0, 0, 0.3),
        0 0 0 1px rgba(1, 21, 37, 0.12),
        0 2px 5px rgba(0, 0, 0, 0.12);
}

/* results */
.kc-search__sugg {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.6rem;
}
.kc-search__sugg-chip {
    font-family: var(--kc-font-body);
    font-size: .66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    padding: .5rem .9rem;
    text-decoration: none;
    transition: color .18s ease, border-color .18s ease;
}
.kc-search__sugg-chip:hover { color: var(--kc-color-primary); border-color: var(--kc-color-primary); }
.kc-search__results-label {
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .26em;
    color: var(--kc-color-muted);
    margin: 0 0 1rem;
}
.kc-search__list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.25rem;
}
@media (max-width: 1200px) { .kc-search__list { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px)  { .kc-search__list { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .kc-search__list { grid-template-columns: repeat(2, 1fr); } }
/* contained white cards on the cream panel; info flex-grows so prices bottom-align */
.kc-search__hit {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 7px;
    overflow: hidden;
    text-decoration: none !important;
    color: var(--kc-color-ink);
    transition: transform .32s cubic-bezier(.22, 1, .36, 1), box-shadow .32s ease, border-color .32s ease;
}
.kc-search__hit:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 42px -22px rgba(1, 21, 37, 0.38);
    border-color: rgba(1, 21, 37, 0.18);
}
.kc-search__hit-media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f6f5f2;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-search__hit-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}
.kc-search__hit:hover .kc-search__hit-media img { transform: scale(1.06); }
.kc-search__hit-info {
    display: flex;
    flex-direction: column;
    gap: .28rem;
    min-width: 0;
    flex: 1;
    padding: 1rem 1.1rem .35rem;
}
.kc-search__hit-brand {
    font-family: var(--kc-font-body);
    font-size: .56rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--kc-color-muted);
}
.kc-search__hit-name {
    font-family: var(--kc-font-display);
    font-size: 1.22rem;
    line-height: 1.12;
    color: var(--kc-color-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color .2s ease;
}
.kc-search__hit:hover .kc-search__hit-name { color: var(--kc-color-primary); }
.kc-search__hit-meta {
    font-family: var(--kc-font-body);
    font-size: .7rem;
    letter-spacing: .02em;
    color: var(--kc-color-muted);
}
.kc-search__hit-price {
    font-family: var(--kc-font-body);
    font-size: .92rem;
    font-weight: 600;
    color: var(--kc-color-ink);
    padding: .55rem 1.1rem 1.05rem;
}
.kc-search__hit-price del { opacity: .5; font-weight: 400; margin-right: .3rem; }
.kc-search__viewall {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-top: 1.4rem;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--kc-color-ink);
    text-decoration: none;
    padding-bottom: .35rem;
    border-bottom: 1px solid var(--kc-color-primary);
    transition: gap .2s ease, color .2s ease;
}
.kc-search__viewall svg { width: 14px; height: 14px; color: var(--kc-color-primary); }
.kc-search__viewall:hover { gap: .9rem; color: var(--kc-color-primary); }
.kc-search__empty { padding: 1.25rem 0 2rem; }
.kc-search__empty-title {
    font-family: var(--kc-font-display);
    font-size: 1.65rem;
    color: var(--kc-color-ink);
    margin: 0 0 .5rem;
}
.kc-search__empty-sub {
    font-family: var(--kc-font-body);
    font-size: .95rem;
    color: var(--kc-color-muted);
    margin: 0;
}

@media (max-width: 800px) {
    .kc-search__home { grid-template-columns: 1fr; gap: 1.85rem; }
    .kc-search__bar { padding: 1.25rem 1.25rem; gap: .8rem; }
    .kc-search__body { padding: 1.75rem 1.25rem 2.5rem; }
    .kc-search__hit-name { font-size: 1.12rem; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-search__panel,
    .kc-search__backdrop { transition: none; }
}

/* =========================================================================
   CHECKOUT  (bespoke classic checkout — theme dequeues all WC base CSS,
   so every element is styled here from scratch)
   ========================================================================= */
/* hide the page title on the checkout form (kept on the order-received page) */
body.woocommerce-checkout:not(.woocommerce-order-received) .entry-header { display: none; }

.kc-checkout {
    max-width: 84rem;
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 3rem) clamp(1.25rem, 4vw, 2.5rem) 5rem;
}

/* trust bar */
/* progress stepper */
.kc-checkout__steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    max-width: 30rem;
    margin: 0 auto 3rem;
    padding: 0;
}
.kc-checkout__pip {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    flex: 0 0 auto;
    background: none;
    border: 0;
    padding: 0;
    cursor: default;
    text-decoration: none;
    font: inherit;
}
.kc-checkout__pip.is-done { cursor: pointer; }
.kc-checkout__pip-dot {
    position: relative;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1.5px solid var(--kc-color-line);
    color: var(--kc-color-muted);
    font-family: var(--kc-font-body);
    font-size: .8rem;
    font-weight: 600;
    transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.kc-checkout__pip-dot svg { width: 15px; height: 15px; display: none; }
.kc-checkout__pip.is-active .kc-checkout__pip-dot,
.kc-checkout__pip.is-done .kc-checkout__pip-dot {
    background: var(--kc-color-ink);
    border-color: var(--kc-color-ink);
    color: #fff;
}
.kc-checkout__pip.is-done .kc-checkout__pip-dot svg { display: block; }
.kc-checkout__pip.is-done .kc-checkout__pip-num { display: none; }
.kc-checkout__pip-label {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--kc-color-muted);
    transition: color .25s ease;
    white-space: nowrap;
}
.kc-checkout__pip.is-active .kc-checkout__pip-label,
.kc-checkout__pip.is-done .kc-checkout__pip-label { color: var(--kc-color-ink); }
.kc-checkout__pip-line {
    flex: 1 1 auto;
    min-width: 2rem;
    height: 2px;
    margin: 14px .4rem 0;
    background: var(--kc-color-line);
    transition: background-color .3s ease;
}
.kc-checkout__pip-line.is-done { background: var(--kc-color-ink); }

/* step panels + step CTAs */
.kc-checkout__step[hidden] { display: none; }
.kc-checkout__continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    margin-top: 2rem;
    padding: 1.3rem 2rem;
    font-family: var(--kc-font-body);
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #fff;
    background: var(--kc-color-ink);
    border: 1px solid var(--kc-color-ink);
    border-radius: 6px;
    cursor: pointer;
    box-shadow: 0 14px 30px -14px rgba(1, 21, 37, .5);
    transition: background-color .2s ease, transform .2s ease;
}
.kc-checkout__continue svg { width: 15px; height: 15px; transition: transform .2s ease; }
.kc-checkout__continue:hover { background: var(--kc-color-primary); border-color: var(--kc-color-primary); transform: translateY(-2px); }
.kc-checkout__continue:hover svg { transform: translateX(3px); }
.kc-checkout__back {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 1.6rem;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    transition: color .2s ease;
}
.kc-checkout__back svg { width: 14px; height: 14px; }
.kc-checkout__back:hover { color: var(--kc-color-ink); }

/* invalid field highlight (WC base CSS is dequeued) */
.kc-checkout .form-row.woocommerce-invalid input.input-text,
.kc-checkout .form-row.woocommerce-invalid select,
.kc-checkout .form-row.woocommerce-invalid textarea,
.kc-checkout .form-row.woocommerce-invalid .select2-container .select2-selection--single {
    border-color: #c0392b;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, .1);
}

/* layout */
.kc-checkout__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(330px, 1fr);
    gap: clamp(2rem, 4vw, 4.5rem);
    align-items: start;
}

/* section headings + dividers */
.kc-checkout__section-title,
.kc-checkout .woocommerce-billing-fields > h3,
.kc-checkout .woocommerce-shipping-fields > h3,
.kc-checkout .woocommerce-additional-fields > h3,
.kc-checkout #ship-to-different-address {
    font-family: var(--kc-font-display);
    font-size: 1.55rem;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--kc-color-ink);
    margin: 0 0 1.3rem;
}
.kc-checkout .woocommerce-billing-fields,
.kc-checkout .woocommerce-shipping-fields,
.kc-checkout .woocommerce-additional-fields,
.kc-checkout__payment-wrap {
    padding: 0 0 2rem;
    margin: 0 0 2rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-checkout__payment-wrap { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.kc-checkout .woocommerce-additional-fields__field-wrapper { margin-top: .5rem; }

/* form rows / fields */
.kc-checkout .form-row { margin: 0 0 1.15rem; padding: 0; }
.kc-checkout .form-row:last-child { margin-bottom: 0; }
.kc-checkout label {
    display: block;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
    color: var(--kc-color-ink);
    margin: 0 0 .42rem;
    line-height: 1.3;
}
.kc-checkout .required { color: var(--kc-color-primary); border: 0; text-decoration: none; }
.kc-checkout .optional { color: var(--kc-color-muted); font-weight: 400; }
.kc-checkout input.input-text,
.kc-checkout textarea,
.kc-checkout select,
.kc-checkout .select2-container .select2-selection--single {
    width: 100%;
    height: auto;
    font-family: var(--kc-font-body);
    font-size: .95rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 6px;
    padding: .85rem 1rem;
    line-height: 1.35;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.kc-checkout textarea { min-height: 6.5rem; resize: vertical; }
.kc-checkout input.input-text:focus,
.kc-checkout textarea:focus,
.kc-checkout select:focus,
.kc-checkout .select2-container--focus .select2-selection--single,
.kc-checkout .select2-container--open .select2-selection--single {
    outline: none;
    border-color: var(--kc-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 176, 219, 0.12);
}
.kc-checkout input::placeholder,
.kc-checkout textarea::placeholder { color: rgba(1, 21, 37, 0.32); }
.kc-checkout .woocommerce-input-wrapper { width: 100%; display: block; }

/* two-up rows (first/last) */
@media (min-width: 520px) {
    .kc-checkout .form-row-first,
    .kc-checkout .form-row-last {
        display: inline-block;
        width: calc(50% - .55rem);
        vertical-align: top;
    }
    .kc-checkout .form-row-first { margin-right: 1rem; }
}

/* select2 country/state — match the native inputs */
.kc-checkout .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    height: auto;
}
.kc-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 1.35;
    color: var(--kc-color-ink);
}
.kc-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 8px; }
.kc-checkout .select2-dropdown {
    border-color: var(--kc-color-line);
    border-radius: 6px;
    box-shadow: 0 18px 40px -22px rgba(1, 21, 37, .35);
}
.kc-checkout .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--kc-color-primary); }
.kc-checkout .select2-search--dropdown .select2-search__field { border-radius: 5px; border-color: var(--kc-color-line); padding: .5rem .6rem; }

/* checkboxes (ship to different, terms, marketing) */
.kc-checkout .form-row.woocommerce-validated input.input-text { border-color: var(--kc-color-line); }
.kc-checkout #ship-to-different-address label,
.kc-checkout .woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .9rem;
    font-weight: 500;
    cursor: pointer;
    text-transform: none;
    letter-spacing: 0;
}
.kc-checkout #ship-to-different-address { border-bottom: 0; padding-bottom: 0; margin-bottom: 1.25rem; }
.kc-checkout input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--kc-color-primary); flex-shrink: 0; margin: 0; }

/* coupon + login toggles */
.kc-checkout .woocommerce-form-login-toggle,
.kc-checkout .woocommerce-form-coupon-toggle { margin: 0 0 1.5rem; }
.kc-checkout .woocommerce-info,
.kc-checkout .woocommerce-message {
    font-family: var(--kc-font-body);
    font-size: .85rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-left: 3px solid var(--kc-color-primary);
    border-radius: 6px;
    padding: .85rem 1.1rem;
    margin: 0 0 1.25rem;
    list-style: none;
}
.kc-checkout .woocommerce-info a,
.kc-checkout .woocommerce-message a { color: var(--kc-color-primary); font-weight: 600; text-decoration: none; }
.kc-checkout .checkout_coupon,
.kc-checkout form.login {
    border: 1px solid var(--kc-color-line);
    border-radius: 8px;
    padding: 1.5rem;
    margin: 0 0 1.5rem;
}
.kc-checkout .checkout_coupon .button,
.kc-checkout form.login .button { margin-top: .25rem; }

/* ---- order summary (sticky aside) ---- */
.kc-checkout__aside { position: relative; }
.kc-checkout__summary {
    position: sticky;
    top: 2rem;
    background: #F4F2EE;
    border: 1px solid var(--kc-color-line);
    border-radius: 12px;
    padding: 1.75rem 1.6rem;
}
.kc-checkout__summary-title {
    font-family: var(--kc-font-display);
    font-size: 1.45rem;
    font-weight: 400;
    color: var(--kc-color-ink);
    margin: 0 0 1.25rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-checkout .shop_table { width: 100%; border-collapse: collapse; }
.kc-checkout .shop_table thead { display: none; }
.kc-checkout .shop_table .cart_item td {
    padding: .55rem 0;
    vertical-align: top;
    border: 0;
}
.kc-checkout .shop_table .product-name {
    font-family: var(--kc-font-body);
    font-size: .92rem;
    line-height: 1.4;
    color: var(--kc-color-ink);
}
.kc-checkout .shop_table .product-name .product-quantity { color: var(--kc-color-muted); font-size: .82rem; white-space: nowrap; }
/* line item with thumbnail */
.kc-checkout__line { display: flex; align-items: flex-start; gap: .85rem; }
.kc-checkout__line-media {
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--kc-color-line);
}
.kc-checkout__line-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-checkout__line-info { flex: 1 1 auto; min-width: 0; }
.kc-checkout__line-name { display: block; font-weight: 500; line-height: 1.35; }
.kc-checkout .shop_table .product-total {
    text-align: right;
    font-weight: 600;
    white-space: nowrap;
    color: var(--kc-color-ink);
}
.kc-checkout .shop_table .cart_item .wc-item-meta,
.kc-checkout .shop_table .cart_item dl {
    margin: .35rem 0 0;
    font-size: .76rem;
    line-height: 1.5;
    color: var(--kc-color-muted);
}
.kc-checkout .shop_table .cart_item dl dt { font-weight: 600; float: left; margin-right: .35rem; clear: left; }
.kc-checkout .shop_table .cart_item dl dd { margin: 0; }
.kc-checkout .shop_table tfoot { border-top: 1px solid var(--kc-color-line); }
.kc-checkout .shop_table tfoot th,
.kc-checkout .shop_table tfoot td {
    padding: .6rem 0;
    border: 0;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    color: var(--kc-color-ink);
}
.kc-checkout .shop_table tfoot th { font-weight: 500; text-align: left; }
.kc-checkout .shop_table tfoot td { text-align: right; font-weight: 600; }
.kc-checkout .shop_table tfoot .order-total th {
    font-family: var(--kc-font-display);
    font-size: 1.3rem;
    font-weight: 400;
    padding-top: 1rem;
}
.kc-checkout .shop_table tfoot .order-total td {
    font-family: var(--kc-font-display);
    font-size: 1.65rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    padding-top: 1rem;
}
.kc-checkout .shop_table tfoot .order-total .amount { font: inherit; }

/* coupon row inside review */
.kc-checkout .shop_table .cart-discount td { color: var(--kc-color-primary); }

/* assurances + concierge in the summary */
.kc-checkout__assurances {
    list-style: none;
    margin: 1.4rem 0 0;
    padding: 1.4rem 0 0;
    border-top: 1px solid var(--kc-color-line);
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.kc-checkout__assurances li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    line-height: 1.4;
    color: var(--kc-color-ink);
}
.kc-checkout__assurances svg { width: 18px; height: 18px; color: var(--kc-color-primary); flex-shrink: 0; margin-top: .05rem; }
.kc-checkout__concierge {
    margin: 1.2rem 0 0;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: var(--kc-color-muted);
}
.kc-checkout__concierge a { color: var(--kc-color-primary); font-weight: 600; text-decoration: none; }
.kc-checkout__concierge a:hover { text-decoration: underline; }

/* coupon widget in the summary */
.kc-checkout__coupon {
    margin-top: 1.3rem;
    padding-top: 1.3rem;
    border-top: 1px solid var(--kc-color-line);
}
.kc-checkout__coupon-toggle {
    display: flex;
    align-items: center;
    gap: .4rem;
    cursor: pointer;
    list-style: none;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    font-weight: 600;
    color: var(--kc-color-ink);
}
.kc-checkout__coupon-toggle::-webkit-details-marker { display: none; }
.kc-checkout__coupon-toggle::after {
    content: "+";
    margin-left: auto;
    font-size: 1.15rem;
    line-height: 1;
    color: var(--kc-color-muted);
    transition: color .2s ease;
}
.kc-checkout__coupon[open] .kc-checkout__coupon-toggle::after { content: "\2013"; }
.kc-checkout__coupon-toggle:hover::after { color: var(--kc-color-primary); }
.kc-checkout__coupon-body { margin-top: .9rem; }
.kc-checkout__coupon-row { display: flex; gap: .5rem; }
.kc-checkout__coupon-row input {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 6px;
    padding: .7rem .85rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.kc-checkout__coupon-row input:focus {
    outline: none;
    border-color: var(--kc-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 176, 219, 0.12);
}
.kc-checkout__coupon-row input::placeholder { color: rgba(1, 21, 37, 0.32); }
.kc-checkout__coupon-apply {
    flex: 0 0 auto;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-ink);
    border-radius: 6px;
    padding: .7rem 1.15rem;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}
.kc-checkout__coupon-apply:hover { background: var(--kc-color-ink); color: #fff; }
.kc-checkout__coupon-apply.is-loading { opacity: .55; pointer-events: none; }
.kc-checkout__coupon-notice:not(:empty) { margin-top: .7rem; }
.kc-checkout__coupon-notice .woocommerce-error,
.kc-checkout__coupon-notice .woocommerce-message,
.kc-checkout__coupon-notice ul {
    margin: 0;
    padding: .55rem .75rem;
    font-size: .78rem;
    list-style: none;
}

/* ---- payment ---- */
.kc-checkout #payment { background: transparent; border-radius: 0; }
.kc-checkout #payment .wc_payment_methods {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    border: 1px solid var(--kc-color-line);
    border-radius: 8px;
    overflow: hidden;
}
.kc-checkout #payment .wc_payment_method { border-top: 1px solid var(--kc-color-line); }
.kc-checkout #payment .wc_payment_method:first-child { border-top: 0; }
.kc-checkout #payment .wc_payment_method > label {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 1rem 1.1rem;
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
}
.kc-checkout #payment .wc_payment_method input[type="radio"] { width: 18px; height: 18px; accent-color: var(--kc-color-primary); }
.kc-checkout #payment .payment_box {
    background: #F4F2EE;
    font-size: .85rem;
    line-height: 1.55;
    color: var(--kc-color-muted);
    padding: 1rem 1.1rem;
    margin: 0;
    border-radius: 0;
}
.kc-checkout #payment .payment_box::before { display: none; }

/* place order */
.kc-checkout #payment .place-order { padding: 0; margin-top: 1.5rem; }
.kc-checkout #place_order,
.kc-checkout .checkout_coupon .button,
.kc-checkout form.login .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #fff;
    background: var(--kc-color-ink);
    border: 1px solid var(--kc-color-ink);
    border-radius: 6px;
    padding: 1.15rem 2rem;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.kc-checkout #place_order {
    width: 100%;
    padding: 1.3rem 2rem;
    font-size: .85rem;
    box-shadow: 0 14px 30px -14px rgba(1, 21, 37, .5);
}
.kc-checkout #place_order:hover,
.kc-checkout .checkout_coupon .button:hover,
.kc-checkout form.login .button:hover {
    background: var(--kc-color-primary);
    border-color: var(--kc-color-primary);
    transform: translateY(-2px);
}

/* terms */
.kc-checkout .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1.25rem; font-size: .82rem; }
.kc-checkout .woocommerce-privacy-policy-text { font-size: .8rem; color: var(--kc-color-muted); line-height: 1.55; }
.kc-checkout .woocommerce-privacy-policy-text a { color: var(--kc-color-primary); text-decoration: none; }

/* reassurance + payment marks under the button */
.kc-checkout__reassure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin: 1rem 0 .9rem;
    font-family: var(--kc-font-body);
    font-size: .76rem;
    color: var(--kc-color-muted);
    text-align: center;
}
.kc-checkout__reassure svg { width: 15px; height: 15px; color: var(--kc-color-primary); flex-shrink: 0; }
.kc-checkout__cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .4rem;
}
.kc-checkout__card {
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 4px;
    padding: .34rem .55rem;
    line-height: 1;
}

/* notices (e.g. "no payment methods available") */
.kc-checkout .woocommerce-error,
.kc-checkout ul.woocommerce-error {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: .9rem 1.1rem;
    font-size: .85rem;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-left: 3px solid #c0392b;
    border-radius: 6px;
    color: var(--kc-color-ink);
}

/* responsive */
@media (max-width: 900px) {
    .kc-checkout__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .kc-checkout__aside { order: -1; }
    .kc-checkout__summary { position: static; }
}
@media (max-width: 520px) {
    .kc-checkout__steps { margin-bottom: 2.25rem; }
    .kc-checkout__pip-label { font-size: .6rem; letter-spacing: .08em; }
    .kc-checkout__pip-line { min-width: 1.25rem; }
}

/* =========================================================================
   CHECKOUT — seamless conversion layer
   ========================================================================= */

/* completed-details recap card on the payment step */
.kc-checkout__recap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    background: #F4F2EE;
    border: 1px solid var(--kc-color-line);
    border-radius: 10px;
    padding: 1.15rem 1.3rem;
    margin: 0 0 1.9rem;
}
.kc-checkout__recap[hidden] { display: none !important; }
.kc-checkout__recap-body { min-width: 0; }
.kc-checkout__recap-label {
    font-family: var(--kc-font-body);
    font-size: .6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--kc-color-muted);
    margin: 0 0 .5rem;
}
.kc-checkout__recap-line {
    font-family: var(--kc-font-body);
    font-size: .9rem;
    line-height: 1.55;
    color: var(--kc-color-ink);
    margin: 0;
}
.kc-checkout__recap-contact {
    font-family: var(--kc-font-body);
    font-size: .78rem;
    color: var(--kc-color-muted);
    margin: .4rem 0 0;
}
.kc-checkout__recap-edit {
    flex: 0 0 auto;
    background: none;
    border: 0;
    padding: 0 0 .15rem;
    cursor: pointer;
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    border-bottom: 1px solid currentColor;
    line-height: 1.4;
    transition: color .2s ease;
}
.kc-checkout__recap-edit:hover { color: var(--kc-color-ink); }

/* inline "looks good" tick on completed fields */
.kc-checkout .form-row.kc-valid input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='%232f9e44'/%3E%3Cpath d='M6 10.2l2.6 2.6L14 7.4' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .9rem center;
    background-size: 15px 15px;
    padding-right: 2.6rem;
}

/* email typo suggestion + postcode hint */
.kc-checkout__suggest {
    margin: .45rem 0 0;
    font-family: var(--kc-font-body);
    font-size: .78rem;
    color: var(--kc-color-muted);
}
.kc-checkout__suggest button {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    color: var(--kc-color-primary);
    font-family: inherit;
    font-size: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.kc-checkout__suggest button:hover { color: var(--kc-color-ink); }
.kc-checkout__pc-hint {
    margin: .45rem 0 0;
    font-family: var(--kc-font-body);
    font-size: .74rem;
    color: #9a6b00;
}

/* collapsible "Additional information" (order notes) */
.kc-checkout .woocommerce-additional-fields > h3 {
    cursor: pointer;
    display: flex;
    align-items: center;
    -webkit-user-select: none;
    user-select: none;
}
.kc-checkout .woocommerce-additional-fields > h3::after {
    content: "+";
    margin-left: auto;
    font-family: var(--kc-font-body);
    font-size: 1.2rem;
    line-height: 1;
    color: var(--kc-color-muted);
    transition: color .2s ease;
}
.kc-checkout .woocommerce-additional-fields:not(.kc-collapsed) > h3::after { content: "\2013"; }
.kc-checkout .woocommerce-additional-fields > h3:hover::after { color: var(--kc-color-primary); }
.kc-checkout .woocommerce-additional-fields.kc-collapsed .woocommerce-additional-fields__field-wrapper { display: none; }

/* reassurance hint under the continue button */
.kc-checkout__nexthint {
    margin: .85rem 0 0;
    text-align: center;
    font-family: var(--kc-font-body);
    font-size: .76rem;
    color: var(--kc-color-muted);
}

/* submit-processing spinner (WC blockUI ships unstyled since base CSS is dequeued) */
.kc-checkout .blockUI.blockOverlay::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 26px;
    height: 26px;
    margin: -13px 0 0 -13px;
    border: 2px solid var(--kc-color-line);
    border-top-color: var(--kc-color-primary);
    border-radius: 50%;
    animation: kc-spin .7s linear infinite;
}
@keyframes kc-spin { to { transform: rotate(360deg); } }

/* checkout error notices land above the grid — give them breathing room */
.kc-checkout .woocommerce-NoticeGroup-checkout { scroll-margin-top: 110px; margin-bottom: 1.5rem; }
.kc-checkout .woocommerce-error li { margin: .2rem 0; }

/* order summary collapses to a "title · total ⌄" bar on mobile */
.kc-checkout__summary-mini { display: none; }
@media (max-width: 900px) {
    .kc-checkout__summary-title {
        display: flex;
        align-items: center;
        gap: .6rem;
        cursor: pointer;
    }
    .kc-checkout__summary-mini {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        margin-left: auto;
        font-family: var(--kc-font-body);
        font-size: 1.02rem;
        font-weight: 600;
        color: var(--kc-color-ink);
    }
    .kc-checkout__summary-mini svg {
        width: 17px;
        height: 17px;
        color: var(--kc-color-muted);
        transition: transform .25s ease;
    }
    .kc-checkout__summary:not(.is-open) .kc-checkout__summary-title { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
    .kc-checkout__summary:not(.is-open) #order_review,
    .kc-checkout__summary:not(.is-open) .kc-checkout__coupon,
    .kc-checkout__summary:not(.is-open) .kc-checkout__assurances,
    .kc-checkout__summary:not(.is-open) .kc-checkout__concierge { display: none; }
    .kc-checkout__summary.is-open .kc-checkout__summary-mini svg { transform: rotate(180deg); }
}

/* country select — flags + search */
.kc-cselect { position: relative; }
.kc-cselect__btn {
    display: flex;
    align-items: center;
    gap: .65rem;
    width: 100%;
    font-family: var(--kc-font-body);
    font-size: .95rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 6px;
    padding: .85rem 1rem;
    line-height: 1.35;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.kc-cselect__btn:focus-visible,
.kc-cselect.is-open .kc-cselect__btn {
    outline: none;
    border-color: var(--kc-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 176, 219, 0.12);
}
.kc-cselect__flag {
    width: 21px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(1, 21, 37, 0.08);
    flex: 0 0 auto;
}
.kc-cselect__btn-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kc-cselect__btn-caret {
    width: 16px;
    height: 16px;
    color: var(--kc-color-muted);
    flex: 0 0 auto;
    transition: transform .2s ease;
}
.kc-cselect.is-open .kc-cselect__btn-caret { transform: rotate(180deg); }

.kc-cselect__panel {
    position: absolute;
    z-index: 40;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 8px;
    box-shadow: 0 24px 50px -22px rgba(1, 21, 37, 0.35);
    overflow: hidden;
}
.kc-cselect__panel[hidden] { display: none !important; }
.kc-cselect__search-wrap { padding: .6rem; border-bottom: 1px solid var(--kc-color-line); }
.kc-cselect__search {
    width: 100%;
    font-family: var(--kc-font-body);
    font-size: .88rem;
    color: var(--kc-color-ink);
    background: #F4F2EE;
    border: 1px solid transparent;
    border-radius: 5px;
    padding: .55rem .75rem;
}
.kc-cselect__search:focus {
    outline: none;
    border-color: var(--kc-color-primary);
    background: #fff;
}
.kc-cselect__search::placeholder { color: rgba(1, 21, 37, 0.35); }
.kc-cselect__list {
    max-height: 300px;
    overflow-y: auto;
    margin: 0;
    padding: .35rem;
    list-style: none;
}
.kc-cselect__group {
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--kc-color-muted);
    padding: .55rem .65rem .35rem;
}
.kc-cselect__group[hidden] { display: none; }
.kc-cselect__opt {
    display: flex;
    align-items: center;
    gap: .65rem;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    color: var(--kc-color-ink);
    padding: .55rem .65rem;
    border-radius: 5px;
    cursor: pointer;
}
.kc-cselect__opt[hidden] { display: none; }
.kc-cselect__opt.is-active { background: #F4F2EE; }
.kc-cselect__opt[aria-selected="true"] { font-weight: 600; }
.kc-cselect__opt[aria-selected="true"]::after {
    content: "";
    margin-left: auto;
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' stroke='%2300B0DB' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}
.kc-cselect__empty {
    font-family: var(--kc-font-body);
    font-size: .85rem;
    color: var(--kc-color-muted);
    padding: .85rem;
    margin: 0;
}

/* =========================================================================
   MOBILE MENU — full-screen editorial overlay (curtain-wipe reveal)
   Large Cormorant nav, numbered + staggered, a faint rotating dial motif,
   a strip of maison hero images, and a live London clock. Mobile only.
   ========================================================================= */

/* --- Trigger (hamburger) — mobile only; hidden on desktop (>900px) --- */
.kc-menu-trigger {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    background: none;
    border: 0;
    padding: .25rem .1rem;
    cursor: pointer;
    color: var(--kc-color-ink);
    justify-self: start;
}
@media (min-width: 901px) { .kc-menu-trigger { display: none; } }
.kc-menu-trigger__lines {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 22px;
}
.kc-menu-trigger__lines span {
    display: block;
    height: 1.5px;
    background: currentColor;
    border-radius: 2px;
    transition: width .3s ease;
}
.kc-menu-trigger__lines span:first-child { width: 22px; }
.kc-menu-trigger__lines span:last-child  { width: 14px; }
.kc-menu-trigger:hover .kc-menu-trigger__lines span:last-child { width: 22px; }
.kc-menu-trigger__label {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
}

/* --- Overlay shell --- */
.kc-mobilemenu {
    position: fixed;
    inset: 0;
    z-index: 1150;
    display: flex;
    flex-direction: column;
    padding: 1.4rem clamp(1.5rem, 6vw, 2.4rem) calc(1.4rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    color: var(--kc-color-ink);
    overflow: hidden;
    /* curtain closed — wiped up out of view */
    clip-path: inset(0 0 100% 0);
    visibility: hidden;
    transition: clip-path .6s cubic-bezier(.76, 0, .24, 1), visibility 0s linear .6s;
}
.kc-mobilemenu.is-open {
    clip-path: inset(0 0 0 0);
    visibility: visible;
    transition: clip-path .62s cubic-bezier(.76, 0, .24, 1);
}
html.kc-menu-open { overflow: hidden; }
body.kc-menu-open { overflow: hidden; padding-right: var(--kc-sbw, 0); }

/* faint rotating dial — the KettleClub signature, tying back to New Arrivals */
.kc-mobilemenu__dial {
    position: absolute;
    top: -18%;
    right: -28%;
    width: 86vw;
    max-width: 480px;
    aspect-ratio: 1;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity 1s ease .2s;
}
.kc-mobilemenu.is-open .kc-mobilemenu__dial { opacity: .07; }
.kc-mobilemenu__dial img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: grayscale(1) brightness(.45);
    animation: kc-menu-dial 90s linear infinite;
}
@keyframes kc-menu-dial { to { transform: rotate(360deg); } }

/* content sits above the dial */
.kc-mobilemenu__head,
.kc-mobilemenu__list,
.kc-mobilemenu__maisons,
.kc-mobilemenu__foot { position: relative; z-index: 1; }

/* --- Head: eyebrow + live time + close --- */
.kc-mobilemenu__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1.4rem;
    margin-bottom: .4rem;
    border-bottom: 1px solid rgba(1, 21, 37, 0.12);
}
.kc-mobilemenu__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-mobilemenu__time {
    margin-left: auto;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    letter-spacing: .12em;
    color: rgba(1, 21, 37, 0.55);
    font-variant-numeric: tabular-nums;
}
.kc-mobilemenu__close {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-right: -.4rem;
    background: rgba(1, 21, 37, 0.06);
    border: 1px solid rgba(1, 21, 37, 0.16);
    border-radius: 50%;
    color: var(--kc-color-ink);
    cursor: pointer;
    transition: background-color .2s ease, transform .3s ease;
}
.kc-mobilemenu__close:hover { background: rgba(1, 21, 37, 0.14); transform: rotate(90deg); }
.kc-mobilemenu__close svg { width: 18px; height: 18px; }

/* --- Primary nav: large serif, numbered, staggered --- */
.kc-mobilemenu__list {
    list-style: none;
    margin: 0;
    padding: .4rem 0 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
}
.kc-mobilemenu__item {
    border-bottom: 1px solid rgba(1, 21, 37, 0.08);
    opacity: 0;
    transform: translateY(26px);
}
.kc-mobilemenu.is-open .kc-mobilemenu__item {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
    transition-delay: calc(var(--i) * .07s + .28s);
}
.kc-mobilemenu__link {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: clamp(.6rem, 2.1vh, 1rem) 0;
    text-decoration: none !important;
    color: var(--kc-color-ink);
}
.kc-mobilemenu__idx {
    font-family: var(--kc-font-body);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .1em;
    color: var(--kc-color-primary);
    width: 1.6rem;
    flex-shrink: 0;
}
.kc-mobilemenu__label {
    flex: 1;
    font-family: var(--kc-font-display);
    font-size: clamp(1.9rem, 7.5vw, 2.7rem);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.01em;
    transition: transform .35s cubic-bezier(.22, 1, .36, 1), color .25s ease;
}
.kc-mobilemenu__arrow {
    width: 20px;
    height: 20px;
    color: rgba(1, 21, 37, 0.35);
    opacity: 0;
    transform: translateX(-8px);
    transition: opacity .3s ease, transform .35s cubic-bezier(.22, 1, .36, 1), color .25s ease;
}
.kc-mobilemenu__link:hover .kc-mobilemenu__label,
.kc-mobilemenu__link:focus-visible .kc-mobilemenu__label { transform: translateX(8px); color: var(--kc-color-primary); }
.kc-mobilemenu__link:hover .kc-mobilemenu__arrow,
.kc-mobilemenu__link:focus-visible .kc-mobilemenu__arrow { opacity: 1; transform: translateX(0); color: var(--kc-color-primary); }

/* --- Maisons strip: real hero imagery, horizontal scroll-snap --- */
.kc-mobilemenu__maisons {
    margin-top: 1.2rem;
    opacity: 0;
    transform: translateY(20px);
}
.kc-mobilemenu.is-open .kc-mobilemenu__maisons {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease .7s, transform .7s cubic-bezier(.22, 1, .36, 1) .7s;
}
.kc-mobilemenu__maisons-head {
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: rgba(1, 21, 37, 0.5);
    margin: 0 0 .8rem;
}
.kc-mobilemenu__maisons-track {
    display: flex;
    gap: .65rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: .25rem;
}
.kc-mobilemenu__maisons-track::-webkit-scrollbar { display: none; }
.kc-mobilemenu__maison {
    position: relative;
    flex: 0 0 31%;
    min-width: 116px;
    aspect-ratio: 3 / 4;
    border-radius: 5px;
    overflow: hidden;
    scroll-snap-align: start;
    text-decoration: none !important;
    isolation: isolate;
}
.kc-mobilemenu__maison-img { position: absolute; inset: 0; }
.kc-mobilemenu__maison-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(.3) brightness(.78);
    transition: transform .6s cubic-bezier(.22, 1, .36, 1), filter .4s ease;
}
.kc-mobilemenu__maison::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(1, 21, 37, 0.85) 0%, rgba(1, 21, 37, 0.05) 60%);
    z-index: 1;
}
.kc-mobilemenu__maison:hover .kc-mobilemenu__maison-img img { transform: scale(1.07); filter: grayscale(0) brightness(.9); }
.kc-mobilemenu__maison-name {
    position: absolute;
    left: .6rem;
    bottom: .55rem;
    z-index: 2;
    font-family: var(--kc-font-display);
    font-size: .92rem;
    line-height: 1.1;
    color: #fff;
}

/* --- Foot: account / search / social / locale --- */
.kc-mobilemenu__foot {
    margin-top: 1.3rem;
    padding-top: 1.1rem;
    border-top: 1px solid rgba(1, 21, 37, 0.12);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    opacity: 0;
    transform: translateY(14px);
}
.kc-mobilemenu.is-open .kc-mobilemenu__foot {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease .82s, transform .6s ease .82s;
}
.kc-mobilemenu__foot-links {
    display: flex;
    gap: 1.4rem;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    letter-spacing: .02em;
}
.kc-mobilemenu__foot-links a { color: rgba(1, 21, 37, 0.85); text-decoration: none; }
.kc-mobilemenu__foot-links a:hover { color: var(--kc-color-primary); }
.kc-mobilemenu__wa-link { display: inline-flex; align-items: center; gap: .4rem; }
.kc-mobilemenu__wa-link svg { width: 16px; height: 16px; flex-shrink: 0; color: #25D366; }
.kc-mobilemenu__foot-meta {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.kc-mobilemenu__social {
    display: inline-flex;
    color: rgba(1, 21, 37, 0.7);
    transition: color .2s ease;
}
.kc-mobilemenu__social:hover { color: var(--kc-color-ink); }
.kc-mobilemenu__social svg { width: 18px; height: 18px; }
.kc-mobilemenu__locale {
    font-family: var(--kc-font-body);
    font-size: .68rem;
    letter-spacing: .1em;
    color: rgba(1, 21, 37, 0.45);
}

@media (prefers-reduced-motion: reduce) {
    .kc-mobilemenu, .kc-mobilemenu * { transition: none !important; }
    .kc-mobilemenu__dial img { animation: none !important; }
    .kc-mobilemenu__item,
    .kc-mobilemenu__maisons,
    .kc-mobilemenu__foot { opacity: 1 !important; transform: none !important; }
}

/* --- Mobile menu drill-down panels --- */
.kc-mobilemenu__viewport {
    position: relative;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.kc-mobilemenu__panel {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    transform: translateX(100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform .46s cubic-bezier(.5, 0, .2, 1), opacity .32s ease, visibility 0s linear .46s;
}
.kc-mobilemenu__panel::-webkit-scrollbar { display: none; }
.kc-mobilemenu__panel.is-current {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform .46s cubic-bezier(.5, 0, .2, 1), opacity .32s ease;
}
.kc-mobilemenu__panel.is-prev {
    transform: translateX(-20%);
    opacity: 0;
    visibility: visible;
}

/* back button in the head */
.kc-mobilemenu__back {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin-left: -.35rem;
    margin-right: -.3rem;
    background: none;
    border: 0;
    color: var(--kc-color-ink);
    cursor: pointer;
}
.kc-mobilemenu__back[hidden] { display: none; }
.kc-mobilemenu__back svg { width: 22px; height: 22px; }
/* chevron on drillable items */
.kc-mobilemenu__arrow--chev { opacity: .5 !important; transform: none !important; color: rgba(255,255,255,.4) !important; }
.kc-mobilemenu__link.has-panel:hover .kc-mobilemenu__arrow--chev { color: var(--kc-color-primary) !important; transform: translateX(4px) !important; }

/* --- Sub-panel content --- */
.kc-mobilemenu__viewall {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0 1.1rem;
    margin-bottom: .3rem;
    border-bottom: 1px solid rgba(1, 21, 37, 0.14);
    font-family: var(--kc-font-display);
    font-size: 1.45rem;
    color: var(--kc-color-ink);
    text-decoration: none !important;
}
.kc-mobilemenu__viewall svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--kc-color-primary); }
.kc-mobilemenu__sub {
    padding: 1.15rem 0;
    border-bottom: 1px solid rgba(1, 21, 37, 0.07);
}
.kc-mobilemenu__sub:last-child { border-bottom: 0; padding-bottom: 1.5rem; }
.kc-mobilemenu__sub-head {
    margin: 0 0 .95rem;
    font-family: var(--kc-font-body);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-mobilemenu__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.kc-mobilemenu__chip {
    padding: .5rem .9rem;
    border: 1px solid rgba(1, 21, 37, 0.18);
    border-radius: 999px;
    font-family: var(--kc-font-body);
    font-size: .82rem;
    color: rgba(1, 21, 37, 0.9);
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.kc-mobilemenu__chip:hover { background: rgba(1, 21, 37, 0.08); border-color: rgba(1, 21, 37, 0.4); color: var(--kc-color-ink); }
.kc-mobilemenu__swatches {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .8rem 1rem;
}
.kc-mobilemenu__swatch {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    font-family: var(--kc-font-body);
    font-size: .92rem;
    color: rgba(1, 21, 37, 0.88);
    text-decoration: none !important;
    transition: color .2s ease;
}
.kc-mobilemenu__swatch:hover { color: var(--kc-color-ink); }
.kc-mobilemenu__swatch-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
    background-size: cover;
    background-position: center;
    box-shadow:
        inset 0 1px 1.5px rgba(255, 255, 255, 0.5),
        inset 0 -1px 2px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(1, 21, 37, 0.16);
}
.kc-mobilemenu__sizes { display: flex; flex-wrap: wrap; gap: .5rem; }
.kc-mobilemenu__size {
    min-width: 54px;
    text-align: center;
    padding: .6rem .4rem;
    border: 1px solid rgba(1, 21, 37, 0.18);
    border-radius: 5px;
    font-family: var(--kc-font-body);
    font-size: .98rem;
    color: var(--kc-color-ink);
    text-decoration: none !important;
    font-variant-numeric: tabular-nums;
    transition: background-color .2s ease, border-color .2s ease;
}
.kc-mobilemenu__size small { font-size: .6rem; opacity: .55; margin-left: 1px; }
.kc-mobilemenu__size:hover { background: rgba(1, 21, 37, 0.08); border-color: rgba(1, 21, 37, 0.4); }

/* sub-panel content gentle stagger on drill-in */
.kc-mobilemenu__panel:not([data-panel="root"]) .kc-mobilemenu__viewall,
.kc-mobilemenu__panel:not([data-panel="root"]) .kc-mobilemenu__sub { opacity: 0; transform: translateY(16px); }
.kc-mobilemenu__panel.is-current .kc-mobilemenu__viewall,
.kc-mobilemenu__panel.is-current .kc-mobilemenu__sub {
    opacity: 1;
    transform: none;
    transition: opacity .5s ease, transform .55s cubic-bezier(.22, 1, .36, 1);
}
.kc-mobilemenu__panel.is-current .kc-mobilemenu__viewall { transition-delay: .14s; }
.kc-mobilemenu__panel.is-current .kc-mobilemenu__sub:nth-of-type(1) { transition-delay: .2s; }
.kc-mobilemenu__panel.is-current .kc-mobilemenu__sub:nth-of-type(2) { transition-delay: .28s; }
.kc-mobilemenu__panel.is-current .kc-mobilemenu__sub:nth-of-type(3) { transition-delay: .36s; }

@media (prefers-reduced-motion: reduce) {
    .kc-mobilemenu__panel { transition: opacity .2s ease !important; }
    .kc-mobilemenu__panel .kc-mobilemenu__viewall,
    .kc-mobilemenu__panel .kc-mobilemenu__sub { opacity: 1 !important; transform: none !important; }
}

/* =========================================================================
   ARCHIVE FILTERS — mobile bottom sheet (floating button → slide-up panel)
   ========================================================================= */
/* desktop: sheet chrome hidden */
.kc-archive__sheet-grip,
.kc-archive__sheet-close,
.kc-archive__sheet-foot,
.kc-archive__filters-fab,
.kc-archive__fab-bar,
.kc-archive__sortsheet,
.kc-archive__sheet-backdrop { display: none; }

@media (max-width: 880px) {
    /* floating Filters + Sort buttons, centred together at the bottom */
    .kc-archive__fab-bar {
        display: flex;
        gap: .6rem;
        position: fixed;
        left: 50%;
        bottom: calc(1.1rem + env(safe-area-inset-bottom, 0px));
        transform: translateX(-50%);
        z-index: 1060;
        transition: transform .25s ease, opacity .25s ease;
    }
    .kc-archive__filters-fab {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        padding: .9rem 1.5rem;
        background: var(--kc-color-ink);
        color: #fff;
        border: 0;
        border-radius: 999px;
        cursor: pointer;
        font-family: var(--kc-font-body);
        font-size: .82rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        box-shadow: 0 14px 34px -12px rgba(1, 21, 37, 0.55);
        transition: transform .15s ease;
    }
    .kc-archive__filters-fab:active { transform: scale(.96); }
    .kc-archive__sort-fab { background: #fff; color: var(--kc-color-ink); box-shadow: 0 14px 34px -14px rgba(1, 21, 37, 0.45), inset 0 0 0 1px var(--kc-color-line); }
    .kc-archive__filters-fab svg { width: 17px; height: 17px; }
    .kc-archive__filters-fab-count {
        display: inline-grid;
        place-items: center;
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        border-radius: 999px;
        background: var(--kc-color-primary);
        color: #fff;
        font-size: .62rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
    }
    /* the FAB bar tucks away while either sheet is open */
    .is-filters-open .kc-archive__fab-bar,
    .is-sort-open .kc-archive__fab-bar { opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(20px); }

    /* backdrop */
    .kc-archive__sheet-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1070;
        background: rgba(1, 21, 37, 0.5);
        opacity: 0;
        visibility: hidden;
        transition: opacity .35s ease, visibility 0s linear .35s;
    }
    .is-filters-open .kc-archive__sheet-backdrop:not(.kc-archive__sheet-backdrop--sort),
    .is-sort-open .kc-archive__sheet-backdrop--sort { opacity: 1; visibility: visible; transition: opacity .35s ease; }

    /* the sidebar becomes a bottom sheet */
    .kc-archive__sidebar {
        position: fixed;
        top: auto;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1080;
        max-height: 86vh;
        margin: 0 !important;
        padding: 0 1.25rem !important;
        border: 0 !important;
        background: #fff;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -22px 50px -24px rgba(1, 21, 37, 0.42);
        display: flex;
        flex-direction: column;
        overflow: hidden;
        transform: translateY(100%);
        visibility: hidden;
        transition: transform .42s cubic-bezier(.32, .72, 0, 1), visibility 0s linear .42s;
    }
    .is-filters-open .kc-archive__sidebar {
        transform: translateY(0);
        visibility: visible;
        transition: transform .42s cubic-bezier(.32, .72, 0, 1);
    }
    .kc-archive__sheet-grip {
        display: block;
        flex-shrink: 0;
        width: 40px;
        height: 4px;
        margin: .75rem auto .35rem;
        background: var(--kc-color-line);
        border-radius: 2px;
    }
    .kc-archive__sidebar-head {
        flex-shrink: 0;
        padding: .2rem 0 1rem;
        margin: 0;
        border-bottom: 1px solid var(--kc-color-line);
    }
    .kc-archive__sheet-close {
        display: grid;
        place-items: center;
        width: 34px;
        height: 34px;
        margin-right: -.3rem;
        background: none;
        border: 0;
        color: var(--kc-color-ink);
        cursor: pointer;
    }
    .kc-archive__sheet-close svg { width: 18px; height: 18px; }
    /* scrollable filter body between sticky head and footer */
    .kc-archive__sheet-body {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overflow-x: clip;
        -webkit-overflow-scrolling: touch;
        padding: .25rem 0 1rem;
        scrollbar-width: none;
    }
    .kc-archive__sheet-body::-webkit-scrollbar { display: none; }
    /* sticky apply footer */
    .kc-archive__sheet-foot {
        display: flex;
        align-items: center;
        gap: 1rem;
        flex-shrink: 0;
        padding: .9rem 0 calc(1rem + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--kc-color-line);
    }
    .kc-archive__sheet-clear {
        flex-shrink: 0;
        font-family: var(--kc-font-body);
        font-size: .8rem;
        font-weight: 500;
        color: var(--kc-color-muted);
        text-decoration: none;
        border-bottom: 1px solid var(--kc-color-line);
        padding-bottom: 1px;
    }
    .kc-archive__sheet-clear:hover { color: var(--kc-color-ink); border-color: var(--kc-color-ink); }
    .kc-archive__sheet-apply {
        flex: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .5rem;
        padding: 1rem 1.4rem;
        background: var(--kc-color-ink);
        color: #fff;
        border: 0;
        border-radius: 4px;
        cursor: pointer;
        font-family: var(--kc-font-body);
        font-size: .82rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
    }
    .kc-archive__sheet-apply-count {
        font-weight: 500;
        opacity: .75;
    }
    .kc-archive__sheet-apply-count::before { content: "· "; }
    /* tidy the filter grid inside the sheet */
    .kc-archive__filter-grid { grid-template-columns: 1fr 1fr; }

    /* Sort bottom-sheet — short list of options, mirrors the filter sheet look */
    .kc-archive__sortsheet {
        display: flex;
        flex-direction: column;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1080;
        max-height: 80vh;
        padding: 0 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px));
        background: #fff;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -22px 50px -24px rgba(1, 21, 37, 0.42);
        transform: translateY(100%);
        visibility: hidden;
        transition: transform .42s cubic-bezier(.32, .72, 0, 1), visibility 0s linear .42s;
    }
    .is-sort-open .kc-archive__sortsheet {
        transform: translateY(0);
        visibility: visible;
        transition: transform .42s cubic-bezier(.32, .72, 0, 1);
    }
    .kc-archive__sortsheet-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-shrink: 0;
        padding: .2rem 0 .9rem;
        border-bottom: 1px solid var(--kc-color-line);
    }
    .kc-archive__sortsheet-body {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: .4rem 0 .2rem;
    }
    .kc-archive__sortopt {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 1rem .25rem;
        font-family: var(--kc-font-body);
        font-size: .95rem;
        color: var(--kc-color-ink);
        text-decoration: none;
        border-bottom: 1px solid var(--kc-color-line);
    }
    .kc-archive__sortopt:last-child { border-bottom: 0; }
    .kc-archive__sortopt.is-active { font-weight: 600; color: var(--kc-color-primary); }
    .kc-archive__sortopt-tick {
        width: 18px;
        height: 18px;
        flex-shrink: 0;
        color: var(--kc-color-primary);
        opacity: 0;
        transition: opacity .15s ease;
    }
    .kc-archive__sortopt.is-active .kc-archive__sortopt-tick { opacity: 1; }

    /* Inline sort control is replaced by the floating Sort button on mobile */
    .kc-archive__sort { display: none; }
}

/* ---------------------------------------------------------
   ARCHIVE / CATEGORY — mobile UX pass
   Two-up grid, compact cards, swipeable model nav, FAB clearance
--------------------------------------------------------- */
@media (max-width: 600px) {
    /* Compact card typography tuned for the narrow two-up column. */
    .kc-product__media { margin-bottom: .7rem; }
    .kc-product__brand { font-size: .57rem; letter-spacing: .18em; margin-bottom: .3rem; }
    .kc-product__name { font-size: 1.02rem; line-height: 1.12; margin-bottom: .2rem; }
    .kc-product__ref { font-size: .72rem; margin-bottom: .5rem; }
    .kc-product__price { font-size: .94rem; }
    .kc-product__bp {
        margin-top: .55rem;
        padding: .28rem .6rem .28rem .28rem;
        font-size: .6rem;
        gap: .35rem;
    }
    .kc-product__bp-tick { width: 14px; height: 14px; }
    /* The hover spec overlay never fires on touch — drop it so it can't
       flash during momentum scrolling or waste paint. */
    .kc-product__overlay { display: none; }

    /* Results head: count + sort share a row, chips drop below. */
    .kc-archive__results-head {
        margin-bottom: 1.1rem;
        padding-bottom: .9rem;
        gap: .7rem 1rem;
    }
    .kc-archive__results-count { order: 1; }
    .kc-archive__view { order: 2; display: inline-flex; margin-left: auto; }
    .kc-archive__chips { order: 3; flex-basis: 100%; flex: none; }

    /* Single-column grid when the shopper picks the 1-per-row view. */
    .kc-archive__grid.is-view-one { grid-template-columns: 1fr; gap: 2.2rem; }

    /* Browse-by-model: a swipeable rail instead of a tall wrapping stack. */
    .kc-archive__subnav { padding: 1.25rem 0; }
    .kc-archive__subnav-pills {
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        margin: 0 -1.5rem;
        padding: .3rem 1.5rem;
    }
    .kc-archive__subnav-pills::-webkit-scrollbar { display: none; }
    .kc-archive__subnav-pill { flex: 0 0 auto; scroll-snap-align: start; }

    /* Hero eyebrow stays on one line. */
    .kc-archive__eyebrow { font-size: .58rem; letter-spacing: .14em; }

    /* Breathing room so the floating Filters button never hides the last
       row, Load More, or the footer edge. */
    .kc-archive__results { padding-bottom: 7rem; }

    /* The sheet auto-focuses its close button on open — suppress the heavy
       default ring, keep a subtle one for keyboard users only. */
    .kc-archive__sheet-close:focus { outline: none; }
    .kc-archive__sheet-close:focus-visible {
        outline: none;
        box-shadow: 0 0 0 2px rgba(0, 176, 219, 0.45);
        border-radius: 6px;
    }
}

/* ============================================================================
   CATEGORY SEO CONTENT — styled prose, guide cards, FAQ accordion
   ========================================================================== */
.kc-seo {
    border-top: 1px solid var(--kc-color-line);
    background: var(--kc-color-cream, #F4F2EE);
    padding: clamp(3.5rem, 6vw, 6rem) 0;
}
/* Category SEO band below the grid: Top (overview) + Bottom (history/FAQ)
   render as two .kc-seo sections — collapse the seam so they read as one. */
.kc-archive__seo .kc-seo + .kc-seo {
    border-top: 0;
    padding-top: 0;
}
.kc-seo__inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 clamp(1.25rem, 4vw, 3rem);
}
/* Prose — flows into balanced columns so it fills the width instead of a
   single tall ribbon hugging the left edge. */
.kc-seo__prose {
    font-family: var(--kc-font-body);
    font-size: 1rem;
    line-height: 1.78;
    color: #3a3f45;
    column-count: 2;
    column-gap: clamp(2.25rem, 3.5vw, 3.5rem);
}
.kc-seo__prose p { margin: 0 0 1.1rem; }
.kc-seo__prose p:last-child { margin-bottom: 0; }
.kc-seo__prose a {
    color: var(--kc-color-primary);
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 176, 219, 0.35);
    transition: border-color .18s ease;
}
.kc-seo__prose a:hover { border-color: var(--kc-color-primary); }
.kc-seo__h {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(1.5rem, 2.4vw, 1.95rem);
    line-height: 1.12;
    color: var(--kc-color-ink);
    margin: 2.4rem 0 .85rem;
    break-inside: avoid;
    break-after: avoid;
    -webkit-column-break-after: avoid;
}
.kc-seo__prose > .kc-seo__h:first-child { margin-top: 0; }
/* Lead title (from a pasted accordion toggle) — spans the full prose width
   above the two-column body instead of being trapped in the left column. */
.kc-seo__lead {
    column-span: all;
    -webkit-column-span: all;
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
    line-height: 1.1;
    color: var(--kc-color-ink);
    margin: 0 0 1.4rem;
}
.kc-seo__sub-title {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
    line-height: 1.08;
    color: var(--kc-color-ink);
    margin: 0 0 1.6rem;
}
/* Guide / blog cards ----------------------------------------------------- */
.kc-seo__guides,
.kc-seo__faq { margin-top: clamp(2.75rem, 5vw, 4.5rem); }
.kc-seo__cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}
.kc-seo-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--kc-color-line);
    text-decoration: none;
    color: var(--kc-color-ink);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.kc-seo-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 40px -26px rgba(1, 21, 37, 0.4);
    border-color: rgba(1, 21, 37, 0.2);
}
.kc-seo-card__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #eceef0;
}
.kc-seo-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}
.kc-seo-card:hover .kc-seo-card__media img { transform: scale(1.05); }
.kc-seo-card__media[data-empty="1"] {
    display: grid;
    place-items: center;
    background: var(--kc-color-ink);
}
.kc-seo-card__media[data-empty="1"] svg { width: 34px; height: 34px; color: rgba(255, 255, 255, 0.45); }
.kc-seo-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: 1.05rem 1.15rem 1.2rem;
}
.kc-seo-card__eyebrow {
    font-family: var(--kc-font-body);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-seo-card__title {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: 1.18rem;
    line-height: 1.2;
    color: var(--kc-color-ink);
}
.kc-seo-card__cue {
    margin-top: auto;
    padding-top: .7rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-family: var(--kc-font-body);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    transition: color .2s ease;
}
.kc-seo-card__cue svg { width: 14px; height: 14px; transition: transform .3s ease; }
.kc-seo-card:hover .kc-seo-card__cue { color: var(--kc-color-primary); }
.kc-seo-card:hover .kc-seo-card__cue svg { transform: translateX(4px); }
/* FAQ accordion — centred so the rows stay a comfortable reading width. */
.kc-seo__faq { max-width: 920px; margin-left: auto; margin-right: auto; }
.kc-seo__faq .kc-seo__sub-title { text-align: center; }
.kc-seo-faq {
    border-top: 1px solid var(--kc-color-line);
}
.kc-seo-faq__item { border-bottom: 1px solid var(--kc-color-line); }
.kc-seo-faq__q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.2rem 0;
    background: none;
    border: 0;
    cursor: pointer;
    text-align: left;
    font-family: var(--kc-font-body);
    font-size: 1.02rem;
    font-weight: 500;
    color: var(--kc-color-ink);
}
.kc-seo-faq__q:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 3px; }
.kc-seo-faq__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--kc-color-muted);
    transition: transform .3s ease, color .3s ease;
}
.kc-seo-faq__item.is-open .kc-seo-faq__icon { transform: rotate(180deg); color: var(--kc-color-primary); }
.kc-seo-faq__a {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .35s cubic-bezier(.4, 0, .2, 1);
}
.kc-seo-faq__item.is-open .kc-seo-faq__a { grid-template-rows: 1fr; }
.kc-seo-faq__a-inner { overflow: hidden; }
.kc-seo-faq__a-inner p {
    margin: 0 0 1.25rem;
    max-width: 72ch;
    font-family: var(--kc-font-body);
    font-size: .93rem;
    line-height: 1.68;
    color: var(--kc-color-muted);
}
@media (prefers-reduced-motion: reduce) {
    .kc-seo-faq__a { transition: none; }
}
@media (max-width: 1000px) {
    .kc-seo__prose { column-count: 1; max-width: 70ch; }
    .kc-seo__cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .kc-seo__cards { gap: .8rem; }
    .kc-seo-card__title { font-size: 1.02rem; }
    .kc-seo-card__body { padding: .85rem .9rem 1rem; }
    .kc-seo-faq__q { font-size: .94rem; }
}

/* =========================================================
   MY ACCOUNT — editorial
   ========================================================= */

.woocommerce-account .site-main {
    max-width: var(--kc-container);
    padding: 3.25rem 1rem 5rem;
}

/* ---- Page header (the "My account" title) ---- */
.woocommerce-account .entry-header {
    text-align: center;
    max-width: 40rem;
    margin: 0 auto 3rem;
}
.woocommerce-account .entry-header::before {
    content: "Members";
    display: block;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .3em;
    color: var(--kc-color-primary);
    margin-bottom: .95rem;
}
.woocommerce-account .entry-title {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(2.4rem, 5vw, 3.4rem);
    line-height: 1.04;
    letter-spacing: .005em;
    color: var(--kc-color-ink);
    margin: 0;
}
.woocommerce-account .entry-header::after {
    content: "";
    display: block;
    width: 54px;
    height: 1px;
    background: var(--kc-color-line);
    margin: 1.5rem auto 0;
}
/* Login screen leads with its own hero, so suppress the page title there. */
.woocommerce-account:not(.logged-in) .entry-header { display: none; }

/* WooCommerce notices in the account area */
.woocommerce-account .woocommerce-notices-wrapper:empty { display: none; }

/* ---- Two-column shell ---- */
.kc-account-grid {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
}

/* ---- Sidebar navigation ---- */
.kc-account-nav {
    position: sticky;
    top: 2rem;
    border: 1px solid var(--kc-color-line);
    border-radius: 3px;
    background: var(--kc-color-bg);
    padding: .5rem;
}
.kc-account-nav ul { list-style: none; margin: 0; padding: 0; }
.kc-account-nav li { margin: 0; }
.kc-account-nav a {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem .9rem;
    border-radius: 2px;
    color: var(--kc-color-ink);
    font-family: var(--kc-font-body);
    font-size: .92rem;
    line-height: 1;
    text-decoration: none;
    position: relative;
    transition: background-color .18s ease, color .18s ease;
}
.kc-account-nav a:hover { background: rgba(1, 21, 37, .04); }
.kc-account-nav__icon { display: inline-flex; color: var(--kc-color-muted); transition: color .18s ease; }
.kc-account-nav__icon svg { width: 18px; height: 18px; display: block; }
.kc-account-nav__label { flex: 1 1 auto; }
.kc-account-nav__chev { display: inline-flex; color: var(--kc-color-muted); opacity: 0; transform: translateX(-4px); transition: opacity .18s ease, transform .18s ease; }
.kc-account-nav__chev svg { width: 15px; height: 15px; display: block; }
.kc-account-nav a:hover .kc-account-nav__chev { opacity: 1; transform: translateX(0); }
.kc-account-nav a:hover .kc-account-nav__icon { color: var(--kc-color-ink); }

/* active item */
.kc-account-nav .is-active > a,
.kc-account-nav li.woocommerce-MyAccount-navigation-link--active > a {
    background: var(--kc-color-ink);
    color: #fff;
    font-weight: 500;
}
.kc-account-nav .is-active > a .kc-account-nav__icon,
.kc-account-nav li.woocommerce-MyAccount-navigation-link--active > a .kc-account-nav__icon { color: #fff; }
.kc-account-nav .is-active > a .kc-account-nav__chev,
.kc-account-nav li.woocommerce-MyAccount-navigation-link--active > a .kc-account-nav__chev { opacity: 1; transform: translateX(0); color: rgba(255,255,255,.7); }

/* logout sits apart */
.kc-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: .35rem; padding-top: .45rem; border-top: 1px solid var(--kc-color-line); }
.kc-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout > a { color: var(--kc-color-muted); }
.kc-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout > a:hover { color: var(--kc-color-ink); }

/* ---- Content column ---- */
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content > h2,
.woocommerce-MyAccount-content > h3 {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: 1.7rem;
    color: var(--kc-color-ink);
    margin: 0 0 1rem;
}
.woocommerce-MyAccount-content p { color: #2b3a48; line-height: 1.65; }
.woocommerce-MyAccount-content a:not(.button):not(.kc-account-card):not(.kc-auth-btn):not(.kc-otab):not(.kc-ocard__btn):not(.kc-ocard__item-name) { color: var(--kc-color-primary); text-decoration: none; }
.woocommerce-MyAccount-content a:not(.button):not(.kc-account-card):not(.kc-auth-btn):not(.kc-otab):not(.kc-ocard__btn):not(.kc-ocard__item-name):hover { text-decoration: underline; }

/* ---- Dashboard ---- */
.kc-account-dash__eyebrow {
    font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .28em;
    color: var(--kc-color-primary); margin: 0 0 .65rem;
}
.kc-account-dash__hello {
    font-family: var(--kc-font-display); font-weight: 500;
    font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.05; color: var(--kc-color-ink); margin: 0 0 .85rem;
}
.kc-account-dash__intro { max-width: 54ch; color: var(--kc-color-muted); line-height: 1.65; margin: 0; }
.kc-account-dash__signout { margin-left: .35rem; color: var(--kc-color-primary) !important; white-space: nowrap; }

.kc-account-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.25rem;
}
.kc-account-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.5rem 1.4rem;
    border: 1px solid var(--kc-color-line);
    border-radius: 3px;
    background: var(--kc-color-bg);
    text-decoration: none !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.kc-account-card:hover {
    border-color: rgba(1, 21, 37, .28);
    box-shadow: 0 18px 40px -28px rgba(1, 21, 37, .45);
    transform: translateY(-2px);
}
.kc-account-card__icon {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px;
    border: 1px solid var(--kc-color-line);
    border-radius: 50%;
    color: var(--kc-color-ink);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.kc-account-card__icon svg { width: 20px; height: 20px; }
.kc-account-card:hover .kc-account-card__icon { background: var(--kc-color-ink); border-color: var(--kc-color-ink); color: #fff; }
.kc-account-card__body { display: flex; flex-direction: column; gap: .25rem; }
.kc-account-card__title { font-family: var(--kc-font-display); font-size: 1.4rem; font-weight: 500; color: var(--kc-color-ink); line-height: 1.1; }
.kc-account-card__desc { font-size: .86rem; color: var(--kc-color-muted); line-height: 1.5; }
.kc-account-card__arrow { margin-left: auto; align-self: center; color: var(--kc-color-muted); transition: transform .2s ease, color .2s ease; }
.kc-account-card__arrow svg { width: 18px; height: 18px; display: block; }
.kc-account-card:hover .kc-account-card__arrow { color: var(--kc-color-ink); transform: translateX(3px); }

/* ---- Shared form controls (edit account / addresses / login) ---- */
.woocommerce-MyAccount-content .form-row,
.kc-auth-form .form-row { display: flex; flex-direction: column; margin: 0 0 1.15rem; }
.woocommerce-MyAccount-content label,
.kc-auth-form label,
.woocommerce-address-fields label,
.woocommerce-EditAccountForm label {
    font-family: var(--kc-font-body);
    font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em;
    color: var(--kc-color-ink); margin: 0 0 .5rem;
}
.woocommerce-MyAccount-content .required { color: var(--kc-color-primary); border: 0; }
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="tel"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="number"],
.woocommerce-account select,
.woocommerce-account textarea,
.woocommerce-account .select2-selection {
    width: 100%;
    padding: .8rem 1rem;
    font-family: var(--kc-font-body);
    font-size: .95rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 2px;
    transition: border-color .18s ease, box-shadow .18s ease;
    box-sizing: border-box;
}
.woocommerce-account input:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus {
    outline: none;
    border-color: var(--kc-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 176, 219, .14);
}

/* select2 country/state dropdowns — match the native inputs */
.woocommerce-account .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-account .select2-container { width: 100% !important; }
.woocommerce-account .select2-container .select2-selection--single {
    display: flex; align-items: center;
    width: 100%; height: auto;
    padding: .8rem 1rem;
    font-family: var(--kc-font-body); font-size: .95rem; color: var(--kc-color-ink);
    background: #fff; border: 1px solid var(--kc-color-line); border-radius: 2px;
    box-shadow: none;
}
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.35; color: var(--kc-color-ink); }
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 10px; height: auto; }
.woocommerce-account .select2-container--focus .select2-selection--single,
.woocommerce-account .select2-container--open .select2-selection--single {
    border-color: var(--kc-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 176, 219, .12);
}
.woocommerce-account .select2-dropdown { border-color: var(--kc-color-line); border-radius: 2px; box-shadow: 0 18px 40px -22px rgba(1, 21, 37, .35); }
.woocommerce-account .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--kc-color-primary); }
.woocommerce-account .select2-search--dropdown .select2-search__field { border-radius: 2px; border-color: var(--kc-color-line); padding: .5rem .6rem; }
.woocommerce-account fieldset {
    margin: 2rem 0 0;
    padding: 1.75rem 0 0;
    border: 0;
    border-top: 1px solid var(--kc-color-line);
}
.woocommerce-account fieldset legend {
    font-family: var(--kc-font-display);
    font-size: 1.4rem; font-weight: 500; color: var(--kc-color-ink);
    padding: 0; margin-bottom: .35rem;
}
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .edit-account { max-width: 560px; }
.woocommerce-account span.password-input { display: block; position: relative; }
.woocommerce-account em, .woocommerce-account .woocommerce-password-hint { font-size: .8rem; color: var(--kc-color-muted); }

/* two-up name fields */
@media (min-width: 600px) {
    .woocommerce-account .woocommerce-EditAccountForm > p.form-row-first,
    .woocommerce-account .woocommerce-address-fields p.form-row-first { width: calc(50% - .6rem); float: left; }
    .woocommerce-account .woocommerce-EditAccountForm > p.form-row-last,
    .woocommerce-account .woocommerce-address-fields p.form-row-last { width: calc(50% - .6rem); float: right; }
    /* rows after the first/last pair must drop below the floats (address fields
       are nested in __field-wrapper, so target by descendant + class) */
    .woocommerce-account .woocommerce-EditAccountForm > p:not(.form-row-first):not(.form-row-last),
    .woocommerce-account .woocommerce-EditAccountForm > fieldset,
    .woocommerce-account .woocommerce-address-fields .form-row:not(.form-row-first):not(.form-row-last) { clear: both; }
    .woocommerce-account .woocommerce-EditAccountForm::after,
    .woocommerce-account .woocommerce-address-fields__field-wrapper::after { content: ""; display: table; clear: both; }
}

/* WooCommerce's JS password show/hide toggle has no icon once WC CSS is stripped */
.woocommerce-account .show-password-input { display: none; }
/* account field description help text (e.g. the display-name note) */
.woocommerce-account .woocommerce-form-row > span > em,
.woocommerce-account .woocommerce-EditAccountForm span em { display: block; margin-top: .4rem; font-size: .8rem; font-style: normal; color: var(--kc-color-muted); line-height: 1.5; }

/* ---- Buttons ---- */
.woocommerce-account .button,
.woocommerce-account button.button,
.woocommerce-account .woocommerce-Button,
.kc-auth-btn,
.woocommerce-account input[type="submit"] {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    padding: .95rem 1.9rem;
    font-family: var(--kc-font-body);
    font-size: .74rem; font-weight: 500; text-transform: uppercase; letter-spacing: .2em;
    line-height: 1;
    color: #fff !important;
    background: var(--kc-color-ink);
    border: 1px solid var(--kc-color-ink);
    border-radius: 2px;
    cursor: pointer;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce-account .button:hover,
.woocommerce-account button.button:hover,
.woocommerce-account .woocommerce-Button:hover,
.kc-auth-btn:hover,
.woocommerce-account input[type="submit"]:hover {
    background: transparent;
    color: var(--kc-color-ink) !important;
    border-color: var(--kc-color-ink);
}
.kc-auth-btn--ghost {
    background: transparent;
    color: var(--kc-color-ink) !important;
    border-color: var(--kc-color-ink);
}
.kc-auth-btn--ghost:hover { background: var(--kc-color-ink); color: #fff !important; }

/* ---- Orders / downloads tables ---- */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table {
    width: 100%;
    border-collapse: collapse;
    border: 0;
    margin: 0;
}
.woocommerce-account .shop_table thead th {
    font-family: var(--kc-font-body);
    font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em;
    color: var(--kc-color-muted);
    text-align: left;
    padding: 0 1rem 1rem;
    border-bottom: 1px solid var(--kc-color-ink);
}
.woocommerce-account .shop_table tbody td {
    padding: 1.15rem 1rem;
    font-size: .92rem;
    color: var(--kc-color-ink);
    border-bottom: 1px solid var(--kc-color-line);
    vertical-align: middle;
}
.woocommerce-account .shop_table tbody tr:hover { background: rgba(1, 21, 37, .015); }
/* status badge (used on order cards) */
.kc-order-status {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .34rem .72rem;
    font-size: .66rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em;
    line-height: 1; white-space: nowrap; border-radius: 999px;
    background: var(--kc-color-surface); color: var(--kc-color-ink);
}
.kc-order-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.kc-order-status--completed  { color: #1d6b3f; background: #e9f4ee; }
.kc-order-status--processing { color: #0a6f93; background: #e4f3f9; }
.kc-order-status--on-hold    { color: #8a5a12; background: #fbf1df; }
.kc-order-status--pending    { color: #5a6b7a; background: #eef1f4; }
.kc-order-status--cancelled  { color: #8a3b34; background: #f7ebe9; }
.kc-order-status--failed     { color: #b3261e; background: #fbe9e7; }
.kc-order-status--refunded   { color: #4a5b6b; background: #eceff2; }

/* ---- Orders: filter tabs ---- */
.kc-otabs {
    display: inline-flex; gap: .25rem;
    padding: .3rem; margin: 0 0 1.75rem;
    border: 1px solid var(--kc-color-line); border-radius: 999px; background: #fff;
}
.kc-otab {
    padding: .55rem 1.3rem;
    font-family: var(--kc-font-body); font-size: .78rem; font-weight: 500; letter-spacing: .02em;
    color: var(--kc-color-muted); text-decoration: none; border-radius: 999px;
    transition: background-color .18s ease, color .18s ease;
}
.kc-otab:hover { color: var(--kc-color-ink); }
.kc-otab.is-active { background: var(--kc-color-ink); color: #fff; }

/* ---- Orders: cards ---- */
.kc-orders { display: flex; flex-direction: column; gap: 1.5rem; }
.kc-ocard { border: 1px solid var(--kc-color-line); border-radius: 4px; background: #fff; overflow: hidden; }
.kc-ocard__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.6rem; }
.kc-ocard__num { font-family: var(--kc-font-display); font-size: 1.5rem; font-weight: 500; color: var(--kc-color-ink); margin: 0 0 .25rem; line-height: 1.1; }
.kc-ocard__meta { font-size: .82rem; color: var(--kc-color-muted); margin: 0; }
.kc-ocard__dot { margin: 0 .45rem; }
.kc-ocard__actions { display: flex; flex-wrap: wrap; gap: .5rem; flex-shrink: 0; }
.kc-ocard__btn {
    display: inline-flex; align-items: center;
    padding: .6rem 1.15rem;
    font-family: var(--kc-font-body); font-size: .66rem; font-weight: 500; text-transform: uppercase; letter-spacing: .16em;
    border-radius: 2px; border: 1px solid var(--kc-color-line);
    color: var(--kc-color-ink) !important; background: #fff;
    text-decoration: none !important; white-space: nowrap;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.kc-ocard__btn:hover { border-color: var(--kc-color-ink); }
.kc-ocard__btn--primary { background: var(--kc-color-ink); border-color: var(--kc-color-ink); color: #fff !important; }
.kc-ocard__btn--primary:hover { background: transparent; color: var(--kc-color-ink) !important; }

.kc-ocard__summary {
    margin: 0; padding: 1.25rem 1.6rem; border-top: 1px solid var(--kc-color-line);
    display: grid; grid-template-columns: max-content 1fr; gap: .65rem 2rem;
}
.kc-ocard__srow { display: contents; }
.kc-ocard__srow dt { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--kc-color-muted); align-self: start; padding-top: .1rem; }
.kc-ocard__srow dd { margin: 0; font-size: .9rem; color: var(--kc-color-ink); line-height: 1.55; }
.kc-ocard__total { font-weight: 600; }

.kc-ocard__items {
    padding: 1.4rem 1.6rem; border-top: 1px solid var(--kc-color-line); background: #fafbfc;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem 2rem;
}
.kc-ocard__item { display: flex; gap: 1rem; }
.kc-ocard__thumb { flex: 0 0 auto; width: 76px; height: 76px; border: 1px solid var(--kc-color-line); border-radius: 3px; overflow: hidden; background: #fff; }
.kc-ocard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-ocard__item-body { min-width: 0; }
.kc-ocard__item-name { display: block; font-family: var(--kc-font-display); font-size: 1.12rem; font-weight: 500; color: var(--kc-color-ink) !important; line-height: 1.25; text-decoration: none !important; }
a.kc-ocard__item-name:hover { color: var(--kc-color-primary) !important; }
.kc-ocard__item-line { margin: .35rem 0 0; font-size: .84rem; color: var(--kc-color-ink); }
.kc-ocard__item-attrs { margin-top: .28rem; font-size: .8rem; color: var(--kc-color-muted); }
.kc-ocard__item-attrs p { margin: 0; color: var(--kc-color-muted); }
.kc-ocard__sep { color: var(--kc-color-line); }

/* ---- View order ---- */
.woocommerce-account mark { background: transparent; color: inherit; }

.kc-vieworder { margin-bottom: 1.75rem; }
.kc-vieworder-body { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 2.5rem; align-items: start; }
.kc-vieworder-body .woocommerce-order-downloads { grid-column: 1 / -1; }
.kc-vieworder__back { display: inline-flex; align-items: center; gap: .45rem; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--kc-color-muted) !important; text-decoration: none !important; margin-bottom: 1.4rem; }
.kc-vieworder__back:hover { color: var(--kc-color-ink) !important; }
.kc-vieworder__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.kc-vieworder__num { font-family: var(--kc-font-display); font-size: 2rem; font-weight: 500; color: var(--kc-color-ink); line-height: 1.05; margin: 0 0 .3rem; }
.kc-vieworder__meta { font-size: .88rem; color: var(--kc-color-muted); margin: 0; }

.kc-order-updates { margin-bottom: 1.75rem; }
.kc-order-updates__title { font-family: var(--kc-font-display); font-size: 1.3rem; font-weight: 500; margin: 0 0 .75rem; }

/* receipt card */
.woocommerce-account .woocommerce-order-details.kc-odetails { border: 1px solid var(--kc-color-line); border-radius: 4px; padding: 1.85rem 2rem; margin: 0; }
.woocommerce-account .woocommerce-order-details__title { font-family: var(--kc-font-display); font-size: 1.45rem; font-weight: 500; color: var(--kc-color-ink); margin: 0 0 1.25rem; }
.woocommerce-account .woocommerce-table--order-details { width: 100%; border-collapse: collapse; margin: 0; }
.woocommerce-account .woocommerce-table--order-details thead th { font-size: .67rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--kc-color-muted); text-align: left; padding: 0 0 .85rem; border-bottom: 1px solid var(--kc-color-ink); }
.woocommerce-account .woocommerce-table--order-details thead th.product-total { text-align: right; }
.woocommerce-account .woocommerce-table--order-details tbody td { padding: 1.1rem 0; border-bottom: 1px solid var(--kc-color-line); vertical-align: middle; }
.woocommerce-account .woocommerce-table--order-details td.product-total { text-align: right; font-size: .95rem; color: var(--kc-color-ink); white-space: nowrap; }

.kc-oitem { display: flex; gap: 1rem; align-items: center; }
.kc-oitem__thumb { flex: 0 0 auto; width: 60px; height: 60px; border: 1px solid var(--kc-color-line); border-radius: 3px; overflow: hidden; background: #fff; }
.kc-oitem__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-oitem__body { min-width: 0; }
.kc-oitem__name { display: block; font-family: var(--kc-font-display); font-size: 1.1rem; line-height: 1.25; color: var(--kc-color-ink); }
.kc-oitem__name a { color: var(--kc-color-ink) !important; text-decoration: none !important; }
.kc-oitem__name a:hover { color: var(--kc-color-primary) !important; }
.kc-oitem__qty { display: block; margin-top: .2rem; font-size: .82rem; color: var(--kc-color-muted); }
.kc-oitem__meta { font-size: .8rem; color: var(--kc-color-muted); }
.kc-oitem__meta p { margin: .15rem 0 0; }

/* totals */
.woocommerce-account .woocommerce-table--order-details tfoot th,
.woocommerce-account .woocommerce-table--order-details tfoot td { padding: .5rem 0; font-size: .92rem; border: 0; }
.woocommerce-account .woocommerce-table--order-details tfoot th { text-align: right; font-weight: 500; color: var(--kc-color-muted); padding-right: 1.5rem; }
.woocommerce-account .woocommerce-table--order-details tfoot td { text-align: right; color: var(--kc-color-ink); white-space: nowrap; }
.woocommerce-account .woocommerce-table--order-details tfoot .kc-ototal-row:first-child th,
.woocommerce-account .woocommerce-table--order-details tfoot .kc-ototal-row:first-child td { padding-top: 1.1rem; }
.woocommerce-account .kc-ototal-row--order_total th,
.woocommerce-account .kc-ototal-row--order_total td { font-weight: 700; font-size: 1.05rem; color: var(--kc-color-ink); padding-top: .8rem; }
.woocommerce-account .kc-ototal-row--note td { text-align: right; font-size: .85rem; color: var(--kc-color-muted); white-space: normal; }

.kc-oactions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.6rem; }

/* customer detail cards — sits in the right column of the order body */
.kc-ocustomer__title { font-family: var(--kc-font-display); font-size: 1.45rem; font-weight: 500; color: var(--kc-color-ink); margin: 0 0 1.25rem; }
.kc-ocustomer__grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.kc-address-card--display { min-height: 0; }
.kc-address-card__line { display: block; margin-top: .5rem; color: var(--kc-color-muted); font-size: .88rem; }

@media (max-width: 1040px) {
    .kc-vieworder-body { grid-template-columns: 1fr; gap: 2rem; max-width: 840px; }
    .kc-vieworder-body .kc-ocustomer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .kc-vieworder__head { flex-direction: column; }
    .kc-vieworder-body .kc-ocustomer__grid { grid-template-columns: 1fr; }
    .woocommerce-account .woocommerce-order-details.kc-odetails { padding: 1.4rem 1.25rem; }
    .kc-ocustomer__grid { grid-template-columns: 1fr; }
    /* keep the order-details table as a real table (not the stacked card layout) */
    .woocommerce-account .woocommerce-table--order-details thead { display: table-header-group; }
    .woocommerce-account .woocommerce-table--order-details tbody tr { display: table-row; }
    .woocommerce-account .woocommerce-table--order-details tbody td { display: table-cell; }
    .woocommerce-account .woocommerce-table--order-details tbody td::before { display: none; }
}

@media (max-width: 720px) {
    .kc-ocard__head { flex-direction: column; }
    .kc-ocard__items { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .kc-ocard__summary { grid-template-columns: 1fr; gap: .15rem; }
    .kc-ocard__srow dt { margin-top: .55rem; }
    .kc-otabs { display: flex; width: 100%; }
    .kc-otab { flex: 1; text-align: center; padding: .55rem .5rem; }
}
.woocommerce-account .shop_table .button { padding: .6rem 1.15rem; font-size: .66rem; }
.woocommerce-account .shop_table td.actions { text-align: right; }

/* ---- Addresses ---- */
.woocommerce-account address { font-style: normal; line-height: 1.7; color: #2b3a48; font-size: .92rem; }

.kc-addresses { margin-top: .25rem; }
.kc-addresses__intro { color: var(--kc-color-muted); font-size: .92rem; margin: 0 0 1.75rem; }
.kc-addresses__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    max-width: 880px;
}
.kc-addresses--single .kc-addresses__grid { grid-template-columns: 1fr; max-width: 430px; }

.kc-address-card {
    display: flex; flex-direction: column;
    border: 1px solid var(--kc-color-line);
    border-radius: 4px;
    padding: 1.75rem;
    background: #fff;
    min-height: 220px;
}
.kc-address-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.kc-address-card__title { margin: 0; font-family: var(--kc-font-display); font-size: 1.45rem; font-weight: 500; color: var(--kc-color-ink); line-height: 1.1; }
.kc-address-card__icon {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border: 1px solid var(--kc-color-line); border-radius: 50%;
    color: var(--kc-color-muted);
}
.kc-address-card__icon svg { width: 19px; height: 19px; }
.kc-address-card__body { margin: 0; }
.kc-address-card__empty { color: var(--kc-color-muted); font-size: .92rem; margin: 0; }
.kc-address-card__btn {
    margin-top: auto; align-self: flex-start;
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .7rem 1.3rem;
    font-family: var(--kc-font-body); font-size: .67rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em;
    color: var(--kc-color-ink) !important; background: #fff;
    border: 1px solid var(--kc-color-line); border-radius: 2px;
    text-decoration: none !important;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.kc-address-card__btn { margin-top: 1.6rem; }
.is-empty .kc-address-card__btn { margin-top: auto; }
.kc-address-card__btn:hover { border-color: var(--kc-color-ink); }
.kc-address-card__btn--primary { background: var(--kc-color-ink); border-color: var(--kc-color-ink); color: #fff !important; }
.kc-address-card__btn--primary:hover { background: transparent; color: var(--kc-color-ink) !important; }
.kc-address-card__btn-plus { font-size: 1rem; line-height: 0; font-weight: 400; }

/* ---- Notices ---- */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-notice {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    background: var(--kc-color-surface);
    border-left: 2px solid var(--kc-color-ink);
    border-radius: 2px;
    font-size: .92rem;
    display: flex; align-items: center; flex-wrap: wrap; gap: .75rem;
}
.woocommerce-account .woocommerce-info { border-left-color: var(--kc-color-primary); }
.woocommerce-account .woocommerce-error { border-left-color: #c0392b; background: #fbecea; }
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-info .button { margin-left: auto; padding: .55rem 1.1rem; font-size: .64rem; }

/* ---- Pagination ---- */
.woocommerce-account .woocommerce-pagination { margin-top: 2rem; }
.woocommerce-account .woocommerce-pagination ul { display: inline-flex; list-style: none; margin: 0; padding: 0; border: 1px solid var(--kc-color-line); border-radius: 2px; overflow: hidden; }
.woocommerce-account .woocommerce-pagination li { margin: 0; border-right: 1px solid var(--kc-color-line); }
.woocommerce-account .woocommerce-pagination li:last-child { border-right: 0; }
.woocommerce-account .woocommerce-pagination a,
.woocommerce-account .woocommerce-pagination span { display: block; padding: .6rem .95rem; color: var(--kc-color-ink); text-decoration: none; font-size: .85rem; }
.woocommerce-account .woocommerce-pagination .current { background: var(--kc-color-ink); color: #fff; }

/* =========================================================
   LOGIN / REGISTER
   ========================================================= */
.kc-login { max-width: 1040px; margin: 0 auto; }
.kc-login__intro { text-align: center; margin-bottom: 2.5rem; }
.kc-login__eyebrow { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--kc-color-primary); margin: 0 0 .9rem; }
.kc-login__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.4rem, 5vw, 3.4rem); line-height: 1.04; color: var(--kc-color-ink); margin: 0; }
.kc-login__sub { color: var(--kc-color-muted); margin: 1rem auto 0; max-width: 46ch; line-height: 1.6; }

.kc-login__grid { display: grid; gap: 1.25rem; }
.kc-login--has-register .kc-login__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kc-login--solo .kc-login__grid { max-width: 460px; margin: 0 auto; }

.kc-login__panel {
    border: 1px solid var(--kc-color-line);
    border-radius: 4px;
    padding: 2.5rem 2.25rem;
    background: var(--kc-color-bg);
}
.kc-login__panel--register { background: #fafbfc; }
.kc-login__panel-title { font-family: var(--kc-font-display); font-size: 1.6rem; font-weight: 500; color: var(--kc-color-ink); margin: 0 0 .4rem; }
.kc-login__panel-sub { color: var(--kc-color-muted); font-size: .9rem; line-height: 1.55; margin: 0 0 1.75rem; }

.kc-auth-form__meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: -.2rem 0 1.5rem; }
.kc-remember { display: inline-flex !important; align-items: center; gap: .5rem; margin: 0 !important; font-size: .85rem !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; color: var(--kc-color-muted) !important; }
.kc-remember input { width: auto !important; margin: 0; }
.kc-login__lost { font-size: .82rem; color: var(--kc-color-primary) !important; white-space: nowrap; }
.kc-auth-btn { width: 100%; }
.kc-login__note { font-size: .85rem; color: var(--kc-color-muted); line-height: 1.55; }

/* =========================================================
   MY ACCOUNT — responsive
   ========================================================= */
@media (max-width: 880px) {
    .kc-account-grid { grid-template-columns: 1fr; gap: 1.75rem; }
    .kc-account-nav { position: static; padding: .35rem; }
    .kc-account-nav ul { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: .25rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .kc-account-nav ul::-webkit-scrollbar { display: none; }
    .kc-account-nav a { white-space: nowrap; padding: .7rem .9rem; }
    .kc-account-nav__chev { display: none; }
    .kc-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0; padding-top: 0; border-top: 0; border-left: 1px solid var(--kc-color-line); padding-left: .25rem; }
    .kc-account-cards { grid-template-columns: 1fr; }
    .kc-login--has-register .kc-login__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .woocommerce-account .site-main { padding: 2.25rem 1rem 3.5rem; }
    .kc-login__panel { padding: 1.75rem 1.4rem; }
    .kc-auth-form__meta { flex-direction: column; align-items: flex-start; gap: .6rem; }

    /* Stacked order rows */
    .woocommerce-account .shop_table thead { display: none; }
    .woocommerce-account .shop_table tbody td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--kc-color-line); text-align: right; }
    .woocommerce-account .shop_table tbody td::before { content: attr(data-title); font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--kc-color-muted); text-align: left; }
    .woocommerce-account .shop_table tbody tr { display: block; padding: 1rem 0; border-bottom: 1px solid var(--kc-color-line); }
    .woocommerce-account .shop_table td.actions { justify-content: flex-end; }
    .woocommerce-account .shop_table td.actions::before { display: none; }
    .kc-addresses__grid { grid-template-columns: 1fr; max-width: none; }
}

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.kc-aboutpage { color: var(--kc-color-ink); }
.kc-aboutpage__eyebrow,
.kc-aboutpage__kicker {
    font-family: var(--kc-font-body);
    font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em;
    color: var(--kc-color-primary); margin: 0 0 1.1rem;
}
.kc-aboutpage__h2 {
    font-family: var(--kc-font-display); font-weight: 500;
    font-size: clamp(1.9rem, 3.5vw, 2.8rem); line-height: 1.08; color: var(--kc-color-ink); margin: 0;
}

/* Hero (ink band) */
.kc-aboutpage__hero { background: var(--kc-color-ink); color: #fff; padding: clamp(4.5rem, 9vw, 8.5rem) 1.5rem; text-align: center; }
.kc-aboutpage__hero-inner { max-width: 50rem; margin: 0 auto; }
.kc-aboutpage__hero-title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 1.03; letter-spacing: .005em; margin: 0; color: #fff; }
.kc-aboutpage__rule { display: block; width: 56px; height: 1px; background: rgba(255, 255, 255, .3); margin: 1.8rem auto; }
.kc-aboutpage__hero-lede { font-size: clamp(1rem, 1.6vw, 1.18rem); line-height: 1.65; color: rgba(255, 255, 255, .78); margin: 0 auto; max-width: 40rem; }

/* Lead statement */
.kc-aboutpage__lead { max-width: 1080px; margin: 0 auto; padding: clamp(3.5rem, 7vw, 6.5rem) 1.5rem; text-align: center; }
.kc-aboutpage__lead-text { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.6rem, 3.2vw, 2.5rem); line-height: 1.28; color: var(--kc-color-ink); margin: 0; }

/* Story */
.kc-aboutpage__story { max-width: 1240px; margin: 0 auto; padding: 0 1.5rem clamp(4rem, 8vw, 7rem); }
.kc-aboutpage__story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 5.5rem); align-items: center; }
.kc-aboutpage__story-text p { font-size: 1.02rem; line-height: 1.78; color: #2b3a48; margin: 0 0 1.15rem; max-width: 34rem; }
.kc-aboutpage__story-text p:last-child { margin-bottom: 0; }
.kc-aboutpage__story-media { position: relative; }
.kc-aboutpage__story-media > img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; display: block; }
.kc-aboutpage__story-media--offset { position: absolute; width: 46%; left: -2.5rem; bottom: -2.5rem; aspect-ratio: 1 / 1; border: 7px solid #fff; box-shadow: 0 24px 60px -28px rgba(1, 21, 37, .5); }

/* Stats band */
.kc-aboutpage__stats { background: var(--kc-color-surface); padding: clamp(3rem, 5vw, 4.5rem) 1.5rem; }
.kc-aboutpage__stats-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.kc-aboutpage__stat { text-align: center; }
.kc-aboutpage__stat-num { display: block; font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.4rem, 4vw, 3.4rem); line-height: 1; color: var(--kc-color-ink); }
.kc-aboutpage__stat-label { display: block; margin-top: .65rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--kc-color-muted); }

/* Section heads */
.kc-aboutpage__section-head { max-width: 1180px; margin: 0 auto clamp(2.25rem, 4vw, 3.25rem); text-align: center; }

/* Values */
.kc-aboutpage__values { max-width: 1180px; margin: 0 auto; padding: clamp(4rem, 8vw, 7rem) 1.5rem; }
.kc-aboutpage__values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.kc-aboutpage__value { border: 1px solid var(--kc-color-line); border-radius: 4px; padding: 2.1rem 1.8rem; }
.kc-aboutpage__value-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--kc-color-line); border-radius: 50%; color: var(--kc-color-primary); margin-bottom: 1.3rem; }
.kc-aboutpage__value-icon svg { width: 22px; height: 22px; }
.kc-aboutpage__value-title { font-family: var(--kc-font-display); font-size: 1.42rem; font-weight: 500; line-height: 1.15; margin: 0 0 .6rem; color: var(--kc-color-ink); }
.kc-aboutpage__value-body { font-size: .92rem; line-height: 1.62; color: var(--kc-color-muted); margin: 0; }

/* Process (ink band) */
.kc-aboutpage__process { background: var(--kc-color-ink); color: #fff; padding: clamp(4rem, 8vw, 6.5rem) 1.5rem; }
.kc-aboutpage__process .kc-aboutpage__h2 { color: #fff; }
.kc-aboutpage__steps { max-width: 1180px; margin: 0 auto; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.kc-aboutpage__step { border-top: 1px solid rgba(255, 255, 255, .18); padding-top: 1.5rem; }
.kc-aboutpage__step-num { font-family: var(--kc-font-display); font-size: 1.5rem; color: var(--kc-color-primary); }
.kc-aboutpage__step-title { font-family: var(--kc-font-display); font-size: 1.3rem; font-weight: 500; margin: .55rem 0 .5rem; color: #fff; }
.kc-aboutpage__step-body { font-size: .9rem; line-height: 1.62; color: rgba(255, 255, 255, .7); margin: 0; }

/* CTA (surface band) */
.kc-aboutpage__cta { background: var(--kc-color-surface); padding: clamp(4rem, 8vw, 7rem) 1.5rem; text-align: center; }
.kc-aboutpage__cta-inner { max-width: 40rem; margin: 0 auto; }
.kc-aboutpage__cta-title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; margin: 0 0 1rem; color: var(--kc-color-ink); }
.kc-aboutpage__cta-sub { font-size: 1.02rem; line-height: 1.6; color: var(--kc-color-muted); margin: 0 0 2rem; }
.kc-aboutpage__cta-actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* About buttons */
.kc-aboutpage__btn { display: inline-flex; align-items: center; gap: .55rem; padding: 1rem 2rem; font-family: var(--kc-font-body); font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .22em; text-decoration: none !important; border-radius: 2px; border: 1px solid; transition: background-color .2s ease, color .2s ease, border-color .2s ease; line-height: 1; }
.kc-aboutpage__btn svg { width: 14px; height: 14px; transition: transform .2s ease; }
.kc-aboutpage__btn--primary { background: var(--kc-color-ink); color: #fff !important; border-color: var(--kc-color-ink); }
.kc-aboutpage__btn--primary:hover { background: transparent; color: var(--kc-color-ink) !important; }
.kc-aboutpage__btn--ghost { background: transparent; color: var(--kc-color-ink) !important; border-color: var(--kc-color-ink); }
.kc-aboutpage__btn--ghost:hover { background: var(--kc-color-ink); color: #fff !important; }
.kc-aboutpage__btn--ghost:hover svg { transform: translateX(3px); }

/* Responsive */
@media (max-width: 980px) {
    .kc-aboutpage__story-grid { grid-template-columns: 1fr; gap: 3.5rem; }
    .kc-aboutpage__story-text p { max-width: none; }
    .kc-aboutpage__story-media { max-width: 30rem; }
    .kc-aboutpage__values-grid { grid-template-columns: repeat(2, 1fr); }
    .kc-aboutpage__steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
    .kc-aboutpage__stats-grid { grid-template-columns: repeat(2, 1fr); gap: 2.25rem 1.5rem; }
    .kc-aboutpage__values-grid { grid-template-columns: 1fr; }
    .kc-aboutpage__steps { grid-template-columns: 1fr; gap: 1.5rem; }
    .kc-aboutpage__story-media--offset { display: none; }
    .kc-aboutpage__cta-actions { flex-direction: column; }
    .kc-aboutpage__btn { justify-content: center; }
}

/* =========================================================
   BLOG / JOURNAL
   ========================================================= */
.kc-blog { max-width: 1280px; margin: 0 auto; padding: clamp(3rem, 6vw, 5.5rem) 1.5rem clamp(4rem, 8vw, 7rem); }
.kc-blog__head { text-align: center; max-width: 42rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); }
.kc-blog__eyebrow { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--kc-color-primary); margin: 0 0 1rem; }
.kc-blog__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.6rem, 5vw, 3.8rem); line-height: 1.04; color: var(--kc-color-ink); margin: 0; }
.kc-blog__sub { color: var(--kc-color-muted); font-size: 1.02rem; line-height: 1.6; margin: 1rem auto 0; max-width: 36rem; }

.kc-blog__tag { display: inline-block; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--kc-color-primary); }
.kc-blog__excerpt { color: var(--kc-color-muted); line-height: 1.6; }

/* Featured (latest) */
.kc-blog__feature { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(1.5rem, 3vw, 3rem); align-items: center; text-decoration: none !important; margin-bottom: clamp(2.75rem, 5vw, 4.25rem); }
.kc-blog__feature-media { display: block; overflow: hidden; border-radius: 4px; }
.kc-blog__feature-media img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; display: block; transition: transform .5s ease; }
.kc-blog__feature:hover .kc-blog__feature-media img { transform: scale(1.03); }
.kc-blog__feature-body { display: flex; flex-direction: column; gap: .95rem; }
.kc-blog__feature-title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.1; color: var(--kc-color-ink); transition: color .2s ease; }
.kc-blog__feature:hover .kc-blog__feature-title { color: var(--kc-color-primary); }
.kc-blog__feature .kc-blog__excerpt { font-size: 1rem; max-width: 34rem; }
.kc-blog__meta { display: flex; align-items: center; gap: 1.5rem; font-size: .85rem; color: var(--kc-color-muted); margin-top: .35rem; }
.kc-blog__readmore { display: inline-flex; align-items: center; gap: .45rem; color: var(--kc-color-ink); text-transform: uppercase; letter-spacing: .14em; font-size: .7rem; font-weight: 600; }
.kc-blog__readmore svg { width: 14px; height: 14px; transition: transform .2s ease; }
.kc-blog__feature:hover .kc-blog__readmore svg { transform: translateX(3px); }

/* Grid cards */
.kc-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 2.5vw, 2.25rem); }
.kc-blog__card { display: flex; flex-direction: column; text-decoration: none !important; }
.kc-blog__card-media { display: block; overflow: hidden; border-radius: 4px; margin-bottom: 1.1rem; }
.kc-blog__card-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .5s ease; }
.kc-blog__card:hover .kc-blog__card-media img { transform: scale(1.03); }
.kc-blog__card-body { display: flex; flex-direction: column; gap: .55rem; }
.kc-blog__card-title { font-family: var(--kc-font-display); font-weight: 500; font-size: 1.4rem; line-height: 1.2; color: var(--kc-color-ink); transition: color .2s ease; }
.kc-blog__card:hover .kc-blog__card-title { color: var(--kc-color-primary); }
.kc-blog__card .kc-blog__excerpt { font-size: .9rem; }
.kc-blog__date { font-size: .8rem; color: var(--kc-color-muted); margin-top: .15rem; }

/* Pagination */
.kc-blog__pagination { margin-top: clamp(2.5rem, 4vw, 3.5rem); display: flex; justify-content: center; }
.kc-blog__pagination ul { display: inline-flex; list-style: none; margin: 0; padding: 0; gap: .4rem; }
.kc-blog__pagination a, .kc-blog__pagination span { display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 .75rem; border: 1px solid var(--kc-color-line); border-radius: 2px; color: var(--kc-color-ink); text-decoration: none; font-size: .85rem; }
.kc-blog__pagination a:hover { border-color: var(--kc-color-ink); }
.kc-blog__pagination .current { background: var(--kc-color-ink); color: #fff; border-color: var(--kc-color-ink); }
.kc-blog__empty { text-align: center; color: var(--kc-color-muted); padding: 3rem 0; }

@media (max-width: 900px) {
    .kc-blog__feature { grid-template-columns: 1fr; }
    .kc-blog__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .kc-blog__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   SINGLE ARTICLE
   ========================================================= */
.kc-article { max-width: 1120px; margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) 1.5rem clamp(4rem, 8vw, 6rem); }
.kc-article__head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; }
.kc-article__back { display: inline-flex; align-items: center; gap: .45rem; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--kc-color-muted) !important; text-decoration: none !important; margin-bottom: 1.6rem; }
.kc-article__back:hover { color: var(--kc-color-ink) !important; }
.kc-article__tag { font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--kc-color-primary); margin: 0 0 1rem; }
.kc-article__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.08; color: var(--kc-color-ink); margin: 0 0 1.1rem; }
.kc-article__meta { font-size: .85rem; color: var(--kc-color-muted); display: flex; align-items: center; justify-content: center; gap: .6rem; margin: 0; }

.kc-article__hero { margin: 0 0 clamp(2.25rem, 4vw, 3.25rem); }
.kc-article__hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; display: block; }

.kc-article__body { max-width: 720px; margin: 0 auto; font-size: 1.08rem; line-height: 1.82; color: #2b3a48; }
.kc-article__body > * + * { margin-top: 1.45rem; }
.kc-article__body h2 { font-family: var(--kc-font-display); font-weight: 500; font-size: 1.9rem; line-height: 1.2; color: var(--kc-color-ink); margin-top: 2.6rem; }
.kc-article__body h3 { font-family: var(--kc-font-display); font-weight: 500; font-size: 1.45rem; line-height: 1.25; color: var(--kc-color-ink); margin-top: 2.1rem; }
.kc-article__body a { color: var(--kc-color-primary); text-decoration: underline; text-underline-offset: 2px; }
.kc-article__body ul, .kc-article__body ol { padding-left: 1.4rem; }
.kc-article__body li { margin-top: .55rem; }
.kc-article__body li::marker { color: var(--kc-color-primary); }
.kc-article__body blockquote { border-left: 2px solid var(--kc-color-primary); padding-left: 1.6rem; margin: 2rem 0 2rem 0; font-family: var(--kc-font-display); font-size: 1.5rem; line-height: 1.4; font-style: italic; color: var(--kc-color-ink); }
.kc-article__body img { max-width: 100%; height: auto; border-radius: 4px; }
.kc-article__body strong { color: var(--kc-color-ink); }

.kc-article__foot { max-width: 720px; margin: clamp(2.5rem, 5vw, 3.5rem) auto 0; padding-top: 2rem; border-top: 1px solid var(--kc-color-line); }
.kc-article__btn { display: inline-flex; align-items: center; gap: .55rem; padding: .9rem 1.8rem; font-family: var(--kc-font-body); font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--kc-color-ink) !important; background: transparent; border: 1px solid var(--kc-color-ink); border-radius: 2px; text-decoration: none !important; transition: background-color .2s ease, color .2s ease; }
.kc-article__btn:hover { background: var(--kc-color-ink); color: #fff !important; }

/* =========================================================
   CONTACT
   ========================================================= */
.kc-contact { max-width: 1180px; margin: 0 auto; padding: clamp(3rem, 6vw, 5.5rem) 1.5rem clamp(4rem, 8vw, 7rem); }
.kc-contact__head { text-align: center; max-width: 42rem; margin: 0 auto clamp(2.5rem, 5vw, 3.5rem); }
.kc-contact__eyebrow { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--kc-color-primary); margin: 0 0 1rem; }
.kc-contact__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.04; color: var(--kc-color-ink); margin: 0; }
.kc-contact__sub { color: var(--kc-color-muted); font-size: 1.02rem; line-height: 1.6; margin: 1rem auto 0; max-width: 38rem; }

.kc-contact__grid { display: grid; grid-template-columns: 360px 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }

/* Info column */
.kc-contact__info { display: flex; flex-direction: column; gap: .6rem; }
.kc-contact__item { display: flex; gap: 1rem; align-items: center; padding: 1.1rem; border: 1px solid var(--kc-color-line); border-radius: 4px; text-decoration: none !important; transition: border-color .18s ease, background-color .18s ease; }
.kc-contact__item:not(.kc-contact__item--static):hover { border-color: rgba(1, 21, 37, .28); background: rgba(1, 21, 37, .02); }
.kc-contact__icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--kc-color-line); border-radius: 50%; color: var(--kc-color-primary); }
.kc-contact__icon svg { width: 19px; height: 19px; }
.kc-contact__item-body { display: flex; flex-direction: column; gap: .18rem; min-width: 0; }
.kc-contact__item-label { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--kc-color-muted); }
.kc-contact__item-val { font-size: .95rem; color: var(--kc-color-ink); line-height: 1.4; }
.kc-contact__hours { padding: .4rem 1.1rem 0; }
.kc-contact__hours p { margin: .45rem 0 0; color: #2b3a48; font-size: .92rem; line-height: 1.7; }

/* Form column */
.kc-contact__notice { padding: 1rem 1.25rem; border-radius: 4px; margin-bottom: 1.75rem; font-size: .92rem; display: flex; flex-direction: column; gap: .25rem; }
.kc-contact__notice--ok { background: #e9f4ee; border-left: 3px solid #1d6b3f; color: #14532b; }
.kc-contact__notice--ok strong { font-size: 1.02rem; }
.kc-contact__notice--err { background: #fbecea; border-left: 3px solid #c0392b; color: #8a3b34; }

.kc-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.kc-contact .kc-field { display: flex; flex-direction: column; margin: 0 0 1.25rem; }
.kc-contact label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: var(--kc-color-ink); margin: 0 0 .5rem; }
.kc-req { color: var(--kc-color-primary); }
.kc-optional { color: var(--kc-color-muted); font-weight: 400; text-transform: none; letter-spacing: 0; }
.kc-contact input, .kc-contact select, .kc-contact textarea { width: 100%; padding: .8rem 1rem; font-family: var(--kc-font-body); font-size: .95rem; color: var(--kc-color-ink); background: #fff; border: 1px solid var(--kc-color-line); border-radius: 2px; box-sizing: border-box; transition: border-color .18s ease, box-shadow .18s ease; }
.kc-contact textarea { resize: vertical; min-height: 9rem; }
.kc-contact input:focus, .kc-contact select:focus, .kc-contact textarea:focus { outline: none; border-color: var(--kc-color-primary); box-shadow: 0 0 0 3px rgba(0, 176, 219, .14); }
.kc-contact__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kc-contact__submit { display: inline-flex; align-items: center; justify-content: center; padding: 1rem 2.2rem; font-family: var(--kc-font-body); font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; color: #fff !important; background: var(--kc-color-ink); border: 1px solid var(--kc-color-ink); border-radius: 2px; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.kc-contact__submit:hover { background: transparent; color: var(--kc-color-ink) !important; }
.kc-contact__privacy { font-size: .8rem; color: var(--kc-color-muted); line-height: 1.5; margin: 1rem 0 0; }

@media (max-width: 860px) {
    .kc-contact__grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .kc-contact__row { grid-template-columns: 1fr; gap: 0; }
}

/* =========================================================
   SELL YOUR WATCH — page + valuation form
   ========================================================= */

/* Header nav CTA */
.kc-nav__list .menu-item-cta > a { color: var(--kc-color-primary); }
.kc-nav__list .menu-item-cta > a:hover { color: var(--kc-color-ink); }

/* ---- Page wrapper ---- */
.kc-sellpage { background: var(--kc-color-bg); }
.kc-sellpage__hero { background: var(--kc-color-ink); color: #fff; text-align: center; padding: clamp(3.5rem, 7vw, 6rem) 1.5rem; }
.kc-sellpage__hero-inner { max-width: 48rem; margin: 0 auto; }
.kc-sellpage__eyebrow { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--kc-color-primary); margin: 0 0 1rem; }
.kc-sellpage__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.4rem, 5.5vw, 4rem); line-height: 1.05; color: #fff; margin: 0; }
.kc-sellpage__rule { display: block; width: 56px; height: 1px; background: rgba(255,255,255,.3); margin: 1.6rem auto; }
.kc-sellpage__lede { font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.65; color: rgba(255,255,255,.8); margin: 0 auto; max-width: 42rem; }
.kc-sellpage__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.kc-sellpage__meta li { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; letter-spacing: .04em; color: rgba(255,255,255,.72); }
.kc-sellpage__meta li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--kc-color-primary); }

.kc-sellpage__trust { max-width: 1000px; margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) 1.5rem clamp(1.5rem, 3vw, 2.5rem); }
.kc-sellpage__trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.kc-sellpage__trust-item { display: flex; gap: 1rem; align-items: flex-start; }
.kc-sellpage__trust-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--kc-color-line); border-radius: 50%; color: var(--kc-color-primary); }
.kc-sellpage__trust-icon svg { width: 20px; height: 20px; }
.kc-sellpage__trust-title { font-family: var(--kc-font-display); font-size: 1.25rem; font-weight: 500; color: var(--kc-color-ink); margin: 0 0 .25rem; }
.kc-sellpage__trust-body { font-size: .88rem; line-height: 1.55; color: var(--kc-color-muted); margin: 0; }

.kc-sellpage__form-section { max-width: 820px; margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.5rem) 1.5rem clamp(4rem, 8vw, 6.5rem); }
.kc-sellpage__form-head { text-align: center; margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem); }
.kc-sellpage__kicker { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--kc-color-primary); margin: 0 0 .9rem; }
.kc-sellpage__form-title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.9rem, 3.5vw, 2.6rem); line-height: 1.08; color: var(--kc-color-ink); margin: 0; }

/* ---- Form: focused card container ---- */
.kc-inquiry { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--kc-color-line); border-radius: 6px; padding: clamp(1.75rem, 4.5vw, 3.5rem); box-shadow: 0 30px 60px -48px rgba(1,21,37,.45); }
.kc-inquiry fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.kc-inquiry legend { padding: 0; }
.kc-inquiry__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.kc-inquiry__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* progress — desktop pips */
.kc-inquiry__pips { display: flex; align-items: flex-start; justify-content: center; list-style: none; margin: 0 0 clamp(2.25rem, 4vw, 3rem); padding: 0; }
.kc-inquiry__pip-wrap { display: flex; align-items: flex-start; }
.kc-inquiry__pip { display: flex; flex-direction: column; align-items: center; gap: .5rem; width: 5.25rem; background: none; border: 0; padding: 0; font: inherit; cursor: default; }
.kc-inquiry__pip:not(:disabled) { cursor: pointer; }
.kc-inquiry__pip-num { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--kc-color-line); display: flex; align-items: center; justify-content: center; font-family: var(--kc-font-display); font-size: 1.05rem; color: var(--kc-color-muted); background: #fff; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.kc-inquiry__pip-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .13em; color: var(--kc-color-muted); transition: color .2s ease; }
.kc-inquiry__pip.is-active .kc-inquiry__pip-num { background: var(--kc-color-ink); border-color: var(--kc-color-ink); color: #fff; }
.kc-inquiry__pip.is-active .kc-inquiry__pip-label { color: var(--kc-color-ink); }
.kc-inquiry__pip.is-done .kc-inquiry__pip-num { background: var(--kc-color-primary); border-color: var(--kc-color-primary); color: #fff; }
.kc-inquiry__pip.is-done .kc-inquiry__pip-label { color: var(--kc-color-ink); }
.kc-inquiry__pip:focus-visible { outline: none; }
.kc-inquiry__pip:focus-visible .kc-inquiry__pip-num { box-shadow: 0 0 0 3px rgba(0,176,219,.4); }
.kc-inquiry__pip-line { width: clamp(16px, 4vw, 54px); height: 1px; background: var(--kc-color-line); margin-top: 20px; }

/* progress — mobile bar */
.kc-inquiry__progress-m { display: none; }
.kc-inquiry__progress-text { display: flex; align-items: center; gap: .4rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--kc-color-muted); margin: 0 0 .6rem; }
.kc-inquiry__progress-text [data-step-name] { color: var(--kc-color-ink); font-weight: 600; }
.kc-inquiry__progress-bar { display: block; height: 4px; border-radius: 999px; background: var(--kc-color-line); overflow: hidden; }
.kc-inquiry__progress-fill { display: block; height: 100%; background: var(--kc-color-primary); border-radius: 999px; transition: width .3s ease; }

/* steps */
.kc-inquiry--js .kc-inquiry__step { display: none; }
.kc-inquiry--js .kc-inquiry__step.is-active { display: block; }
@media (prefers-reduced-motion: no-preference) {
    .kc-inquiry--js .kc-inquiry__step.is-active { animation: kc-inq-fade .3s ease; }
}
@keyframes kc-inq-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.kc-inquiry__step-title { display: block; font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.55rem, 3vw, 2rem); color: var(--kc-color-ink); margin: 0 0 1.9rem; }
.kc-inquiry__step-title:focus { outline: none; }
.kc-inquiry__hint { color: var(--kc-color-muted); font-size: .9rem; line-height: 1.6; margin: -.35rem 0 1.9rem; }

/* fields */
.kc-inquiry__field { display: flex; flex-direction: column; margin-bottom: 1.8rem; }
.kc-inquiry__grid { display: grid; gap: 1.6rem; margin-bottom: 1.8rem; }
.kc-inquiry__grid--2 { grid-template-columns: 1fr 1fr; }
.kc-inquiry__grid--3 { grid-template-columns: repeat(3, 1fr); }
.kc-inquiry__grid .kc-inquiry__field { margin-bottom: 0; }
.kc-inquiry__field > label,
.kc-inquiry__cards > legend,
.kc-inquiry__pref > legend,
.kc-inquiry__checks-group > legend { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--kc-color-ink); margin-bottom: .7rem; }
.kc-inquiry__cards > legend,
.kc-inquiry__pref > legend,
.kc-inquiry__checks-group > legend { display: block; margin-bottom: .95rem; }
.kc-inquiry__req { color: var(--kc-color-primary); }
.kc-inquiry__opt { color: var(--kc-color-muted); font-weight: 400; text-transform: none; letter-spacing: 0; }
.kc-inquiry input, .kc-inquiry select, .kc-inquiry textarea { width: 100%; min-height: 52px; padding: .95rem 1.1rem; font-family: var(--kc-font-body); font-size: 1rem; color: var(--kc-color-ink); background: #fff; border: 1px solid var(--kc-color-line); border-radius: 3px; box-sizing: border-box; transition: border-color .18s ease, box-shadow .18s ease; }
.kc-inquiry textarea { min-height: 7rem; resize: vertical; }
.kc-inquiry input:focus, .kc-inquiry select:focus, .kc-inquiry textarea:focus,
.kc-inquiry input:focus-visible, .kc-inquiry select:focus-visible, .kc-inquiry textarea:focus-visible { outline: none; border-color: var(--kc-color-primary); box-shadow: 0 0 0 3px rgba(0,176,219,.18); }
.kc-inquiry__field.has-error input, .kc-inquiry__field.has-error select, .kc-inquiry__field.has-error textarea { border-color: #b3261e; }

/* Prominent price-expectation panel (Details step) */
.kc-inquiry__field--price {
    padding: 1.2rem 1.35rem 1.3rem;
    margin-bottom: 1.8rem;
    background: var(--kc-color-cream, #f4f2ee);
    border: 1px solid var(--kc-color-line);
    border-left: 3px solid var(--kc-color-primary);
    border-radius: 4px;
}
.kc-inquiry__field--price > label { margin-bottom: .55rem; }
.kc-inquiry__price-input { position: relative; display: block; }
.kc-inquiry__price-sym {
    position: absolute; left: 1.05rem; top: 50%; transform: translateY(-50%);
    font-family: var(--kc-font-body); font-size: 1.2rem; font-weight: 600;
    color: var(--kc-color-ink); pointer-events: none;
}
.kc-inquiry__field--price input {
    padding-left: 2.4rem;
    font-size: 1.15rem; font-weight: 600;
    background: #fff;
}
.kc-inquiry__field--price .kc-inquiry__hint { margin-top: .55rem; }

/* errors (icon + text, not colour alone) */
.kc-inquiry__error { display: none; align-items: center; gap: .4rem; color: #b3261e; font-size: .82rem; line-height: 1.4; margin: .45rem 0 0; }
.kc-inquiry__error.is-shown { display: flex; }
.kc-inquiry__error::before { content: "!"; flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; background: #b3261e; color: #fff; font-size: .72rem; font-weight: 700; line-height: 16px; text-align: center; }

/* selection cards */
.kc-inquiry__cards { margin-bottom: 1.9rem; }
.kc-inquiry__cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .9rem; }
.kc-inquiry__cards-grid--compact { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.kc-inquiry__card { position: relative; display: flex; flex-direction: column; gap: .45rem; padding: 1.35rem 2.6rem 1.35rem 1.3rem; border: 1px solid var(--kc-color-line); border-radius: 4px; background: #fff; cursor: pointer; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.kc-inquiry__card-input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kc-inquiry__card-title { font-family: var(--kc-font-body); font-weight: 600; font-size: .95rem; color: var(--kc-color-ink); line-height: 1.2; }
.kc-inquiry__card-desc { font-size: .8rem; line-height: 1.4; color: var(--kc-color-muted); }
.kc-inquiry__card-tick { position: absolute; top: .8rem; right: .8rem; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--kc-color-line); transition: background-color .18s ease, border-color .18s ease; }
.kc-inquiry__card-tick::after { content: ""; position: absolute; left: 6px; top: 3px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); opacity: 0; transition: opacity .18s ease; }
.kc-inquiry__card:hover { border-color: rgba(1,21,37,.32); }
.kc-inquiry__card:has(input:checked) { border-color: var(--kc-color-ink); background: rgba(1,21,37,.03); box-shadow: inset 0 0 0 1px var(--kc-color-ink); }
.kc-inquiry__card:has(input:checked) .kc-inquiry__card-tick { background: var(--kc-color-primary); border-color: var(--kc-color-primary); }
.kc-inquiry__card:has(input:checked) .kc-inquiry__card-tick::after { opacity: 1; }
.kc-inquiry__card:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(0,176,219,.4); }

/* preferred contact pills + accessory checks */
.kc-inquiry__pref { margin-bottom: 1.8rem; }
.kc-inquiry__pref-row, .kc-inquiry__checks { display: flex; flex-wrap: wrap; gap: .6rem; }
.kc-inquiry__pill { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1.25rem; border: 1px solid var(--kc-color-line); border-radius: 999px; cursor: pointer; font-size: .92rem; color: var(--kc-color-ink); transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.kc-inquiry__pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kc-inquiry__pill:hover { border-color: rgba(1,21,37,.32); }
.kc-inquiry__pill:has(input:checked) { border-color: var(--kc-color-ink); background: var(--kc-color-ink); color: #fff; }
.kc-inquiry__pill:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(0,176,219,.4); }
.kc-inquiry__check { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--kc-color-line); border-radius: 999px; cursor: pointer; font-size: .92rem; color: var(--kc-color-ink); transition: border-color .18s ease, background-color .18s ease; }
.kc-inquiry__check input { width: auto; min-height: 0; accent-color: var(--kc-color-primary); }
.kc-inquiry__check:has(input:checked) { border-color: var(--kc-color-ink); background: rgba(1,21,37,.03); }
.kc-inquiry__check:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(0,176,219,.35); }
.kc-inquiry__checks-group { margin-bottom: .5rem; }

/* privacy note */
.kc-inquiry__privacy { font-size: .82rem; line-height: 1.55; color: var(--kc-color-muted); margin: 0 0 1.5rem; padding: .9rem 1.1rem; background: var(--kc-color-surface); border-radius: 3px; }
.kc-inquiry__privacy a { color: var(--kc-color-primary); text-decoration: underline; }

/* photo guide + uploads */
.kc-inquiry__photo-guide { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; margin: 0 0 1.5rem; padding: 0; }
.kc-inquiry__photo-guide li { position: relative; padding-left: 1.15rem; font-size: .86rem; color: #2b3a48; }
.kc-inquiry__photo-guide li::before { content: ""; position: absolute; left: 0; top: .5em; width: 6px; height: 6px; border-radius: 50%; background: var(--kc-color-primary); }
.kc-inquiry__file { position: relative; }
.kc-inquiry__file input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.kc-inquiry__file-label { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; min-height: 100px; padding: 1.25rem 1rem; border: 1px dashed var(--kc-color-line); border-radius: 4px; background: #fafbfc; color: var(--kc-color-muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; text-align: center; transition: border-color .18s ease, color .18s ease, background-color .18s ease; }
.kc-inquiry__file:hover .kc-inquiry__file-label,
.kc-inquiry__file input:focus-visible + .kc-inquiry__file-label { border-color: var(--kc-color-primary); color: var(--kc-color-ink); }
.kc-inquiry__file.has-file .kc-inquiry__file-label { border-style: solid; border-color: var(--kc-color-primary); color: var(--kc-color-ink); background: rgba(0,176,219,.05); }
.kc-inquiry__file-icon svg { width: 22px; height: 22px; }
.kc-inquiry__file-preview { display: none; margin-top: .5rem; font-size: .76rem; color: var(--kc-color-muted); word-break: break-word; text-align: center; }
.kc-inquiry__file-preview.is-shown { display: block; }
.kc-inquiry__file-preview.is-error { color: #b3261e; }

/* actions + buttons */
.kc-inquiry__actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2.4rem; }
.kc-inquiry__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .9rem 1.9rem; font-family: var(--kc-font-body); font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; border-radius: 2px; border: 1px solid; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.kc-inquiry__btn--primary { background: var(--kc-color-ink); color: #fff; border-color: var(--kc-color-ink); }
.kc-inquiry__btn--primary:hover { background: transparent; color: var(--kc-color-ink); }
.kc-inquiry__btn--ghost { background: transparent; color: var(--kc-color-ink); border-color: var(--kc-color-line); }
.kc-inquiry__btn--ghost:hover { border-color: var(--kc-color-ink); }
.kc-inquiry__btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(0,176,219,.45); }
.kc-inquiry__btn:disabled { opacity: .55; cursor: not-allowed; }

/* notice + loading + noscript */
.kc-inquiry__notice { display: none; }
.kc-inquiry__notice.is-shown { display: flex; gap: 1rem; align-items: flex-start; padding: 1.5rem 1.75rem; border-radius: 4px; }
.kc-inquiry__notice--ok { background: #e9f4ee; border-left: 3px solid #1d6b3f; color: #14532b; }
.kc-inquiry__notice-icon { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: #1d6b3f; color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.kc-inquiry__notice-icon svg { width: 16px; height: 16px; }
.kc-inquiry__notice--ok > span:last-child { display: flex; flex-direction: column; gap: .2rem; }
.kc-inquiry__notice--ok strong { font-size: 1.05rem; }
.kc-inquiry__loading { display: none; align-items: center; justify-content: center; gap: .75rem; padding: 3rem 1rem; color: var(--kc-color-muted); font-size: .95rem; }
.kc-inquiry__loading.is-shown { display: flex; }
.kc-inquiry__spinner { width: 20px; height: 20px; border: 2px solid var(--kc-color-line); border-top-color: var(--kc-color-primary); border-radius: 50%; animation: kc-inq-spin .8s linear infinite; }
@keyframes kc-inq-spin { to { transform: rotate(360deg); } }
.kc-inquiry__noscript { padding: 1rem 1.1rem; background: var(--kc-color-surface); border-radius: 3px; color: var(--kc-color-ink); font-size: .9rem; line-height: 1.5; }

/* responsive */
@media (max-width: 760px) {
    .kc-inquiry__pips { display: none; }
    .kc-inquiry__progress-m { display: block; margin-bottom: 1.75rem; }
    .kc-sellpage__trust-grid { grid-template-columns: 1fr; gap: 1.25rem; }
}
@media (max-width: 560px) {
    .kc-inquiry__grid--2, .kc-inquiry__grid--3 { grid-template-columns: 1fr; }
    .kc-inquiry__cards-grid { grid-template-columns: 1fr; }
    .kc-inquiry__cards-grid--compact { grid-template-columns: 1fr 1fr; }
    .kc-inquiry__actions { flex-direction: column-reverse; gap: .75rem; }
    .kc-inquiry__actions .kc-inquiry__btn { width: 100%; }
}

/* Sell form — "Add more details" disclosure */
.kc-inquiry__more { margin: 0 0 1.9rem; border: 1px solid var(--kc-color-line); border-radius: 4px; background: #fff; }
.kc-inquiry__more-toggle { display: flex; align-items: center; gap: .5rem; padding: 1.2rem 1.4rem; cursor: pointer; font-family: var(--kc-font-body); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--kc-color-ink); list-style: none; }
.kc-inquiry__more[open] .kc-inquiry__more-toggle { border-bottom: 1px solid var(--kc-color-line); }
.kc-inquiry__more-toggle::-webkit-details-marker { display: none; }
.kc-inquiry__more-toggle::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 1.5px solid var(--kc-color-muted); border-bottom: 1.5px solid var(--kc-color-muted); transform: rotate(45deg); transition: transform .2s ease; }
.kc-inquiry__more[open] .kc-inquiry__more-toggle::after { transform: rotate(-135deg); }
.kc-inquiry__more-toggle:focus-visible { outline: none; box-shadow: inset 0 0 0 2px rgba(0,176,219,.5); border-radius: 4px; }
.kc-inquiry__more-toggle .kc-inquiry__opt { margin-left: .3rem; }
.kc-inquiry__more-body { padding: 1.6rem 1.4rem 1.5rem; }
.kc-inquiry__more-body .kc-inquiry__field:last-child,
.kc-inquiry__more-body .kc-inquiry__grid:last-child { margin-bottom: 0; }
.kc-inquiry__more:not([open]) .kc-inquiry__more-body { display: none; }

/* Condition — clean vertical selectable list (5 options don't fit a card grid) */
.kc-inquiry__condlist { display: flex; flex-direction: column; gap: .75rem; }
.kc-inquiry__condlist .kc-inquiry__card { flex-direction: row; align-items: center; gap: .35rem 1.1rem; padding: 1.15rem 1.35rem; }
.kc-inquiry__condlist .kc-inquiry__card-title { order: 1; flex: 0 0 auto; min-width: 6.5rem; font-size: 1rem; }
.kc-inquiry__condlist .kc-inquiry__card-desc { order: 2; flex: 1 1 auto; }
.kc-inquiry__condlist .kc-inquiry__card-tick { order: 3; position: static; margin-left: auto; flex: 0 0 auto; }
.kc-inquiry__checks-group { margin-top: .5rem; }
@media (max-width: 520px) {
    .kc-inquiry__condlist .kc-inquiry__card { flex-wrap: wrap; }
    .kc-inquiry__condlist .kc-inquiry__card-title { min-width: 0; flex: 1 1 auto; }
    .kc-inquiry__condlist .kc-inquiry__card-desc { flex: 1 1 100%; }
    .kc-inquiry__condlist .kc-inquiry__card-tick { position: absolute; top: 1.15rem; right: 1.35rem; margin: 0; }
}


/* ============================================================================
   Merchandise product page (.kc-merch) — retail layout for caps, tees & co.
   Loaded via woocommerce/single-product-merch.php for the merchandise category.
   ========================================================================== */
.kc-merch { background: #fff; }
.kc-merch__notices,
.kc-merch__crumbs,
.kc-merch__layout,
.kc-merch__more { max-width: 1240px; margin: 0 auto; padding-left: clamp(1.25rem, 4vw, 3rem); padding-right: clamp(1.25rem, 4vw, 3rem); }

/* WooCommerce notices (added to basket, errors) */
.kc-merch__notices { padding-top: .5rem; }
.kc-merch__notices .woocommerce-message,
.kc-merch__notices .woocommerce-info,
.kc-merch__notices .woocommerce-error,
.kc-merch__notices .woocommerce-error li {
    list-style: none;
    font-family: var(--kc-font-body);
    font-size: .9rem;
    color: var(--kc-color-ink);
}
.kc-merch__notices .woocommerce-message,
.kc-merch__notices .woocommerce-info,
.kc-merch__notices .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .6rem 1.2rem;
    margin: .9rem 0 0;
    padding: .95rem 1.2rem;
    background: var(--kc-color-cream, #F4F2EE);
    border-left: 3px solid var(--kc-color-primary);
    border-radius: 3px;
}
.kc-merch__notices .woocommerce-error { border-left-color: #b3261e; }
.kc-merch__notices .button {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
    text-decoration: none;
}

/* Breadcrumbs */
.kc-merch__crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    padding-top: 1.5rem;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
}
.kc-merch__crumbs a { color: inherit; text-decoration: none; transition: color .18s ease; }
.kc-merch__crumbs a:hover { color: var(--kc-color-ink); }
.kc-merch__crumbs [aria-current] { color: var(--kc-color-ink); }
.kc-merch__crumb-sep { opacity: .45; }

/* Layout */
.kc-merch__layout {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 4.5vw, 4.5rem);
    align-items: start;
    padding-top: clamp(1.5rem, 3.5vw, 2.75rem);
    padding-bottom: clamp(2.75rem, 5.5vw, 5rem);
}

/* Gallery — blurred-backdrop stage, vertical thumb rail, arrows + zoom */
.kc-merch__gallery {
    display: grid;
    grid-template-areas: "thumbs stage";
    grid-template-columns: 80px minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
    container-type: inline-size; /* lets the thumb rail derive the stage height */
}
.kc-merch__stage {
    grid-area: stage;
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 8px;
    overflow: hidden;
    background: #10161d;
    cursor: zoom-in;
}
.kc-merch__stage-bg {
    position: absolute;
    inset: -8%;
    width: 116%;
    height: 116%;
    object-fit: cover;
    filter: blur(26px) saturate(1.05) brightness(.85);
    transition: opacity .16s ease;
    transform: translateZ(0);
}
.kc-merch__stage::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(1, 21, 37, .08), rgba(1, 21, 37, .18));
}
.kc-merch__stage-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    z-index: 2;
    transition: opacity .16s ease, transform .45s cubic-bezier(.2, .7, .2, 1);
}
.kc-merch__stage.is-fading .kc-merch__stage-img,
.kc-merch__stage.is-fading .kc-merch__stage-bg { opacity: 0; }
.kc-merch__stage.is-zoom .kc-merch__stage-img { transform: scale(1.65); }

.kc-merch__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--kc-color-ink);
    cursor: pointer;
    opacity: 0;
    box-shadow: 0 8px 20px -8px rgba(1, 21, 37, .5);
    transition: opacity .2s ease, transform .2s ease;
}
.kc-merch__nav svg { width: 17px; height: 17px; }
.kc-merch__nav--prev { left: .9rem; }
.kc-merch__nav--next { right: .9rem; }
.kc-merch__stage:hover .kc-merch__nav,
.kc-merch__nav:focus-visible { opacity: 1; }
.kc-merch__nav:hover { transform: translateY(-50%) scale(1.07); }
.kc-merch__nav:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 2px; }
.kc-merch__count {
    position: absolute;
    right: .9rem;
    bottom: .9rem;
    z-index: 3;
    padding: .32rem .78rem;
    border-radius: 999px;
    background: rgba(1, 21, 37, .55);
    color: #fff;
    font-family: var(--kc-font-body);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    pointer-events: none;
}
.kc-merch__thumbs {
    grid-area: thumbs;
    display: flex;
    flex-direction: column;
    gap: .6rem;
    max-height: 700px; /* fallback for browsers without container queries */
    max-height: calc((100cqw - 80px - .85rem) * 1.25); /* exactly the 4:5 stage height */
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.kc-merch__thumbs::-webkit-scrollbar { display: none; }
.kc-merch__thumb {
    width: 80px;
    height: 80px;
    flex: 0 0 auto;
    padding: 0;
    border: 1px solid var(--kc-color-line);
    border-radius: 6px;
    background: var(--kc-color-cream, #F4F2EE);
    overflow: hidden;
    cursor: pointer;
    opacity: .7;
    transition: opacity .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.kc-merch__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kc-merch__thumb:hover { opacity: 1; }
.kc-merch__thumb.is-active { opacity: 1; border-color: var(--kc-color-ink); box-shadow: inset 0 0 0 1px var(--kc-color-ink); }
.kc-merch__thumb:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 2px; opacity: 1; }
@media (hover: none) {
    .kc-merch__nav { opacity: 1; background: rgba(255, 255, 255, .85); }
    .kc-merch__stage { cursor: default; }
    .kc-merch__stage.is-zoom .kc-merch__stage-img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-merch__stage-img,
    .kc-merch__stage-bg { transition: none; }
    .kc-merch__stage.is-zoom .kc-merch__stage-img { transform: none; }
}

/* Purchase rail */
.kc-merch__rail { position: sticky; top: 96px; }
.kc-merch__eyebrow {
    margin: 0 0 .8rem;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-merch__title {
    margin: 0 0 .9rem;
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.6vw, 2.9rem);
    line-height: 1.05;
    color: var(--kc-color-ink);
}
.kc-merch__trustpilot { margin: 0 0 1rem; min-height: 20px; }
.kc-merch__trustpilot .trustpilot-widget { margin-left: -25px; } /* micro widget self-centres; pull flush-left */
.kc-merch__price { margin: 0 0 1rem; font-family: var(--kc-font-body); font-size: 1.45rem; font-weight: 600; color: var(--kc-color-ink); }
.kc-merch__price del { font-weight: 400; color: var(--kc-color-muted); margin-right: .5rem; }
.kc-merch__short { font-family: var(--kc-font-body); font-size: .95rem; line-height: 1.7; color: #3a3f45; }
.kc-merch__short p { margin: 0 0 .8rem; }

/* WooCommerce add-to-cart form (native — handles size variations + qty) */
.kc-merch__buy { margin-top: 1.3rem; }
.kc-merch form.cart .variations { width: 100%; border: 0; margin: 0 0 1.1rem; }
.kc-merch form.cart .variations td,
.kc-merch form.cart .variations th { display: block; padding: 0; border: 0; text-align: left; }
.kc-merch form.cart .variations label {
    display: block;
    margin-bottom: .55rem;
    font-family: var(--kc-font-body);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--kc-color-ink);
}
.kc-merch form.cart .variations select {
    width: 100%;
    min-height: 52px;
    padding: .8rem 1.05rem;
    font-family: var(--kc-font-body);
    font-size: .95rem;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 3px;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.kc-merch form.cart .variations select:focus,
.kc-merch form.cart .variations select:focus-visible { outline: none; border-color: var(--kc-color-primary); box-shadow: 0 0 0 3px rgba(0, 176, 219, .18); }
.kc-merch form.cart .reset_variations {
    display: inline-block;
    margin-top: .5rem;
    font-family: var(--kc-font-body);
    font-size: .78rem;
    color: var(--kc-color-muted);
}
.kc-merch form.cart .woocommerce-variation-price { margin-bottom: .8rem; font-family: var(--kc-font-body); font-weight: 600; color: var(--kc-color-ink); }
.kc-merch form.cart .woocommerce-variation-availability { font-family: var(--kc-font-body); font-size: .82rem; color: var(--kc-color-muted); }
.kc-merch form.cart,
.kc-merch form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .7rem; }
.kc-merch form.cart .variations_form,
.kc-merch form.cart .single_variation_wrap { flex: 1 1 100%; }
.kc-merch form.cart.variations_form { display: block; }
.kc-merch form.cart .quantity { display: inline-flex; }
.kc-merch form.cart .quantity input.qty {
    width: 84px;
    min-height: 54px;
    padding: 0 .4rem;
    text-align: center;
    font-family: var(--kc-font-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 3px;
}
.kc-merch form.cart .quantity input.qty:focus-visible { outline: none; border-color: var(--kc-color-primary); box-shadow: 0 0 0 3px rgba(0, 176, 219, .18); }
.kc-merch form.cart .single_add_to_cart_button {
    flex: 1;
    min-height: 54px;
    padding: 0 1.7rem;
    font-family: var(--kc-font-body);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fff;
    background: var(--kc-color-ink);
    border: 0;
    border-radius: 3px;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.kc-merch form.cart .single_add_to_cart_button:hover { background: #0d2b42; transform: translateY(-1px); box-shadow: 0 12px 26px -12px rgba(1, 21, 37, .45); }
.kc-merch form.cart .single_add_to_cart_button:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 2px; }
.kc-merch form.cart .single_add_to_cart_button.disabled,
.kc-merch form.cart .single_add_to_cart_button:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }

/* USP rows */
.kc-merch__usps {
    margin: 1.7rem 0 0;
    padding: 1.25rem 0 0;
    border-top: 1px solid var(--kc-color-line);
    list-style: none;
    display: grid;
    gap: .7rem;
}
.kc-merch__usps li { display: flex; align-items: center; gap: .65rem; font-family: var(--kc-font-body); font-size: .86rem; color: #3a3f45; }
.kc-merch__usps svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--kc-color-primary); }

/* Story / description band */
.kc-merch__story { background: var(--kc-color-cream, #F4F2EE); border-top: 1px solid var(--kc-color-line); padding: clamp(2.75rem, 5.5vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.kc-merch__story-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.kc-merch__kicker {
    margin: 0 0 .8rem;
    font-family: var(--kc-font-body);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--kc-color-primary);
}
.kc-merch__story-title { margin: 0 0 1.4rem; font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.7rem, 2.8vw, 2.4rem); color: var(--kc-color-ink); }
.kc-merch__prose { font-family: var(--kc-font-body); font-size: .98rem; line-height: 1.8; color: #3a3f45; text-align: left; }
.kc-merch__prose p { margin: 0 0 1rem; }
.kc-merch__prose ul { margin: 0 0 1rem; padding-left: 1.2rem; }
.kc-merch__prose li { margin-bottom: .45rem; }

/* More merch */
.kc-merch__more { padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: clamp(2.75rem, 5.5vw, 5rem); }
.kc-merch__more-title { margin: 0 0 1.6rem; font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--kc-color-ink); }
.kc-merch__more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.kc-merch-card { display: block; text-decoration: none; }
.kc-merch-card__media { display: block; aspect-ratio: 1 / 1; border-radius: 6px; overflow: hidden; background: var(--kc-color-cream, #F4F2EE); }
.kc-merch-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.kc-merch-card:hover .kc-merch-card__media img { transform: scale(1.04); }
.kc-merch-card__name { display: block; margin-top: .8rem; font-family: var(--kc-font-display); font-size: 1.05rem; color: var(--kc-color-ink); }
.kc-merch-card__price { display: block; margin-top: .25rem; font-family: var(--kc-font-body); font-size: .88rem; color: var(--kc-color-muted); }

@media (max-width: 900px) {
    .kc-merch__layout { grid-template-columns: 1fr; gap: 1.75rem; }
    .kc-merch__rail { position: static; }
    .kc-merch__gallery { grid-template-areas: "stage" "thumbs"; grid-template-columns: 1fr; }
    .kc-merch__thumbs { flex-direction: row; max-height: none; overflow-x: auto; overflow-y: hidden; }
    .kc-merch__thumb { width: 64px; height: 64px; }
    .kc-merch__more-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ---- Merch v2: size pills, WhatsApp assist, story-band stats ------------- */
/* Native variation <select> stays for no-JS + a11y; hidden once pills mount. */
.kc-merch form.cart .variations select.kc-merch__native-select {
    position: absolute;
    width: 1px;
    height: 1px;
    min-height: 0;
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}
.kc-merch__pills { display: flex; flex-wrap: wrap; gap: .55rem; }
.kc-merch__pill {
    min-width: 56px;
    min-height: 46px;
    padding: 0 1.15rem;
    font-family: var(--kc-font-body);
    font-size: .86rem;
    font-weight: 600;
    color: var(--kc-color-ink);
    background: #fff;
    border: 1px solid var(--kc-color-line);
    border-radius: 999px;
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}
.kc-merch__pill:hover { border-color: rgba(1, 21, 37, .45); transform: translateY(-1px); }
.kc-merch__pill.is-active { background: var(--kc-color-ink); border-color: var(--kc-color-ink); color: #fff; }
.kc-merch__pill:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; transform: none; }
.kc-merch__pill:focus-visible { outline: 2px solid var(--kc-color-primary); outline-offset: 2px; }
.kc-merch form.cart .reset_variations { margin-top: .65rem; }

/* Rail chips sit between the price block and the short description. */
.kc-merch .kc-rail-swatches { margin: 1.15rem 0 1.2rem; }

/* WhatsApp assist — quiet text row under the buy form. */
.kc-merch__wa {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: 1.1rem;
    font-family: var(--kc-font-body);
    font-size: .84rem;
    font-weight: 500;
    color: var(--kc-color-ink);
    text-decoration: none;
    border-bottom: 1px solid rgba(1, 21, 37, .25);
    padding-bottom: .2rem;
    transition: border-color .18s ease, color .18s ease;
}
.kc-merch__wa svg { width: 17px; height: 17px; color: #1fa855; }
.kc-merch__wa .kc-merch__wa-arrow { width: 14px; height: 14px; color: currentColor; transition: transform .18s ease; }
.kc-merch__wa:hover { color: var(--kc-color-primary); border-color: var(--kc-color-primary); }
.kc-merch__wa:hover .kc-merch__wa-arrow { transform: translateX(3px); }

/* Story-band stats — the merch cousin of the watch specs band. */
.kc-merch__stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin: 0 0 2rem;
    padding: 1.35rem 0;
    border-top: 1px solid var(--kc-color-line);
    border-bottom: 1px solid var(--kc-color-line);
}
.kc-merch__stat { text-align: center; }
.kc-merch__stat dt {
    font-family: var(--kc-font-body);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--kc-color-muted);
    margin-bottom: .3rem;
}
.kc-merch__stat dd {
    margin: 0;
    font-family: var(--kc-font-display);
    font-size: 1.25rem;
    color: var(--kc-color-ink);
}


/* ---------------------------------------------------------
   INFO / LEGAL PAGES (generic page.php)
--------------------------------------------------------- */
.kc-infopage__hero { background: var(--kc-color-ink); color: #fff; padding: clamp(3.5rem, 7vw, 6rem) 1.5rem; text-align: center; }
.kc-infopage__hero-inner { max-width: 50rem; margin: 0 auto; }
.kc-infopage__eyebrow { font-size: .78rem; font-weight: 500; text-transform: uppercase; letter-spacing: .28em; color: var(--kc-color-primary); margin: 0 0 1.1rem; }
.kc-infopage__title { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(2.3rem, 5vw, 3.8rem); line-height: 1.05; letter-spacing: .005em; margin: 0; color: #fff; }
.kc-infopage__rule { display: block; width: 56px; height: 1px; background: rgba(255, 255, 255, .3); margin: 1.6rem auto 0; }
.kc-infopage__body { padding: clamp(2.75rem, 6vw, 5rem) 1.5rem clamp(4rem, 8vw, 6.5rem); }
.kc-infopage__content { max-width: 46rem; margin: 0 auto; font-size: 1rem; line-height: 1.78; color: #2b3a48; }
.kc-infopage__content h2 { font-family: var(--kc-font-display); font-weight: 500; font-size: clamp(1.7rem, 2.6vw, 2.2rem); line-height: 1.15; color: var(--kc-color-ink); margin: 2.4em 0 .6em; }
.kc-infopage__content > h2:first-child,
.kc-infopage__content > *:first-child h2 { margin-top: 0; }
.kc-infopage__content h3 { font-family: var(--kc-font-display); font-weight: 600; font-size: 1.35rem; line-height: 1.25; color: var(--kc-color-ink); margin: 1.9em 0 .5em; }
.kc-infopage__content p { margin: 0 0 1.1em; }
.kc-infopage__content ul,
.kc-infopage__content ol { margin: 0 0 1.25em; padding-left: 1.2em; }
.kc-infopage__content li { margin: 0 0 .55em; }
.kc-infopage__content li::marker { color: var(--kc-color-primary); }
.kc-infopage__content a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(0, 176, 219, .45); transition: color .2s ease, border-color .2s ease; }
.kc-infopage__content a:hover { color: var(--kc-color-primary); border-bottom-color: currentColor; }
.kc-infopage__content strong { color: var(--kc-color-ink); font-weight: 600; }
.kc-infopage__content .kc-infopage__updated { font-size: .82rem; text-transform: uppercase; letter-spacing: .16em; color: var(--kc-color-muted); margin: 0 0 2.4em; }
.kc-infopage__content hr { border: 0; border-top: 1px solid var(--kc-color-line); margin: 2.5em 0; }


/* FAQ accordions on info pages (native details/summary — no JS) */
.kc-infopage__content details { border-bottom: 1px solid var(--kc-color-line); }
.kc-infopage__content details:first-of-type { border-top: 1px solid var(--kc-color-line); }
.kc-infopage__content summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1.05rem 0; font-weight: 500; font-size: 1.02rem; color: var(--kc-color-ink); transition: color .2s ease; }
.kc-infopage__content summary::-webkit-details-marker { display: none; }
.kc-infopage__content summary:hover { color: var(--kc-color-primary); }
.kc-infopage__content summary::after { content: "+"; flex: 0 0 auto; font-family: var(--kc-font-display); font-size: 1.4rem; line-height: 1; color: var(--kc-color-primary); transition: transform .25s ease; }
.kc-infopage__content details[open] summary::after { transform: rotate(45deg); }
.kc-infopage__content details > div { padding: 0 0 1.25rem; }
.kc-infopage__content details > div > p:last-child,
.kc-infopage__content details > div > ul:last-child { margin-bottom: 0; }

/* Footer newsletter inline feedback */
.site-footer__form-msg { margin: .65rem 0 0; font-size: .85rem; color: #e4a3a3; }
.site-footer__form-msg.is-ok { color: var(--kc-color-primary); }

/* Sell Your Watch — cyan CTA pill beside the WhatsApp status pill */
.kc-action--sellcta {
    width: auto;
    padding: 0 .95rem;
    color: var(--kc-color-primary);
    background: rgba(0, 176, 219, .08);
    border-radius: 999px;
}
.kc-action--sellcta:hover,
.kc-action--sellcta:focus { background-color: rgba(0, 176, 219, .16); color: var(--kc-color-primary); }
.kc-action--sellcta .kc-action__status { color: inherit; }
@media (max-width: 860px) {
    .kc-action--sellcta { display: none; } /* mobile menu carries Sell Your Watch */
}

/* Lenis smooth scroll (recommended base styles) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }

/* PDP gallery lightbox */
.kc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(1, 21, 37, .82);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .45s ease;
    cursor: zoom-out;
}
.kc-lightbox.is-in { opacity: 1; }
.kc-lightbox__img {
    position: fixed;
    z-index: 100001;
    object-fit: cover;
    cursor: zoom-out;
    box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .8);
    will-change: top, left, width, height;
    transition: top .55s cubic-bezier(.22,.61,.36,1), left .55s cubic-bezier(.22,.61,.36,1),
                width .55s cubic-bezier(.22,.61,.36,1), height .55s cubic-bezier(.22,.61,.36,1),
                filter .55s ease;
}
.kc-solo-gallery__item { cursor: zoom-in; }
@media (prefers-reduced-motion: reduce) {
    .kc-lightbox, .kc-lightbox__img { transition: none; }
}

/* ---------------------------------------------------------
   MERCH BAND (homepage) — the Kettle Club tee, front & back
--------------------------------------------------------- */
.kc-merchband { background: var(--kc-color-surface); overflow: hidden; }
.kc-merchband__inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: clamp(3rem, 6vw, 5rem) 1.5rem 0;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    align-items: center;
    gap: clamp(1.5rem, 4vw, 4rem);
}
.kc-merchband__copy { padding-bottom: clamp(3rem, 6vw, 5rem); }
.kc-merchband__eyebrow {
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .28em;
    color: var(--kc-color-primary);
    margin: 0 0 1rem;
}
.kc-merchband__title {
    font-family: var(--kc-font-display);
    font-weight: 500;
    font-size: clamp(2.2rem, 4.6vw, 3.9rem);
    line-height: 1.04;
    color: var(--kc-color-ink);
    margin: 0 0 1rem;
}
.kc-merchband__title em { font-style: italic; color: var(--kc-color-primary); }
.kc-merchband__lede {
    font-family: var(--kc-font-body);
    font-size: 1.02rem;
    line-height: 1.65;
    color: #2b3a48;
    max-width: 30rem;
    margin: 0 0 1.8rem;
}
.kc-merchband__actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.kc-merchband__btn {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    background: var(--kc-color-ink);
    color: #fff;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    padding: 1.05rem 1.6rem;
    transition: background .25s ease, color .25s ease;
}
.kc-merchband__btn:hover { background: var(--kc-color-primary); color: #fff; text-decoration: none; }
.kc-merchband__price { font-weight: 500; opacity: .85; }
.kc-merchband__price .woocommerce-Price-amount { color: inherit; }
.kc-merchband__link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--kc-color-ink);
    text-decoration: none;
    transition: color .2s ease;
}
.kc-merchband__link svg { width: 20px; height: 8px; }
.kc-merchband__link:hover { color: var(--kc-color-primary); text-decoration: none; }
.kc-merchband__figures {
    position: relative;
    display: block;
    align-self: end;
    height: clamp(320px, 36vw, 500px);
}
.kc-merchband__fig {
    position: absolute;
    bottom: 0;
    height: 96%;
    width: auto;
    filter: drop-shadow(0 26px 34px rgba(1, 21, 37, .22));
    transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.kc-merchband__fig--back { left: 0; height: 88%; opacity: .96; }
.kc-merchband__fig--front { right: 0; z-index: 2; }
.kc-merchband__figures:hover .kc-merchband__fig--front { transform: translateY(-8px); }
.kc-merchband__figures:hover .kc-merchband__fig--back { transform: translateY(-4px); }
@media (max-width: 860px) {
    .kc-merchband__inner { grid-template-columns: 1fr; padding-bottom: 0; }
    .kc-merchband__copy { padding-bottom: 0; text-align: center; }
    .kc-merchband__lede { margin-left: auto; margin-right: auto; }
    .kc-merchband__actions { justify-content: center; }
    .kc-merchband__figures { height: 320px; width: 100%; max-width: 26rem; margin: 2.25rem auto 0; }
    .kc-merchband__fig--back { left: 4%; }
    .kc-merchband__fig--front { right: 4%; }
}

/* Zing Cover LBQ offer — compact utility row, same scale as the
   part-exchange / finance rows beneath it. Rebuilt by single-product.php. */
.zing-cover-offer {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: .8rem;
    row-gap: .25rem;
    margin: .7rem 0 0;
    padding: .8rem 1.1rem .85rem;
    border: 1px solid var(--kc-color-line);
    background: #fff;
    font-family: var(--kc-font-body);
    transition: border-color .2s ease;
}
.zing-cover-offer:hover { border-color: #c4ccd3; }
.zing-cover-offer input[type="checkbox"] {
    grid-row: 1 / span 2;
    width: 15px;
    height: 15px;
    accent-color: var(--kc-color-primary);
    margin: 0;
    cursor: pointer;
}
.zing-cover-offer__logo { grid-column: 2; display: inline-flex; text-decoration: none; }
.zing-cover-offer__logo img {
    height: 10px !important;
    width: auto !important;
    display: block;
}
.zing-cover-offer label {
    grid-column: 2;
    cursor: pointer;
    font-size: .78rem;
    line-height: 1.55;
    color: #55636f;
    margin: 0;
}

/* Floating WhatsApp button (site-wide, footer.php) */
.kc-wa-float {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 9000;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 28px -8px rgba(1, 21, 37, .45);
    transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s ease;
}
.kc-wa-float:hover,
.kc-wa-float:focus-visible {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 16px 34px -10px rgba(1, 21, 37, .5);
    color: #fff;
}
.kc-wa-float svg { width: 30px; height: 30px; display: block; }
@media (max-width: 900px) {
    .kc-wa-float { right: 16px; bottom: 16px; width: 52px; height: 52px; }
    /* clear the sticky buy bar on product pages */
    .single-product .kc-wa-float { bottom: 88px; }
}
@media print { .kc-wa-float { display: none; } }

/* ---------------------------------------------------------
   NOVUNA FINANCE CALCULATOR (PDP card + slide-in drawer)
--------------------------------------------------------- */
button.kc-finance { width: 100%; text-align: left; cursor: pointer; font-family: inherit; }
.kc-finance--calc .kc-finance__title { color: var(--kc-color-ink); }
.kc-finance--calc:hover .kc-finance__sub { color: var(--kc-color-primary); }

.kc-fincalc { position: fixed; inset: 0; z-index: 2147483200; }
.kc-fincalc[hidden] { display: none; }
.kc-fincalc__scrim {
    position: absolute; inset: 0;
    background: rgba(1, 21, 37, .45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0; transition: opacity .35s ease;
}
.kc-fincalc.is-open .kc-fincalc__scrim { opacity: 1; }
.kc-fincalc__drawer {
    position: absolute; top: 0; right: 0; height: 100%;
    width: clamp(320px, 92vw, 440px);
    background: #fff; color: var(--kc-color-ink);
    box-shadow: -4px 0 30px rgba(1, 21, 37, .18);
    transform: translateX(100%);
    transition: transform .42s cubic-bezier(.22, .61, .36, 1);
    display: flex; flex-direction: column;
}
.kc-fincalc.is-open .kc-fincalc__drawer { transform: none; }
.kc-fincalc__x {
    position: absolute; top: 14px; right: 14px; z-index: 2;
    width: 38px; height: 38px; display: grid; place-items: center;
    border: 0; background: none; color: var(--kc-color-muted); cursor: pointer;
    transition: color .15s ease;
}
.kc-fincalc__x:hover { color: var(--kc-color-ink); }
.kc-fincalc__x svg { width: 20px; height: 20px; }
.kc-fincalc__scroll { overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 42px 30px 38px; }
.kc-fincalc__kicker { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .28em; color: var(--kc-color-primary); margin: 0 0 .7rem; }
.kc-fincalc__title { font-family: var(--kc-font-display); font-weight: 500; font-size: 2.1rem; line-height: 1.05; margin: 0 0 .9rem; color: var(--kc-color-ink); }
.kc-fincalc__title em { font-style: italic; color: var(--kc-color-primary); }
.kc-fincalc__intro { font-size: .875rem; line-height: 1.65; color: #55636f; margin: 0 0 1.6rem; }
.kc-fincalc__intro b { color: var(--kc-color-ink); font-weight: 600; }
.kc-fincalc__calc { border: 1px solid var(--kc-color-line); padding: 1.4rem 1.35rem; }
.kc-fincalc__field { margin-bottom: 1.4rem; }
.kc-fincalc__field:last-child { margin-bottom: 0; }
.kc-fincalc__flabel { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--kc-color-muted); margin-bottom: .8rem; }
.kc-fincalc__flabel b { color: var(--kc-color-ink); font-weight: 600; letter-spacing: normal; text-transform: none; font-size: .85rem; }
.kc-fincalc__range { -webkit-appearance: none; appearance: none; width: 100%; height: 3px; background: var(--kc-color-line); outline: none; margin: 0; }
.kc-fincalc__range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--kc-color-primary); cursor: pointer; border: 3px solid #fff; box-shadow: 0 1px 5px rgba(1, 21, 37, .35); }
.kc-fincalc__range::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--kc-color-primary); cursor: pointer; border: 3px solid #fff; box-shadow: 0 1px 5px rgba(1, 21, 37, .35); }
.kc-fincalc__ends { display: flex; justify-content: space-between; margin-top: .5rem; font-size: .7rem; color: var(--kc-color-muted); }
.kc-fincalc__modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kc-fincalc__mode { font-family: var(--kc-font-body); padding: .8rem .6rem; border: 1px solid var(--kc-color-line); background: #fff; cursor: pointer; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--kc-color-muted); white-space: nowrap; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.kc-fincalc__mode:hover { border-color: var(--kc-color-ink); color: var(--kc-color-ink); }
.kc-fincalc__mode.is-on { border-color: var(--kc-color-ink); background: var(--kc-color-ink); color: #fff; }
.kc-fincalc__terms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.kc-fincalc__term { font-family: var(--kc-font-body); display: flex; flex-direction: column; align-items: center; gap: 2px; padding: .7rem .4rem; border: 1px solid var(--kc-color-line); background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.kc-fincalc__term b { font-size: 1.05rem; font-weight: 700; color: var(--kc-color-ink); line-height: 1; }
.kc-fincalc__term span { font-size: .6rem; letter-spacing: .02em; color: var(--kc-color-muted); text-align: center; white-space: nowrap; }
.kc-fincalc__term.is-on { border-color: var(--kc-color-primary); background: rgba(0, 176, 219, .05); }
.kc-fincalc__term.is-on b { color: var(--kc-color-primary); }
.kc-fincalc__result { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--kc-color-line); }
.kc-fincalc__monthly { display: flex; align-items: baseline; gap: 8px; }
.kc-fincalc__monthly b { font-family: var(--kc-font-display); font-size: 2.2rem; font-weight: 600; letter-spacing: -.01em; color: var(--kc-color-ink); }
.kc-fincalc__monthly span { font-size: .8rem; color: var(--kc-color-muted); }
.kc-fincalc__rows { margin: 1.1rem 0 0; }
.kc-fincalc__rows > div { display: flex; justify-content: space-between; gap: 16px; padding: .55rem 0; border-bottom: 1px solid var(--kc-color-line); font-size: .82rem; }
.kc-fincalc__rows dt { color: var(--kc-color-muted); margin: 0; font-weight: 400; }
.kc-fincalc__rows dd { margin: 0; font-weight: 500; color: var(--kc-color-ink); font-variant-numeric: tabular-nums; }
.kc-fincalc__rows .is-total { border-bottom: 0; padding-top: .8rem; }
.kc-fincalc__rows .is-total dt { color: var(--kc-color-ink); font-weight: 600; }
.kc-fincalc__rows .is-total dd { font-weight: 700; }
.kc-fincalc__buy { display: flex; align-items: center; justify-content: center; margin-top: 1.4rem; padding: 1rem; background: var(--kc-color-ink); color: #fff !important; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .18em; text-decoration: none; transition: background .2s ease; }
.kc-fincalc__buy:hover { background: var(--kc-color-primary); text-decoration: none; }
.kc-fincalc__legal { margin: 1rem 0 0; font-size: .66rem; line-height: 1.6; color: var(--kc-color-muted); }
body.kc-fincalc-lock { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
    .kc-fincalc__scrim, .kc-fincalc__drawer { transition: none; }
}

/* Checkout order-summary finance block */
.kc-fincheckout { margin-top: 1.4rem; padding: 1.1rem 1.15rem 1.15rem; border: 1px solid var(--kc-color-line); background: #fff; }
.kc-fincheckout__kicker { font-size: .66rem; font-weight: 600; text-transform: uppercase; letter-spacing: .24em; color: var(--kc-color-primary); margin: 0 0 .6rem; }
.kc-fincheckout__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.kc-fincheckout__from { font-size: .875rem; color: #2b3a48; margin: 0; }
.kc-fincheckout__from b { color: var(--kc-color-ink); font-weight: 600; }
.kc-fincheckout__btn { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--kc-font-body); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--kc-color-ink); background: none; border: 1px solid var(--kc-color-ink); padding: .6rem .9rem; cursor: pointer; transition: background .2s ease, color .2s ease; }
.kc-fincheckout__btn:hover { background: var(--kc-color-ink); color: #fff; }
.kc-fincheckout__btn svg { width: 14px; height: 14px; }
.kc-fincheckout__rep { margin: .85rem 0 0; font-size: .68rem; line-height: 1.6; color: var(--kc-color-muted); }

/* Novuna's checkout widget — kept, forced into house style. Its real root
   is .pbf-popup-trigger (#PBFPopup is the popup it opens); their bundle
   ships its own styles, so every structural rule carries !important. */
#PBFPopup,
.pbf-popup-trigger,
.pbf-checkout-js,
.pbf-finance-widget {
    --pbf-widget-width: 100%;
    --pbf-widget-background: #ffffff;
    --pbf-widget-padding-top: 18px;
    --pbf-widget-padding-bottom: 18px;
    --pbf-widget-padding-left: 18px;
    --pbf-widget-padding-right: 18px;
    --pbf-primary-color: #00B0DB;
    --pbf-text-color: #2b3a48;
    --pbf-error-color: #bf0000;
    --pbf-button-finance-background: #ffffff;
    --pbf-button-active-text: #ffffff;
    --pbf-button-default-background: #ffffff;
    --pbf-button-active-background: #011525;
    --pbf-button-secondary: #011525;
    --pbf-button-radius: 0px;
    --pbf-slider-track-height: 3px;
    --pbf-slider-track-color: #E2E5E8;
}
/* their mount container is a pass-through, never a box of its own */
.pbf-checkout-js { display: contents !important; }
.woocommerce-checkout .pbf-popup-trigger,
.woocommerce-checkout .pbf-finance-widget {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    margin: 1.25rem 0 0 !important;
    padding: 1.1rem 1.15rem 1.15rem !important;
    background: #fff !important;
    border: 1px solid var(--kc-color-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: left !important;
}
/* nested topology: only the outer element is the card */
.woocommerce-checkout .pbf-popup-trigger .pbf-finance-widget,
.woocommerce-checkout .pbf-finance-widget .pbf-popup-trigger {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
.pbf-popup-trigger, .pbf-popup-trigger *,
.pbf-finance-widget, .pbf-finance-widget *,
#PBFPopup, #PBFPopup * {
    font-family: var(--kc-font-body) !important;
}
.pbf-popup-trigger p,
.pbf-finance-widget p {
    margin: 0 !important;
    font-size: .875rem !important;
    line-height: 1.6 !important;
    color: #2b3a48 !important;
}
.pbf-popup-trigger button,
.pbf-popup-trigger input[type="button"],
.pbf-popup-trigger a[class*="button" i],
.pbf-finance-widget button {
    font-size: .7rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .16em !important;
    color: var(--kc-color-ink) !important;
    background: #fff !important;
    border: 1px solid var(--kc-color-ink) !important;
    border-radius: 0 !important;
    padding: .6rem .9rem !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background .2s ease, color .2s ease !important;
}
.pbf-popup-trigger button:hover,
.pbf-finance-widget button:hover {
    background: var(--kc-color-ink) !important;
    color: #fff !important;
}
#PBFPopup { border-radius: 0 !important; }

/* Raw-photo hero (no cutout yet): on mobile the photo goes full-bleed over
   the whole stage instead of the inset watch band — no letterboxing. The
   is-raw grain gradient keeps the overlaid title legible. */
@media (max-width: 900px) {
    .kc-product-page__gallery--solo.is-raw:not(.is-gallery) .kc-solo-piece { top: 0; bottom: 0; }
    .kc-product-page__gallery--solo.is-raw .kc-solo-watch {
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
    }
}
