/* ==========================================================================
   Köy Kileri — public design system (Bootstrap 5.3 theme + brand components)
   Vocabulary: docs/ARCHITECTURE.md §7. Mobile-first; no framework besides Bootstrap.

   1.  Tokens & Bootstrap variable mapping
   2.  Base & typography
   3.  Utilities
   4.  Bootstrap component overrides
   5.  Site chrome: skip link, announcement, header, navigation, mobile menu, flash
   6.  Sections & headings
   7.  Home: hero, trust bar, categories, steps, testimonials, campaign, newsletter, stats
   8.  Product card
   9.  Product detail
   10. Producers
   11. Harvest calendar
   12. Cart, checkout & order pages
   13. Generic: empty state, prose, page hero, reveal
   14. Footer
   15. Floating UI: WhatsApp, back-to-top, cookie banner, toasts, mini cart, campaign modal,
       admin toolbar & "Sitede Düzenle" pencils
   16. Animations
   17. Reduced motion & print
   ========================================================================== */

/* 1. Tokens & Bootstrap variable mapping ---------------------------------- */
:root {
    /* Brand palette */
    --kk-terracotta: #B5532C;
    --kk-terracotta-dark: #8F3F1F;
    --kk-terracotta-deep: #6E2F16;
    --kk-terracotta-light: #D9825F;
    --kk-terracotta-50: #FBEDE5;
    --kk-olive: #556B2F;
    --kk-olive-dark: #3E4F22;
    --kk-olive-deep: #2E3B19;
    --kk-olive-50: #EEF1E4;
    --kk-honey: #E3A32B;
    --kk-honey-dark: #C3861A;
    --kk-honey-light: #F2C97A; /* honey for small text on olive-dark: 5.7:1 (plain #E3A32B is only 4.1:1) */
    --kk-honey-50: #FDF3DF;
    --kk-wheat: #F3E6CC;
    --kk-cream: #FBF6EC;
    --kk-paper: #FFFDF8;
    --kk-bark: #3B2F25;
    --kk-bark-deep: #2A211A;
    --kk-sage: #A3B18A;
    --kk-muted: #7A6A5A;
    --kk-muted-strong: #655648; /* muted text on wheat / kilim pattern: ≥ 5:1 (plain muted is 4.2:1 there) */
    --kk-line: #E8DCC5;
    --kk-line-strong: #D9C7A6;
    --kk-danger: #B3261E;
    --kk-success: #3F7D3C;
    --kk-whatsapp: #13803F;
    --kk-whatsapp-dark: #0E6631;
    --kk-whatsapp-bright: #25D366;

    /* Typography */
    --kk-font-heading: "Fraunces", Georgia, "Times New Roman", serif;
    --kk-font-body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --kk-font-mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;

    /* Shape & depth */
    --kk-radius-sm: .5rem;
    --kk-radius: .875rem;
    --kk-radius-lg: 1.25rem;
    --kk-radius-xl: 1.75rem;
    --kk-shadow-sm: 0 1px 2px rgba(59, 47, 37, .06), 0 2px 6px rgba(59, 47, 37, .05);
    --kk-shadow: 0 6px 18px -6px rgba(59, 47, 37, .16), 0 2px 6px rgba(59, 47, 37, .05);
    --kk-shadow-lg: 0 24px 48px -18px rgba(59, 47, 37, .32), 0 8px 18px -8px rgba(59, 47, 37, .12);
    --kk-ring: 0 0 0 .25rem rgba(181, 83, 44, .22);
    --kk-ease: cubic-bezier(.2, .7, .2, 1);
    --kk-header-h: 72px;
    --kk-kilim-border: url("../img/kilim-border.svg");
    --kk-kilim-pattern: url("../img/kilim-pattern.svg");
    --kk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .23 0 0 0 0 .18 0 0 0 0 .14 0 0 0 .45 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

    /* Bootstrap 5.3 mapping */
    --bs-primary: #B5532C;
    --bs-primary-rgb: 181, 83, 44;
    --bs-secondary: #556B2F;
    --bs-secondary-rgb: 85, 107, 47;
    --bs-success: #3F7D3C;
    --bs-success-rgb: 63, 125, 60;
    --bs-info: #5FA8B3;
    --bs-info-rgb: 95, 168, 179;
    --bs-warning: #E3A32B;
    --bs-warning-rgb: 227, 163, 43;
    --bs-danger: #B3261E;
    --bs-danger-rgb: 179, 38, 30;
    --bs-light: #FBF6EC;
    --bs-light-rgb: 251, 246, 236;
    --bs-dark: #3B2F25;
    --bs-dark-rgb: 59, 47, 37;

    --bs-primary-text-emphasis: #6E2F16;
    --bs-secondary-text-emphasis: #2E3B19;
    --bs-success-text-emphasis: #234A22;
    --bs-info-text-emphasis: #1F4D55;
    --bs-warning-text-emphasis: #6B4708;
    --bs-danger-text-emphasis: #7A140F;
    --bs-primary-bg-subtle: #F8E6DC;
    --bs-secondary-bg-subtle: #EBEFDF;
    --bs-success-bg-subtle: #E5F0E1;
    --bs-info-bg-subtle: #E2F0F2;
    --bs-warning-bg-subtle: #FCF0D6;
    --bs-danger-bg-subtle: #F9E1DE;
    --bs-light-bg-subtle: #FDFAF4;
    --bs-dark-bg-subtle: #CFC5BA;
    --bs-primary-border-subtle: #EBC2AD;
    --bs-secondary-border-subtle: #CBD5B2;
    --bs-success-border-subtle: #BDD8B4;
    --bs-info-border-subtle: #B5D9DF;
    --bs-warning-border-subtle: #F2D493;
    --bs-danger-border-subtle: #ECB1AA;

    --bs-body-font-family: var(--kk-font-body);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.65;
    --bs-body-color: #3B2F25;
    --bs-body-color-rgb: 59, 47, 37;
    --bs-body-bg: #FFFDF8;
    --bs-body-bg-rgb: 255, 253, 248;
    --bs-emphasis-color: #2A211A;
    --bs-emphasis-color-rgb: 42, 33, 26;
    --bs-secondary-color: rgba(59, 47, 37, .72);
    --bs-secondary-color-rgb: 59, 47, 37;
    --bs-secondary-bg: #F3E6CC;
    --bs-tertiary-color: rgba(59, 47, 37, .5);
    --bs-tertiary-bg: #FBF6EC;
    --bs-heading-color: #2A211A;
    --bs-link-color: #8F3F1F;
    --bs-link-color-rgb: 143, 63, 31;
    --bs-link-hover-color: #6E2F16;
    --bs-link-hover-color-rgb: 110, 47, 22;
    --bs-link-decoration: underline;
    --bs-code-color: #8F3F1F;
    --bs-highlight-bg: #FCE9BE;
    --bs-border-color: #E8DCC5;
    --bs-border-color-translucent: rgba(59, 47, 37, .12);
    --bs-border-radius: .75rem;
    --bs-border-radius-sm: .5rem;
    --bs-border-radius-lg: 1rem;
    --bs-border-radius-xl: 1.25rem;
    --bs-border-radius-xxl: 1.75rem;
    --bs-border-radius-pill: 50rem;
    --bs-box-shadow: var(--kk-shadow);
    --bs-box-shadow-sm: var(--kk-shadow-sm);
    --bs-box-shadow-lg: var(--kk-shadow-lg);
    --bs-focus-ring-color: rgba(181, 83, 44, .3);
    --bs-form-valid-color: #3F7D3C;
    --bs-form-valid-border-color: #3F7D3C;
    --bs-form-invalid-color: #B3261E;
    --bs-form-invalid-border-color: #B3261E;
}

@media (min-width: 992px) {
    :root {
        --kk-header-h: 124px;
    }
}

/* 2. Base & typography ----------------------------------------------------- */
html {
    scroll-padding-top: calc(var(--kk-header-h) + 1rem);
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

body {
    background-color: var(--kk-paper);
    color: var(--kk-bark);
    font-family: var(--kk-font-body);
    font-size: 1rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

main {
    display: block;
    min-height: 40vh;
}

/* 16px side gutter on phones (Bootstrap's default is 12px). Rows keep their own gutters. */
@media (max-width: 575.98px) {
    .container,
    .container-fluid,
    .container-sm {
        --bs-gutter-x: 2rem;
    }
}

main:focus {
    outline: none;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--kk-font-heading);
    font-optical-sizing: auto;
    font-weight: 600;
    line-height: 1.18;
    letter-spacing: -.012em;
    color: var(--kk-bark-deep);
    text-wrap: balance;
}

h1, .h1 { font-size: clamp(2rem, 1.45rem + 2.4vw, 3.25rem); }
h2, .h2 { font-size: clamp(1.6rem, 1.25rem + 1.5vw, 2.4rem); }
h3, .h3 { font-size: clamp(1.3rem, 1.15rem + .6vw, 1.65rem); }
h4, .h4 { font-size: clamp(1.15rem, 1.08rem + .3vw, 1.35rem); }
h5, .h5 { font-size: 1.1rem; }
h6, .h6 { font-size: 1rem; }

.display-4, .display-5, .display-6 { font-weight: 700; }

p {
    text-wrap: pretty;
}

a {
    text-underline-offset: .18em;
    text-decoration-thickness: from-font;
    transition: color .2s ease;
}

strong, b {
    font-weight: 800;
}

.lead {
    font-size: clamp(1.05rem, 1rem + .35vw, 1.25rem);
    color: var(--kk-muted);
    font-weight: 400;
}

small, .small {
    font-size: .875em;
}

hr {
    border-color: var(--kk-line-strong);
    opacity: 1;
}

::selection {
    background: rgba(227, 163, 43, .4);
    color: var(--kk-bark-deep);
}

img, svg, video {
    max-width: 100%;
}

img {
    height: auto;
}

code, kbd, pre, samp {
    font-family: var(--kk-font-mono);
}

:focus-visible {
    outline: 3px solid rgba(181, 83, 44, .65);
    outline-offset: 2px;
    border-radius: 4px;
}

.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.btn-close:focus-visible,
.accordion-button:focus-visible,
.page-link:focus-visible {
    outline: 0;
}

/* 3. Utilities ------------------------------------------------------------- */
.text-terracotta { color: var(--kk-terracotta) !important; }
.text-terracotta-dark { color: var(--kk-terracotta-dark) !important; }
.text-olive { color: var(--kk-olive) !important; }
.text-honey { color: var(--kk-honey-dark) !important; }
.text-bark { color: var(--kk-bark) !important; }
.text-muted-warm { color: var(--kk-muted) !important; }
.bg-cream { background-color: var(--kk-cream) !important; }
.bg-wheat { background-color: var(--kk-wheat) !important; }
.bg-olive-dark { background-color: var(--kk-olive-dark) !important; }
.bg-terracotta { background-color: var(--kk-terracotta) !important; }
.bg-honey-soft { background-color: var(--kk-honey-50) !important; }
.shadow-soft { box-shadow: var(--kk-shadow) !important; }
.shadow-soft-lg { box-shadow: var(--kk-shadow-lg) !important; }
.rounded-4 { border-radius: var(--kk-radius-lg) !important; }
.rounded-5 { border-radius: var(--kk-radius-xl) !important; }
.font-heading { font-family: var(--kk-font-heading) !important; }
.fw-extrabold { font-weight: 800 !important; }
.ls-wide { letter-spacing: .08em; }
.border-warm { border-color: var(--kk-line) !important; }
.tabular-nums { font-variant-numeric: tabular-nums; }

/* 4. Bootstrap component overrides ----------------------------------------- */

/* Buttons */
.btn {
    --bs-btn-font-family: var(--kk-font-body);
    --bs-btn-font-weight: 700;
    --bs-btn-padding-x: 1.15rem;
    --bs-btn-padding-y: .6rem;
    --bs-btn-font-size: .975rem;
    --bs-btn-border-radius: .75rem;
    --bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .35);
    letter-spacing: .01em;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s var(--kk-ease);
}

.btn-lg {
    --bs-btn-padding-x: 1.75rem;
    --bs-btn-padding-y: .85rem;
    --bs-btn-font-size: 1.05rem;
    --bs-btn-border-radius: .9rem;
}

.btn-sm {
    --bs-btn-padding-x: .8rem;
    --bs-btn-padding-y: .38rem;
    --bs-btn-font-size: .85rem;
    --bs-btn-border-radius: .6rem;
}

.btn-pill {
    --bs-btn-border-radius: 50rem;
}

.btn:not(:disabled):not(.disabled):active {
    transform: translateY(1px);
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--kk-terracotta);
    --bs-btn-border-color: var(--kk-terracotta);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-terracotta-dark);
    --bs-btn-hover-border-color: var(--kk-terracotta-dark);
    --bs-btn-focus-shadow-rgb: 181, 83, 44;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kk-terracotta-deep);
    --bs-btn-active-border-color: var(--kk-terracotta-deep);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--kk-terracotta);
    --bs-btn-disabled-border-color: var(--kk-terracotta);
    box-shadow: 0 6px 16px -8px rgba(181, 83, 44, .65);
}

.btn-primary:hover {
    box-shadow: 0 10px 22px -10px rgba(143, 63, 31, .75);
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--kk-olive);
    --bs-btn-border-color: var(--kk-olive);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-olive-dark);
    --bs-btn-hover-border-color: var(--kk-olive-dark);
    --bs-btn-focus-shadow-rgb: 85, 107, 47;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kk-olive-deep);
    --bs-btn-active-border-color: var(--kk-olive-deep);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--kk-olive);
    --bs-btn-disabled-border-color: var(--kk-olive);
}

.btn-accent {
    --bs-btn-color: var(--kk-bark-deep);
    --bs-btn-bg: var(--kk-honey);
    --bs-btn-border-color: var(--kk-honey);
    --bs-btn-hover-color: var(--kk-bark-deep);
    --bs-btn-hover-bg: #EDB548;
    --bs-btn-hover-border-color: #EDB548;
    --bs-btn-focus-shadow-rgb: 227, 163, 43;
    --bs-btn-active-color: var(--kk-bark-deep);
    --bs-btn-active-bg: var(--kk-honey-dark);
    --bs-btn-active-border-color: var(--kk-honey-dark);
    --bs-btn-disabled-color: var(--kk-bark);
    --bs-btn-disabled-bg: var(--kk-honey);
    --bs-btn-disabled-border-color: var(--kk-honey);
    box-shadow: 0 6px 16px -8px rgba(195, 134, 26, .8);
}

.btn-outline-primary {
    --bs-btn-color: var(--kk-terracotta-dark);
    --bs-btn-border-color: var(--kk-terracotta);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-terracotta);
    --bs-btn-hover-border-color: var(--kk-terracotta);
    --bs-btn-focus-shadow-rgb: 181, 83, 44;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kk-terracotta-dark);
    --bs-btn-active-border-color: var(--kk-terracotta-dark);
    --bs-btn-disabled-color: var(--kk-terracotta);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--kk-terracotta);
    border-width: 2px;
}

.btn-outline-secondary {
    --bs-btn-color: var(--kk-olive-dark);
    --bs-btn-border-color: var(--kk-olive);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-olive);
    --bs-btn-hover-border-color: var(--kk-olive);
    --bs-btn-focus-shadow-rgb: 85, 107, 47;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kk-olive-dark);
    --bs-btn-active-border-color: var(--kk-olive-dark);
    --bs-btn-disabled-color: var(--kk-olive);
    --bs-btn-disabled-border-color: var(--kk-olive);
    border-width: 2px;
}

.btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: rgba(255, 255, 255, .75);
    --bs-btn-hover-color: var(--kk-bark-deep);
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    --bs-btn-active-color: var(--kk-bark-deep);
    --bs-btn-active-bg: var(--kk-wheat);
    border-width: 2px;
}

.btn-light {
    --bs-btn-color: var(--kk-bark-deep);
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--kk-line);
    --bs-btn-hover-color: var(--kk-bark-deep);
    --bs-btn-hover-bg: var(--kk-cream);
    --bs-btn-hover-border-color: var(--kk-line-strong);
    --bs-btn-active-bg: var(--kk-wheat);
    --bs-btn-active-border-color: var(--kk-line-strong);
}

.btn-link {
    --bs-btn-color: var(--kk-terracotta-dark);
    --bs-btn-hover-color: var(--kk-terracotta-deep);
    --bs-btn-active-color: var(--kk-terracotta-deep);
    --bs-btn-font-weight: 700;
}

.btn-whatsapp {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--kk-whatsapp);
    --bs-btn-border-color: var(--kk-whatsapp);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-whatsapp-dark);
    --bs-btn-hover-border-color: var(--kk-whatsapp-dark);
    --bs-btn-focus-shadow-rgb: 19, 128, 63;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0A5226;
    --bs-btn-active-border-color: #0A5226;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--kk-whatsapp);
    --bs-btn-disabled-border-color: var(--kk-whatsapp);
}

/* Loading state set by site.js on submit buttons */
.btn.is-loading {
    pointer-events: none;
    opacity: .85;
}

.btn.is-loading::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: .5em;
    vertical-align: -.15em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: kk-spin .7s linear infinite;
}

.btn.is-copied {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--kk-olive);
    --bs-btn-border-color: var(--kk-olive);
}

.btn-close:focus {
    box-shadow: var(--kk-ring);
}

/* Forms */
.form-label {
    font-weight: 700;
    font-size: .92rem;
    color: var(--kk-bark-deep);
    margin-bottom: .35rem;
}

.form-text {
    color: var(--kk-muted);
}

.form-control,
.form-select {
    border-color: var(--kk-line-strong);
    border-radius: .75rem;
    padding: .65rem .95rem;
    background-color: #fff;
    color: var(--kk-bark-deep);
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.form-select {
    padding-right: 2.5rem;
}

.form-control-lg,
.form-select-lg {
    padding: .85rem 1.1rem;
    border-radius: .9rem;
}

.form-control-sm,
.form-select-sm {
    padding: .4rem .75rem;
    border-radius: .6rem;
}

/* Placeholders carry format hints (05XX XXX XX XX, KK261016-4821): 5.4:1 on white, 5.0:1 on the cream search field. */
.form-control::placeholder {
    color: #776858;
    opacity: 1;
}

.form-control:hover,
.form-select:hover {
    border-color: #CBB58F;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--kk-terracotta-light);
    box-shadow: var(--kk-ring);
    background-color: #fff;
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
    background-color: var(--kk-cream);
}

.form-check-input {
    border-color: var(--kk-line-strong);
    width: 1.15em;
    height: 1.15em;
    margin-top: .2em;
}

.form-check-input:checked {
    background-color: var(--kk-terracotta);
    border-color: var(--kk-terracotta);
}

.form-check-input:focus {
    border-color: var(--kk-terracotta-light);
    box-shadow: var(--kk-ring);
}

.form-check-label {
    cursor: pointer;
}

.form-switch .form-check-input:focus {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23D9825F'/%3e%3c/svg%3e");
}

.input-group > .form-control,
.input-group > .form-select {
    border-radius: .75rem;
}

.input-group-text {
    background-color: var(--kk-cream);
    border-color: var(--kk-line-strong);
    color: var(--kk-muted);
    border-radius: .75rem;
}

.form-floating > .form-control,
.form-floating > .form-select {
    padding-top: 1.625rem;
    padding-bottom: .625rem;
}

/* ASP.NET Core validation hooks */
.field-validation-error,
.invalid-feedback {
    display: block;
    color: var(--kk-danger);
    font-size: .85rem;
    font-weight: 600;
    margin-top: .3rem;
}

.field-validation-valid {
    display: none;
}

.input-validation-error,
.form-control.input-validation-error,
.form-select.input-validation-error {
    border-color: var(--kk-danger);
    background-color: #FFFBFA;
}

.input-validation-error:focus {
    box-shadow: 0 0 0 .25rem rgba(179, 38, 30, .18);
}

.validation-summary-errors ul {
    margin: 0;
    padding-left: 1.1rem;
}

.validation-summary-valid {
    display: none;
}

/* Badges */
.badge {
    --bs-badge-font-weight: 800;
    --bs-badge-padding-x: .6em;
    --bs-badge-padding-y: .38em;
    --bs-badge-border-radius: 50rem;
    letter-spacing: .02em;
}

/* Cards */
.card {
    --bs-card-border-color: var(--kk-line);
    --bs-card-border-radius: var(--kk-radius-lg);
    --bs-card-inner-border-radius: calc(var(--kk-radius-lg) - 1px);
    --bs-card-cap-bg: var(--kk-cream);
    --bs-card-bg: #fff;
    --bs-card-spacer-y: 1.25rem;
    --bs-card-spacer-x: 1.25rem;
}

/* Accordion (FAQ) */
.accordion {
    --bs-accordion-color: var(--kk-bark);
    --bs-accordion-bg: #fff;
    --bs-accordion-border-color: var(--kk-line);
    --bs-accordion-border-radius: var(--kk-radius);
    --bs-accordion-inner-border-radius: calc(var(--kk-radius) - 1px);
    --bs-accordion-btn-padding-x: 1.25rem;
    --bs-accordion-btn-padding-y: 1.05rem;
    --bs-accordion-btn-color: var(--kk-bark-deep);
    --bs-accordion-btn-focus-box-shadow: var(--kk-ring);
    --bs-accordion-active-color: var(--kk-terracotta-deep);
    --bs-accordion-active-bg: var(--kk-cream);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237A6A5A' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238F3F1F' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

.accordion-item {
    margin-bottom: .75rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius) !important;
    overflow: hidden;
    box-shadow: var(--kk-shadow-sm);
}

.accordion-item:not(:first-of-type) {
    border-top: 1px solid var(--kk-line);
}

.accordion-button {
    font-weight: 700;
    font-size: 1.02rem;
}

.accordion-button:not(.collapsed) {
    box-shadow: inset 0 -1px 0 var(--kk-line);
}

.accordion-body {
    color: var(--kk-bark);
    line-height: 1.75;
}

/* Nav, tabs, pills */
.nav {
    --bs-nav-link-color: var(--kk-bark);
    --bs-nav-link-hover-color: var(--kk-terracotta-dark);
    --bs-nav-link-font-weight: 700;
}

.nav-tabs {
    --bs-nav-tabs-border-color: var(--kk-line);
    --bs-nav-tabs-link-active-color: var(--kk-terracotta-deep);
    --bs-nav-tabs-link-active-bg: #fff;
    --bs-nav-tabs-link-active-border-color: var(--kk-line) var(--kk-line) #fff;
    --bs-nav-tabs-link-hover-border-color: var(--kk-cream) var(--kk-cream) var(--kk-line);
}

.nav-pills {
    --bs-nav-pills-border-radius: 50rem;
    --bs-nav-pills-link-active-color: #fff;
    --bs-nav-pills-link-active-bg: var(--kk-terracotta);
}

/* Dropdown */
.dropdown-menu {
    --bs-dropdown-color: var(--kk-bark);
    --bs-dropdown-border-color: var(--kk-line);
    --bs-dropdown-border-radius: var(--kk-radius);
    --bs-dropdown-box-shadow: var(--kk-shadow-lg);
    --bs-dropdown-link-color: var(--kk-bark);
    --bs-dropdown-link-hover-color: var(--kk-terracotta-deep);
    --bs-dropdown-link-hover-bg: var(--kk-cream);
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-link-active-bg: var(--kk-terracotta);
    --bs-dropdown-item-padding-y: .5rem;
    --bs-dropdown-item-border-radius: .6rem;
    padding: .5rem;
    box-shadow: var(--bs-dropdown-box-shadow);
}

.dropdown-item {
    border-radius: .6rem;
    font-weight: 600;
}

/* Offcanvas & modal */
.offcanvas {
    --bs-offcanvas-bg: var(--kk-paper);
    --bs-offcanvas-color: var(--kk-bark);
    --bs-offcanvas-border-color: var(--kk-line);
    --bs-offcanvas-box-shadow: var(--kk-shadow-lg);
}

.offcanvas-header {
    border-bottom: 1px solid var(--kk-line);
    background: var(--kk-cream);
}

.offcanvas-title {
    font-family: var(--kk-font-heading);
    font-weight: 600;
    font-size: 1.3rem;
}

.modal {
    --bs-modal-border-radius: var(--kk-radius-xl);
    --bs-modal-inner-border-radius: calc(var(--kk-radius-xl) - 1px);
    --bs-modal-border-color: transparent;
    --bs-modal-box-shadow: var(--kk-shadow-lg);
    --bs-modal-bg: var(--kk-paper);
}

.modal-backdrop {
    --bs-backdrop-bg: #2A211A;
    --bs-backdrop-opacity: .55;
}

/* Pagination */
.pagination {
    --bs-pagination-color: var(--kk-bark);
    --bs-pagination-bg: #fff;
    --bs-pagination-border-color: var(--kk-line);
    --bs-pagination-hover-color: var(--kk-terracotta-deep);
    --bs-pagination-hover-bg: var(--kk-cream);
    --bs-pagination-hover-border-color: var(--kk-line-strong);
    --bs-pagination-focus-color: var(--kk-terracotta-deep);
    --bs-pagination-focus-bg: var(--kk-cream);
    --bs-pagination-focus-box-shadow: var(--kk-ring);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--kk-terracotta);
    --bs-pagination-active-border-color: var(--kk-terracotta);
    --bs-pagination-disabled-color: #B8A992;
    --bs-pagination-disabled-bg: var(--kk-cream);
    --bs-pagination-disabled-border-color: var(--kk-line);
    --bs-pagination-padding-x: .9rem;
    --bs-pagination-padding-y: .5rem;
    gap: .35rem;
    flex-wrap: wrap;
}

.pagination .page-link {
    border-radius: .65rem !important;
    font-weight: 700;
    min-width: 2.6rem;
    text-align: center;
}

.pagination .page-item:not(:first-child) .page-link {
    margin-left: 0;
}

/* Alerts */
.alert {
    --bs-alert-border-radius: var(--kk-radius);
    --bs-alert-padding-x: 1.1rem;
    --bs-alert-padding-y: .9rem;
    box-shadow: var(--kk-shadow-sm);
}

.alert-link {
    font-weight: 800;
}

/* Tables */
.table {
    --bs-table-color: var(--kk-bark);
    --bs-table-border-color: var(--kk-line);
    --bs-table-striped-bg: rgba(243, 230, 204, .35);
    --bs-table-hover-bg: rgba(243, 230, 204, .55);
    --bs-table-active-bg: rgba(243, 230, 204, .7);
}

.table > thead th {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kk-muted);
    font-weight: 800;
    border-bottom-width: 2px;
}

/* Breadcrumb */
.breadcrumb {
    --bs-breadcrumb-divider: "›";
    --bs-breadcrumb-divider-color: var(--kk-line-strong);
    --bs-breadcrumb-item-active-color: var(--kk-muted);
    --bs-breadcrumb-item-padding-x: .55rem;
    --bs-breadcrumb-margin-bottom: 0;
    font-size: .875rem;
    font-weight: 600;
}

.breadcrumb a {
    color: var(--kk-terracotta-dark);
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

/* Progress & list group */
.progress {
    --bs-progress-bg: rgba(59, 47, 37, .08);
    --bs-progress-bar-bg: var(--kk-terracotta);
    --bs-progress-border-radius: 50rem;
}

.list-group {
    --bs-list-group-border-color: var(--kk-line);
    --bs-list-group-action-hover-bg: var(--kk-cream);
    --bs-list-group-active-bg: var(--kk-terracotta);
    --bs-list-group-active-border-color: var(--kk-terracotta);
}

.spinner-border.text-primary {
    color: var(--kk-terracotta) !important;
}

/* 5. Site chrome ----------------------------------------------------------- */
.skip-link {
    position: fixed;
    top: -100px;
    left: 1rem;
    z-index: 2000;
    padding: .75rem 1.25rem;
    border-radius: 0 0 .75rem .75rem;
    background: var(--kk-bark-deep);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    transition: top .2s ease;
}

.skip-link:focus {
    top: 0;
    color: #fff;
}

.announcement-bar {
    position: relative;
    background: var(--kk-olive-dark);
    color: var(--kk-wheat);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .01em;
    text-align: center;
    padding: .5rem 0;
}

.announcement-bar::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--kk-terracotta), var(--kk-honey), var(--kk-terracotta));
}

.announcement-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
}

.announcement-inner .bi {
    color: var(--kk-honey);
}

.announcement-bar a {
    color: #fff;
}

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255, 253, 248, .94);
    border-bottom: 1px solid var(--kk-line);
    transition: box-shadow .3s ease, background-color .3s ease;
}

@supports (backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px)) {
    .site-header {
        background: rgba(255, 253, 248, .86);
        -webkit-backdrop-filter: saturate(1.4) blur(12px);
        backdrop-filter: saturate(1.4) blur(12px);
    }
}

.site-header.is-scrolled {
    box-shadow: 0 10px 30px -18px rgba(59, 47, 37, .45);
}

.header-main-inner {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-block: .65rem;
    transition: padding .3s var(--kk-ease);
}

@media (min-width: 992px) {
    .header-main-inner {
        gap: 1.5rem;
        padding-block: .95rem;
    }

    .site-header.is-scrolled .header-main-inner {
        padding-block: .5rem;
    }
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: var(--kk-bark-deep);
    text-decoration: none;
    flex-shrink: 0;
    margin-right: auto;
}

.brand:hover {
    color: var(--kk-terracotta-dark);
}

.brand-logo {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    object-fit: contain; /* an uploaded logo (site content "site.logo") need not be square */
    transition: width .3s var(--kk-ease), height .3s var(--kk-ease), transform .4s var(--kk-ease);
}

.brand:hover .brand-logo {
    transform: rotate(-6deg) scale(1.04);
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    min-width: 0;
}

.brand-name {
    font-family: var(--kk-font-heading);
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: -.02em;
    white-space: nowrap;
}

.brand-tagline {
    max-width: 230px;
    margin-top: .2rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--kk-muted);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 1199.98px) {
    .brand-tagline {
        display: none;
    }
}

@media (min-width: 992px) {
    .brand {
        margin-right: 0;
    }

    .brand-logo {
        width: 54px;
        height: 54px;
    }

    .brand-name {
        font-size: 1.55rem;
    }

    .site-header.is-scrolled .brand-logo {
        width: 44px;
        height: 44px;
    }
}

.brand-sm .brand-name {
    font-size: 1.2rem;
}

/* Header search */
.header-search {
    position: relative;
    align-items: center;
    flex: 1 1 auto;
    max-width: 560px;
    margin-inline: auto;
}

.header-search .form-control {
    width: 100%;
    padding: .7rem 5.25rem .7rem 2.85rem;
    border-radius: 50rem;
    border: 1.5px solid transparent;
    background-color: var(--kk-cream);
    font-weight: 600;
}

.header-search .form-control:hover {
    border-color: var(--kk-line-strong);
}

.header-search .form-control:focus {
    background-color: #fff;
    border-color: var(--kk-terracotta-light);
}

.header-search .form-control::-webkit-search-cancel-button {
    cursor: pointer;
}

.header-search-icon {
    position: absolute;
    left: 1.05rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--kk-muted);
    pointer-events: none;
    z-index: 2;
}

.header-search-btn {
    position: absolute;
    right: .3rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.header-search-btn:not(:disabled):not(.disabled):active {
    transform: translateY(-50%);
}

.header-search-mobile {
    display: flex;
    max-width: none;
}

.mobile-search-collapse .container {
    padding-bottom: .85rem;
}

/* Header actions */
.header-actions {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-shrink: 0;
}

.header-action {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-width: 44px;
    height: 44px;
    padding: 0 .55rem;
    border: 0;
    border-radius: 50rem;
    background: transparent;
    color: var(--kk-bark-deep);
    font-weight: 700;
    font-size: .9rem;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.header-action > .bi {
    font-size: 1.4rem;
    line-height: 1;
}

.header-action:hover,
.header-action[aria-expanded="true"] {
    background: var(--kk-cream);
    color: var(--kk-terracotta-dark);
}

.header-menu-toggle > .bi {
    font-size: 1.75rem;
}

@media (min-width: 1200px) {
    .header-action-labeled {
        padding: 0 .9rem 0 .7rem;
    }
}

.header-cart {
    background: var(--kk-terracotta-50);
    color: var(--kk-terracotta-deep);
}

.header-cart:hover {
    background: var(--kk-terracotta);
    color: #fff;
}

.cart-badge {
    position: absolute;
    top: 1px;
    left: 26px;
    min-width: 21px;
    height: 21px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50rem;
    border: 2px solid #fff;
    background: var(--kk-terracotta);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.header-cart .cart-badge {
    top: 2px;
    left: 24px;
}

.header-cart .header-action-label {
    margin-left: .2rem;
}

.header-cart:hover .cart-badge {
    background: var(--kk-honey);
    color: var(--kk-bark-deep);
}

.cart-badge.is-empty {
    display: none;
}

.cart-badge.is-bumping,
[data-cart-count].is-bumping {
    animation: kk-bump .55s var(--kk-ease);
}

.header-contact {
    align-items: center;
    gap: .6rem;
    padding: 0 .75rem 0 0;
    margin-right: .35rem;
    color: var(--kk-bark-deep);
    text-decoration: none;
    border-right: 1px solid var(--kk-line);
}

.header-contact-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--kk-olive-50);
    color: var(--kk-olive);
}

.header-contact-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.header-contact-text small {
    font-size: .7rem;
    font-weight: 700;
    color: var(--kk-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.header-contact-text strong {
    font-size: .95rem;
    font-variant-numeric: tabular-nums;
}

.header-contact:hover strong {
    color: var(--kk-terracotta-dark);
}

/* Desktop navigation */
.header-nav {
    border-top: 1px solid var(--kk-line);
}

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

.header-nav-list {
    gap: .15rem;
    flex-wrap: nowrap;
}

.header-nav .nav-link {
    position: relative;
    padding: .7rem .95rem;
    color: var(--kk-bark-deep);
    font-weight: 700;
    font-size: .95rem;
    white-space: nowrap;
}

.header-nav .nav-link::after {
    content: "";
    position: absolute;
    left: .95rem;
    right: .95rem;
    bottom: .35rem;
    height: 3px;
    border-radius: 3px;
    background: var(--kk-terracotta);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .3s var(--kk-ease);
}

.header-nav .nav-link.dropdown-toggle::after {
    /* Replace Bootstrap's caret with the underline; the caret is drawn with ::before. */
    display: block;
    border: 0;
    margin: 0;
    vertical-align: 0;
}

.header-nav .nav-link.dropdown-toggle {
    padding-right: 1.75rem;
}

.header-nav .nav-link.dropdown-toggle::before {
    content: "";
    position: absolute;
    right: .8rem;
    top: 50%;
    width: .45rem;
    height: .45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .25s ease;
}

.header-nav .nav-link.dropdown-toggle.show::before {
    transform: translateY(-25%) rotate(-135deg);
}

.header-nav .nav-link:hover,
.header-nav .nav-link:focus-visible,
.header-nav .nav-link.show {
    color: var(--kk-terracotta-dark);
}

.header-nav .nav-link:hover::after,
.header-nav .nav-link.active::after,
.header-nav .nav-link.show::after {
    transform: scaleX(1);
}

.header-nav .nav-link.active {
    color: var(--kk-terracotta-dark);
}

.header-nav-extra {
    flex-shrink: 0;
}

.header-perk {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .3rem .85rem;
    border-radius: 50rem;
    background: var(--kk-olive-50);
    color: var(--kk-olive-dark);
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
}

.header-perk .bi {
    color: var(--kk-olive);
    font-size: 1rem;
}

@media (max-width: 1199.98px) {
    .header-nav-extra {
        display: none;
    }
}

/* Mega menu */
.mega-menu {
    width: min(620px, 92vw);
    padding: 1.15rem;
    border-radius: var(--kk-radius-lg);
    margin-top: .35rem !important;
}

.mega-menu.show {
    animation: kk-drop .22s var(--kk-ease) backwards;
}

.mega-menu-head {
    padding: .1rem .5rem .85rem;
    border-bottom: 1px dashed var(--kk-line-strong);
    margin-bottom: .75rem;
}

.mega-menu-title {
    margin: 0;
    font-family: var(--kk-font-heading);
    font-weight: 600;
    font-size: 1.15rem;
    color: var(--kk-bark-deep);
}

.mega-menu-lead {
    margin: .15rem 0 0;
    font-size: .85rem;
    color: var(--kk-muted);
}

.mega-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
}

.mega-menu-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .55rem .65rem;
    white-space: normal;
}

.mega-menu-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--kk-cream);
    font-size: 1.35rem;
    flex-shrink: 0;
    transition: transform .25s var(--kk-ease), background-color .2s ease;
}

.mega-menu-item:hover .mega-menu-icon,
.mega-menu-item:focus .mega-menu-icon {
    transform: rotate(-8deg) scale(1.08);
    background: #fff;
}

.mega-menu-item.active .mega-menu-icon {
    background: rgba(255, 255, 255, .2);
}

.mega-menu-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.mega-menu-name {
    font-weight: 700;
}

.mega-menu-count {
    font-size: .75rem;
    font-weight: 600;
    color: var(--kk-muted);
}

.mega-menu-item.active .mega-menu-count {
    color: rgba(255, 255, 255, .85);
}

.mega-menu-empty {
    padding: .5rem;
    color: var(--kk-muted);
    margin: 0;
}

.mega-menu-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .85rem;
    padding: .85rem .5rem 0;
    border-top: 1px dashed var(--kk-line-strong);
}

.mega-menu-total {
    opacity: .85;
    font-weight: 600;
}

.mega-menu-link {
    font-size: .85rem;
    font-weight: 700;
    color: var(--kk-olive-dark);
    text-decoration: none;
}

.mega-menu-link:hover {
    color: var(--kk-terracotta-dark);
    text-decoration: underline;
}

/* Mobile menu */
.mobile-menu {
    --bs-offcanvas-width: min(360px, 88vw);
}

.mobile-menu .offcanvas-body {
    padding-bottom: 2rem;
}

.mobile-nav {
    margin: 0 0 1.25rem;
}

.mobile-nav-link {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .75rem .85rem;
    border-radius: .85rem;
    color: var(--kk-bark-deep);
    font-weight: 700;
    font-size: 1.05rem;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.mobile-nav-link .bi {
    font-size: 1.2rem;
    color: var(--kk-terracotta);
    width: 1.5rem;
    text-align: center;
}

.mobile-nav-link:hover,
.mobile-nav-link.active {
    background: var(--kk-cream);
    color: var(--kk-terracotta-dark);
}

.mobile-nav-link.active {
    box-shadow: inset 3px 0 0 var(--kk-terracotta);
}

.mobile-menu-heading {
    margin: 1.25rem 0 .6rem;
    padding: 0 .85rem;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kk-muted);
}

.mobile-cat-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
}

.mobile-cat-link {
    display: flex;
    align-items: center;
    gap: .5rem;
    height: 100%;
    padding: .6rem .7rem;
    border: 1px solid var(--kk-line);
    border-radius: .85rem;
    background: #fff;
    color: var(--kk-bark-deep);
    font-weight: 700;
    font-size: .9rem;
    line-height: 1.2;
    text-decoration: none;
}

.mobile-cat-link:hover,
.mobile-cat-link.active {
    border-color: var(--kk-terracotta-light);
    background: var(--kk-terracotta-50);
    color: var(--kk-terracotta-deep);
}

.mobile-cat-icon {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.mobile-cat-name {
    flex: 1 1 auto;
    min-width: 0;
}

.mobile-cat-count {
    font-size: .72rem;
    color: var(--kk-muted);
    font-weight: 700;
}

.mobile-menu-contact {
    margin-top: 1.5rem;
    padding: 1.1rem;
    border-radius: var(--kk-radius);
    background: var(--kk-cream);
    border: 1px solid var(--kk-line);
}

.mobile-menu-contact .mobile-menu-heading {
    margin-top: 0;
    padding: 0;
}

.mobile-menu-hours {
    margin: .75rem 0 0;
    font-size: .85rem;
    color: var(--kk-muted);
}

/* Flash messages */
.flash-stack {
    padding-top: 1rem;
}

.flash-stack .alert:last-child {
    margin-bottom: 0;
}

.flash-alert {
    animation: kk-drop .35s var(--kk-ease) backwards;
}

/* 6. Sections & headings --------------------------------------------------- */
.section {
    position: relative;
    padding-block: clamp(3rem, 2rem + 4vw, 6rem);
}

.section-sm {
    position: relative;
    padding-block: clamp(2rem, 1.5rem + 2vw, 3.5rem);
}

.section-alt {
    background-color: var(--kk-cream);
}

.section-dark {
    position: relative;
    background-color: var(--kk-olive-dark);
    background-image:
        radial-gradient(900px 420px at 100% 0%, rgba(227, 163, 43, .16), transparent 60%),
        radial-gradient(700px 380px at 0% 100%, rgba(181, 83, 44, .2), transparent 60%);
    color: rgba(251, 246, 236, .86);
}

.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4, .section-dark h5, .section-dark h6,
.section-dark .h1, .section-dark .h2, .section-dark .h3, .section-dark .h4,
.section-dark .section-title {
    color: #fff;
}

.section-dark .eyebrow {
    color: var(--kk-honey-light);
}

.section-dark .section-lead,
.section-dark .lead {
    color: rgba(251, 246, 236, .78);
}

.section-dark .text-muted,
.section-dark .text-body-secondary {
    color: rgba(251, 246, 236, .78) !important;
}

.section-dark a:not(.btn) {
    color: var(--kk-honey-light);
}

.section-dark a:not(.btn):hover {
    color: #fff;
}

/* Light cards placed on a dark section keep their normal text colours. */
.section-dark :is(.product-card, .producer-card, .step, .category-tile, .card, .review-item, .form-section, .order-summary, .iban-card, .buy-box, .accordion) {
    color: var(--kk-bark);
}

.section-dark :is(.product-card, .producer-card, .step, .category-tile, .card, .review-item, .form-section, .order-summary, .iban-card, .buy-box, .accordion) :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
    color: var(--kk-bark-deep);
}

.section-dark :is(.product-card, .producer-card, .step, .category-tile, .card, .review-item, .form-section, .order-summary, .iban-card, .buy-box, .accordion) a:not(.btn) {
    color: var(--kk-terracotta-dark);
}

.section-dark :is(.product-card, .producer-card, .step, .category-tile, .card, .review-item, .form-section, .order-summary, .iban-card, .buy-box, .accordion) .text-muted {
    color: var(--kk-muted) !important;
}

.section-pattern {
    position: relative;
    background-color: var(--kk-wheat);
    background-image:
        linear-gradient(rgba(243, 230, 204, .82), rgba(243, 230, 204, .82)),
        var(--kk-kilim-pattern);
    background-size: auto, 96px 96px;
}

/* Small text on wheat + pattern: terracotta is 4.0:1 and muted 4.2:1 there; the darker shades stay ≥ 5:1. */
.section-pattern .eyebrow {
    color: var(--kk-terracotta-dark);
}

.section-pattern .section-lead {
    color: var(--kk-muted-strong);
}

.section-heading {
    max-width: 720px;
    margin-bottom: clamp(1.75rem, 1.25rem + 2vw, 3rem);
}

.section-heading.text-center {
    margin-inline: auto;
}

.section-heading.text-center .eyebrow {
    justify-content: center;
}

.section-heading.text-center .eyebrow::after {
    content: "";
    width: 1.75rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    opacity: .7;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .75rem;
    font-family: var(--kk-font-body);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--kk-terracotta);
}

.eyebrow::before {
    content: "";
    width: 1.75rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    opacity: .7;
}

.section-title {
    margin-bottom: .75rem;
    font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.65rem);
}

.section-title em {
    font-style: italic;
    color: var(--kk-terracotta);
}

.section-lead {
    margin-bottom: 0;
    font-size: clamp(1.02rem, .98rem + .3vw, 1.18rem);
    color: var(--kk-muted);
}

.kilim-divider {
    display: block;
    height: 14px;
    width: 100%;
    border: 0;
    margin: 0;
    opacity: 1;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
}

.kilim-divider.is-narrow {
    max-width: 180px;
    height: 10px;
    margin-inline: auto;
    border-radius: 10px;
}

/* 7. Home ------------------------------------------------------------------ */

/* Hero */
.hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding-block: clamp(2.75rem, 1.5rem + 5vw, 6.5rem) clamp(3.5rem, 2rem + 5vw, 7rem);
    background:
        radial-gradient(1100px 560px at 88% 12%, rgba(227, 163, 43, .3), transparent 62%),
        radial-gradient(900px 520px at 6% 96%, rgba(181, 83, 44, .16), transparent 60%),
        linear-gradient(180deg, #FCF4E4 0%, #F6E6C8 100%);
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: var(--kk-grain);
    opacity: .45;
    mix-blend-mode: multiply;
    pointer-events: none;
}

.hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 16px;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
}

.hero-content {
    position: relative;
    z-index: 1;
}

.hero-content > * {
    animation: kk-rise .8s var(--kk-ease) both;
}

.hero-content > :nth-child(2) { animation-delay: .08s; }
.hero-content > :nth-child(3) { animation-delay: .16s; }
.hero-content > :nth-child(4) { animation-delay: .24s; }
.hero-content > :nth-child(5) { animation-delay: .32s; }
.hero-content > :nth-child(6) { animation-delay: .4s; }

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.15rem;
    padding: .4rem .95rem .4rem .7rem;
    border-radius: 50rem;
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(181, 83, 44, .18);
    box-shadow: var(--kk-shadow-sm);
    color: var(--kk-terracotta-deep);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.hero-eyebrow::before {
    content: "";
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: var(--kk-olive);
    box-shadow: 0 0 0 0 rgba(85, 107, 47, .5);
    animation: kk-ping 2.2s ease-out infinite;
    flex-shrink: 0;
}

.hero-title {
    margin-bottom: 1.1rem;
    font-size: clamp(2.35rem, 1.5rem + 3.9vw, 4.4rem);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.025em;
    color: var(--kk-bark-deep);
}

.hero-title em,
.hero-title .highlight {
    font-style: italic;
    font-weight: 600;
    color: var(--kk-terracotta);
    background: linear-gradient(transparent 64%, rgba(227, 163, 43, .42) 64%, rgba(227, 163, 43, .42) 90%, transparent 90%);
    padding-inline: .05em;
}

.hero-subtitle {
    max-width: 36rem;
    margin-bottom: 1.75rem;
    font-size: clamp(1.05rem, .98rem + .45vw, 1.3rem);
    line-height: 1.6;
    color: #5E4E40;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.75rem;
}

.hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hero-badges li {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .38rem .8rem;
    border-radius: 50rem;
    background: rgba(255, 255, 255, .62);
    border: 1px solid var(--kk-line);
    color: var(--kk-bark-deep);
    font-size: .85rem;
    font-weight: 700;
}

.hero-badges li .bi {
    color: var(--kk-olive);
}

.hero-art {
    position: relative;
    z-index: 0;
    animation: kk-pop 1s var(--kk-ease) .2s both;
}

.hero-art::before {
    content: "";
    position: absolute;
    inset: 6% 4% 2% 6%;
    z-index: -1;
    border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%;
    background: radial-gradient(circle at 40% 35%, rgba(255, 255, 255, .8), rgba(243, 230, 204, 0) 70%);
    filter: blur(6px);
}

.hero-art img,
.hero-art svg {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
    margin-inline: auto;
    filter: drop-shadow(0 30px 40px rgba(59, 47, 37, .18));
}

@media (prefers-reduced-motion: no-preference) {
    .hero-art img,
    .hero-art svg {
        animation: kk-float 7s ease-in-out 1.2s infinite;
    }
}

@media (max-width: 991.98px) {
    .hero-art {
        margin-top: 2.5rem;
    }

    .hero-art img,
    .hero-art svg {
        max-width: 480px;
    }
}

/* Trust bar */
.trust-bar {
    position: relative;
    padding-block: 1.5rem;
    background: #fff;
    border-bottom: 1px solid var(--kk-line);
}

.trust-bar:has(> .trust-item),
.trust-bar > .container:has(> .trust-item) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
}

@media (min-width: 992px) {
    .trust-bar:has(> .trust-item),
    .trust-bar > .container:has(> .trust-item) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.trust-item {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    color: var(--kk-bark-deep);
    font-weight: 700;
    font-size: .92rem;
    line-height: 1.3;
}

.trust-item > .bi,
.trust-item .trust-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--kk-olive-50);
    color: var(--kk-olive);
    font-size: 1.35rem;
    transition: transform .3s var(--kk-ease);
}

.trust-item:nth-child(4n+2) > .bi,
.trust-item:nth-child(4n+2) .trust-icon {
    background: var(--kk-honey-50);
    color: var(--kk-honey-dark);
}

.trust-item:nth-child(4n+3) > .bi,
.trust-item:nth-child(4n+3) .trust-icon {
    background: var(--kk-terracotta-50);
    color: var(--kk-terracotta);
}

.trust-item:hover > .bi,
.trust-item:hover .trust-icon {
    transform: rotate(-6deg) scale(1.06);
}

.trust-item small,
.trust-item .trust-text small {
    display: block;
    font-weight: 600;
    font-size: .8rem;
    color: var(--kk-muted);
}

/* Category tiles */
.category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

@media (min-width: 576px) {
    .category-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .category-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 1.1rem;
    }
}

.category-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 100%;
    padding: 1.4rem 1rem 1.2rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    color: var(--kk-bark-deep);
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    transition: transform .3s var(--kk-ease), box-shadow .3s var(--kk-ease), border-color .3s ease;
}

.category-tile::before {
    content: "";
    position: absolute;
    inset: auto -30% -55% -30%;
    height: 80%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(227, 163, 43, .18), transparent 70%);
    opacity: 0;
    transition: opacity .35s ease;
}

.category-tile:hover,
.category-tile:focus-visible {
    transform: translateY(-6px);
    border-color: var(--kk-terracotta-light);
    box-shadow: var(--kk-shadow-lg);
    color: var(--kk-terracotta-deep);
}

.category-tile:hover::before {
    opacity: 1;
}

.category-icon {
    position: relative;
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    margin-bottom: .35rem;
    border-radius: 24px;
    background: var(--kk-cream);
    font-size: 2.3rem;
    line-height: 1;
    transition: transform .4s var(--kk-ease);
}

.category-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.category-tile:nth-child(5n+2) .category-icon { background: var(--kk-honey-50); }
.category-tile:nth-child(5n+3) .category-icon { background: var(--kk-olive-50); }
.category-tile:nth-child(5n+4) .category-icon { background: var(--kk-terracotta-50); }
.category-tile:nth-child(5n+5) .category-icon { background: #F1EEE4; }

.category-tile:hover .category-icon {
    transform: translateY(-3px) rotate(-6deg) scale(1.06);
}

.category-name {
    position: relative;
    font-family: var(--kk-font-heading);
    font-weight: 600;
    font-size: 1.08rem;
    line-height: 1.25;
}

.category-count {
    position: relative;
    font-size: .78rem;
    font-weight: 700;
    color: var(--kk-muted);
}

/* Steps */
.steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    counter-reset: kk-step;
}

@media (min-width: 576px) {
    .steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .steps {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1.5rem;
    }
}

.step {
    position: relative;
    padding: 1.75rem 1.4rem 1.5rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    box-shadow: var(--kk-shadow-sm);
    transition: transform .3s var(--kk-ease), box-shadow .3s ease;
}

.step:hover {
    transform: translateY(-4px);
    box-shadow: var(--kk-shadow);
}

@media (min-width: 992px) {
    .step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 2.95rem;
        right: calc(-1.5rem - 1px);
        width: 1.5rem;
        border-top: 2px dashed var(--kk-line-strong);
    }
}

.step-number {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 1rem;
    border-radius: 18px;
    background: var(--kk-terracotta);
    color: #fff;
    font-family: var(--kk-font-heading);
    font-size: 1.45rem;
    font-weight: 700;
    box-shadow: 0 10px 20px -10px rgba(181, 83, 44, .8);
    transform: rotate(-4deg);
}

.step:nth-child(4n+2) .step-number { background: var(--kk-olive); box-shadow: 0 10px 20px -10px rgba(85, 107, 47, .8); }
.step:nth-child(4n+3) .step-number { background: var(--kk-honey); color: var(--kk-bark-deep); box-shadow: 0 10px 20px -10px rgba(195, 134, 26, .8); }
.step:nth-child(4n+4) .step-number { background: var(--kk-bark); box-shadow: 0 10px 20px -10px rgba(59, 47, 37, .8); }

.step h3,
.step .h5,
.step h4 {
    font-size: 1.2rem;
    margin-bottom: .45rem;
}

.step p {
    margin-bottom: 0;
    color: var(--kk-muted);
    font-size: .95rem;
}

/* Testimonials */
.testimonial-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.75rem 1.5rem 1.4rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    box-shadow: var(--kk-shadow-sm);
    transition: transform .3s var(--kk-ease), box-shadow .3s ease;
}

.testimonial-card:hover {
    transform: translateY(-4px) rotate(-.3deg);
    box-shadow: var(--kk-shadow);
}

.testimonial-card::before {
    content: "\201C";
    position: absolute;
    top: -.15rem;
    right: 1.1rem;
    font-family: var(--kk-font-heading);
    font-size: 5.5rem;
    line-height: 1;
    color: var(--kk-wheat);
    pointer-events: none;
}

.stars {
    position: relative;
    display: inline-flex;
    gap: .12rem;
    color: var(--kk-honey-dark);
    font-size: 1rem;
    letter-spacing: .04em;
}

.testimonial-card .stars {
    margin-bottom: .85rem;
}

.testimonial-text {
    position: relative;
    flex: 1 1 auto;
    margin-bottom: 1.15rem;
    font-family: var(--kk-font-heading);
    font-size: 1.08rem;
    font-weight: 400;
    font-style: italic;
    line-height: 1.6;
    color: var(--kk-bark-deep);
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--kk-line-strong);
    font-weight: 800;
    font-size: .92rem;
    color: var(--kk-bark-deep);
}

.testimonial-author small,
.testimonial-author span {
    font-weight: 600;
    color: var(--kk-muted);
}

.section-dark .testimonial-card {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .14);
    color: rgba(251, 246, 236, .86);
}

.section-dark .testimonial-card::before { color: rgba(255, 255, 255, .12); }
.section-dark .testimonial-text,
.section-dark .testimonial-author { color: #fff; }
.section-dark .testimonial-author { border-top-color: rgba(255, 255, 255, .18); }
.section-dark .stars { color: var(--kk-honey); }

/* Stars used by rating partials */
.bi-star-fill,
.bi-star-half {
    color: var(--kk-honey-dark);
}

.stars .bi-star,
.product-rating .bi-star,
.review-item .bi-star {
    color: #D8C8A8;
}

/* Campaign banner + countdown */
.campaign-banner {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(1.75rem, 1rem + 3.5vw, 3.75rem);
    border-radius: var(--kk-radius-xl);
    background:
        radial-gradient(520px 320px at 92% 8%, rgba(227, 163, 43, .55), transparent 65%),
        radial-gradient(420px 300px at 0% 100%, rgba(62, 79, 34, .5), transparent 70%),
        linear-gradient(118deg, var(--kk-terracotta-deep) 0%, var(--kk-terracotta) 55%, #C66A36 100%);
    color: rgba(255, 255, 255, .92);
    box-shadow: var(--kk-shadow-lg);
}

.campaign-banner::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 12px;
    z-index: -1;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
    filter: brightness(1.15) saturate(1.1);
    opacity: .9;
}

.campaign-banner::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -120px;
    z-index: -1;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    border: 36px solid rgba(255, 255, 255, .07);
}

.campaign-banner h2,
.campaign-banner h3,
.campaign-banner .section-title,
.campaign-banner .h2 {
    color: #fff;
}

.campaign-banner .eyebrow {
    color: var(--kk-honey-50);
}

.campaign-banner p {
    color: rgba(255, 255, 255, .88);
}

.campaign-banner .text-muted {
    color: rgba(255, 255, 255, .75) !important;
}

.campaign-banner .order-code,
.campaign-banner .campaign-code {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .6);
    color: #fff;
}

.countdown {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.countdown-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 4.3rem;
    padding: .65rem .55rem .55rem;
    border-radius: var(--kk-radius);
    border: 1px solid var(--kk-line);
    background: #fff;
    color: var(--kk-bark-deep);
    text-align: center;
    line-height: 1.1;
    box-shadow: var(--kk-shadow-sm);
}

.countdown-unit [data-days],
.countdown-unit [data-hours],
.countdown-unit [data-minutes],
.countdown-unit [data-seconds] {
    display: block;
    font-family: var(--kk-font-heading);
    font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.2rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.05;
}

/* Compact countdown inside cards / narrow columns (e.g. the order-completed deadline): one row, no wrapping. */
.countdown.small {
    flex-wrap: nowrap;
    justify-content: center;
    gap: .35rem;
}

.countdown.small .countdown-unit {
    flex: 1 1 0;
    min-width: 0;
    max-width: 4rem;
    padding: .4rem .25rem .35rem;
}

.countdown.small .countdown-unit [data-days],
.countdown.small .countdown-unit [data-hours],
.countdown.small .countdown-unit [data-minutes],
.countdown.small .countdown-unit [data-seconds] {
    font-size: 1.25rem;
}

.countdown-unit > :not([data-days]):not([data-hours]):not([data-minutes]):not([data-seconds]) {
    margin-top: .25rem;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .78;
}

.campaign-banner .countdown-unit,
.section-dark .countdown-unit {
    background: rgba(255, 255, 255, .13);
    border-color: rgba(255, 255, 255, .28);
    color: #fff;
    box-shadow: none;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

/* Newsletter box & form */
.newsletter-box {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(1.75rem, 1rem + 3vw, 3.5rem);
    border: 1px solid #EBD3A6;
    border-radius: var(--kk-radius-xl);
    background:
        radial-gradient(600px 300px at 100% 0%, rgba(255, 255, 255, .65), transparent 60%),
        linear-gradient(135deg, #F8EDD6 0%, var(--kk-wheat) 55%, #F1D9A8 100%);
    box-shadow: var(--kk-shadow);
}

.newsletter-box::after {
    content: "";
    position: absolute;
    right: -40px;
    bottom: -40px;
    z-index: -1;
    width: 260px;
    height: 260px;
    background: var(--kk-kilim-pattern) repeat 0 0 / 64px 64px;
    opacity: .55;
    border-radius: 50%;
    -webkit-mask-image: radial-gradient(circle, #000 35%, transparent 70%);
    mask-image: radial-gradient(circle, #000 35%, transparent 70%);
}

.newsletter-box h2,
.newsletter-box .section-title {
    margin-bottom: .5rem;
}

.newsletter-form {
    position: relative;
    max-width: 560px;
}

.newsletter-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.newsletter-input-group {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.newsletter-input-group .form-control {
    flex: 1 1 220px;
    min-width: 0;
    border-radius: 50rem;
    padding: .75rem 1.2rem;
}

.newsletter-submit {
    flex: 0 0 auto;
    --bs-btn-border-radius: 50rem;
    --bs-btn-padding-x: 1.4rem;
}

@media (max-width: 419.98px) {
    .newsletter-submit {
        flex: 1 1 100%;
    }
}

.newsletter-perk {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: .85rem 0 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--kk-terracotta-deep);
}

.newsletter-perk .bi {
    font-size: 1.1rem;
    line-height: 1.3;
}

.coupon-code {
    display: inline-block;
    padding: .05rem .5rem;
    border: 1.5px dashed currentColor;
    border-radius: .45rem;
    background: rgba(255, 255, 255, .7);
    font-family: var(--kk-font-mono);
    font-weight: 800;
    letter-spacing: .06em;
}

.newsletter-note {
    margin: .6rem 0 0;
    font-size: .78rem;
    line-height: 1.5;
    color: var(--kk-muted);
}

.newsletter-note a {
    color: inherit;
    font-weight: 700;
}

.newsletter-message {
    margin: .6rem 0 0;
    font-size: .88rem;
    font-weight: 700;
}

.newsletter-message:empty {
    display: none;
}

.newsletter-message.is-success { color: var(--kk-success); }
.newsletter-message.is-error { color: var(--kk-danger); }

/* Social-proof stats */
.stat-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

@media (min-width: 768px) {
    .stat-strip {
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    }
}

.stat {
    position: relative;
    padding: 1.25rem 1rem;
    border-radius: var(--kk-radius-lg);
    background: #fff;
    border: 1px solid var(--kk-line);
    text-align: center;
}

.stat strong,
.stat .stat-value {
    display: block;
    font-family: var(--kk-font-heading);
    font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--kk-terracotta);
    font-variant-numeric: tabular-nums;
}

.stat:nth-child(3n+2) strong,
.stat:nth-child(3n+2) .stat-value { color: var(--kk-olive); }
.stat:nth-child(3n+3) strong,
.stat:nth-child(3n+3) .stat-value { color: var(--kk-honey-dark); }

.stat > span,
.stat > small,
.stat .stat-label {
    display: block;
    margin-top: .45rem;
    font-size: .88rem;
    font-weight: 700;
    color: var(--kk-muted);
}

.section-dark .stat,
.section-pattern .stat {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .16);
}

.section-pattern .stat {
    background: rgba(255, 255, 255, .78);
    border-color: var(--kk-line);
}

.section-dark .stat strong,
.section-dark .stat .stat-value { color: var(--kk-honey); }
.section-dark .stat > span,
.section-dark .stat > small,
.section-dark .stat .stat-label { color: rgba(251, 246, 236, .78); }

/* 8. Product card ---------------------------------------------------------- */
.product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    overflow: hidden;
    transition: transform .35s var(--kk-ease), box-shadow .35s var(--kk-ease), border-color .3s ease;
}

.product-card:hover,
.product-card:focus-within {
    transform: translateY(-5px);
    border-color: var(--kk-line-strong);
    box-shadow: var(--kk-shadow-lg);
}

.product-media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--kk-cream);
}

.product-media > a {
    display: block;
    width: 100%;
    height: 100%;
}

.product-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--kk-ease), filter .3s ease;
}

.product-card:hover .product-media img {
    transform: scale(1.06);
}

.product-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(42, 33, 26, .28));
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}

@media (hover: hover) {
    .product-card:hover .product-media::after {
        opacity: 1;
    }
}

.product-emoji {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-size: clamp(3.5rem, 2.5rem + 4vw, 5.25rem);
    line-height: 1;
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(227, 163, 43, .28), transparent 60%),
        linear-gradient(135deg, #FDF3DF, #F3E3C1);
    transition: transform .6s var(--kk-ease);
    user-select: none;
}

.product-card:hover .product-emoji {
    transform: scale(1.08) rotate(-4deg);
}

/* Varied soft tiles for emoji products (cards placed directly in a grid or inside .col wrappers) */
.product-card:nth-child(5n+2) .product-emoji,
:nth-child(5n+2) > .product-card .product-emoji {
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(181, 83, 44, .2), transparent 60%),
        linear-gradient(135deg, #FBEDE5, #F2D6C6);
}

.product-card:nth-child(5n+3) .product-emoji,
:nth-child(5n+3) > .product-card .product-emoji {
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(85, 107, 47, .22), transparent 60%),
        linear-gradient(135deg, #EEF1E4, #D9E0C4);
}

.product-card:nth-child(5n+4) .product-emoji,
:nth-child(5n+4) > .product-card .product-emoji {
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(163, 177, 138, .35), transparent 60%),
        linear-gradient(135deg, #F4F1E6, #E4E2CC);
}

.product-card:nth-child(5n+5) .product-emoji,
:nth-child(5n+5) > .product-card .product-emoji {
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .85), transparent 55%),
        radial-gradient(circle at 75% 85%, rgba(195, 134, 26, .3), transparent 60%),
        linear-gradient(135deg, #FCEFD2, #F1D59C);
}

.product-badges {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    pointer-events: none;
}

.badge-tag {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .32rem .65rem;
    border-radius: 50rem;
    background: var(--kk-bark);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
    box-shadow: 0 4px 12px -4px rgba(42, 33, 26, .45);
    white-space: nowrap;
}

.badge-new-harvest { background: var(--kk-olive); }
.badge-bestseller { background: var(--kk-terracotta); }
.badge-limited { background: #5B2A3F; }
.badge-handmade { background: var(--kk-honey); color: var(--kk-bark-deep); }
.badge-seasonal { background: #2F6B5E; }

/* Decorative glyphs with empty alternative text (ignored by screen readers; dropped by browsers without support). */
.badge-new-harvest::before { content: "🌱" / ""; }
.badge-bestseller::before { content: "★" / ""; }
.badge-limited::before { content: "⏳" / ""; }
.badge-handmade::before { content: "🤲" / ""; }
.badge-seasonal::before { content: "☀" / ""; }

.badge-tag::before {
    font-size: .85em;
    letter-spacing: 0;
}

.badge-discount {
    display: inline-flex;
    align-items: center;
    padding: .34rem .7rem .34rem .6rem;
    border-radius: .45rem .9rem .9rem .45rem;
    background: #A52A17;
    color: #fff;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1.1;
    box-shadow: 0 6px 14px -6px rgba(165, 42, 23, .8);
    white-space: nowrap;
}

.badge-tag.badge-discount {
    text-transform: none;
}

.product-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: .3rem;
    padding: 1rem 1.1rem 1.15rem;
}

.product-origin {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--kk-olive);
}

.product-title {
    margin: 0;
    font-family: var(--kk-font-heading);
    font-size: 1.12rem;
    font-weight: 600;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}

.product-title a {
    color: var(--kk-bark-deep);
    text-decoration: none;
}

.product-title a:hover {
    color: var(--kk-terracotta-dark);
}

.product-unit {
    font-size: .85rem;
    color: var(--kk-muted);
}

.product-rating {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .82rem;
    font-weight: 700;
    color: var(--kk-muted);
}

.product-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .2rem .55rem;
    margin-top: auto;
    padding-top: .5rem;
}

.price-current {
    font-family: var(--kk-font-heading);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--kk-terracotta-dark);
    font-variant-numeric: tabular-nums;
}

.price-old del {
    text-decoration: none;
}

.price-old {
    font-size: .92rem;
    font-weight: 600;
    color: var(--kk-muted);
    text-decoration: line-through;
    text-decoration-color: rgba(165, 42, 23, .6);
    text-decoration-thickness: 2px;
}

.product-actions {
    display: flex;
    gap: .5rem;
    margin-top: .8rem;
}

.product-actions > form,
.product-actions > .btn,
.product-actions > a {
    flex: 1 1 auto;
}

.product-actions form .btn {
    width: 100%;
}

.product-card .product-actions .btn-primary {
    transition: background-color .25s ease, box-shadow .25s ease, transform .25s var(--kk-ease);
}

.product-card:hover .product-actions .btn-primary {
    background: var(--kk-terracotta-dark);
    border-color: var(--kk-terracotta-dark);
    box-shadow: 0 10px 20px -10px rgba(143, 63, 31, .85);
}

.stock-low {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: #A52A17;
    font-size: .8rem;
    font-weight: 800;
}

@media (prefers-reduced-motion: no-preference) {
    .stock-low {
        animation: kk-soft-pulse 2.4s ease-in-out infinite;
    }
}

.stock-out {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: var(--kk-muted);
    font-size: .8rem;
    font-weight: 800;
}

.product-card.is-out-of-stock .product-media img,
.product-card.is-out-of-stock .product-emoji,
.product-card:has(.stock-out) .product-media img,
.product-card:has(.stock-out) .product-emoji {
    filter: grayscale(.65) opacity(.85);
}

/* Two-column product grids on phones */
@media (max-width: 575.98px) {
    .product-body {
        padding: .85rem .8rem 1rem;
    }

    .product-title {
        font-size: 1rem;
    }

    .price-current {
        font-size: 1.22rem;
    }

    .product-badges {
        top: .55rem;
        left: .55rem;
    }

    .badge-tag {
        font-size: .64rem;
        padding: .28rem .55rem;
    }

    .product-actions .btn {
        --bs-btn-padding-x: .5rem;
        --bs-btn-font-size: .88rem;
    }

    .announcement-bar {
        font-size: .8rem;
    }
}

/* 9. Product detail -------------------------------------------------------- */
.product-gallery {
    position: relative;
}

@media (min-width: 992px) {
    .product-gallery {
        position: sticky;
        top: calc(var(--kk-header-h) + 1.25rem);
    }
}

.gallery-main {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-xl);
    background: var(--kk-cream);
    box-shadow: var(--kk-shadow);
}

@media (min-width: 768px) {
    .gallery-main {
        aspect-ratio: 4 / 3.4;
    }
}

.gallery-main img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .3s ease;
}

.gallery-main img.is-swapping {
    opacity: .35;
}

.gallery-main .product-emoji {
    font-size: clamp(6rem, 4rem + 8vw, 10rem);
}

.gallery-main .product-badges {
    top: 1rem;
    left: 1rem;
}

.gallery-thumbs {
    display: flex;
    gap: .6rem;
    margin-top: .8rem;
    padding-bottom: .25rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.gallery-thumbs button,
.gallery-thumbs [data-gallery-thumb] {
    flex: 0 0 auto;
    width: 78px;
    height: 78px;
    padding: 0;
    border: 2px solid var(--kk-line);
    border-radius: var(--kk-radius);
    background: var(--kk-cream);
    overflow: hidden;
    cursor: pointer;
    opacity: .78;
    transition: border-color .2s ease, opacity .2s ease, transform .2s var(--kk-ease);
}

.gallery-thumbs button:hover,
.gallery-thumbs [data-gallery-thumb]:hover {
    opacity: 1;
    transform: translateY(-2px);
}

.gallery-thumbs .active,
.gallery-thumbs [aria-current="true"] {
    border-color: var(--kk-terracotta);
    opacity: 1;
    box-shadow: var(--kk-ring);
}

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

.product-info h1 {
    font-size: clamp(1.9rem, 1.4rem + 2vw, 2.8rem);
    margin-bottom: .6rem;
}

.product-info .product-price {
    margin-top: 1rem;
    padding-top: 0;
}

.product-info .price-current {
    font-size: clamp(1.9rem, 1.5rem + 1.5vw, 2.5rem);
}

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

.product-info .product-badges {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    margin-bottom: .85rem;
    pointer-events: auto;
}

.product-meta {
    display: grid;
    gap: .55rem;
    margin: 1.25rem 0;
    padding: 1.1rem 1.25rem;
    border: 1px dashed var(--kk-line-strong);
    border-radius: var(--kk-radius);
    background: var(--kk-paper);
    font-size: .93rem;
    list-style: none;
}

dl.product-meta {
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: .55rem 1.25rem;
}

dl.product-meta dt {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-weight: 700;
    color: var(--kk-muted);
}

dl.product-meta dd {
    margin: 0;
    font-weight: 700;
    color: var(--kk-bark-deep);
}

ul.product-meta li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
}

.product-meta .bi {
    color: var(--kk-olive);
}

.buy-box {
    position: relative;
    padding: clamp(1.1rem, 1rem + .8vw, 1.6rem);
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: linear-gradient(180deg, #fff, var(--kk-cream));
    box-shadow: var(--kk-shadow);
}

.buy-box .btn-lg {
    min-height: 3.25rem;
}

.buy-box .free-shipping-progress {
    margin-top: 1rem;
}

/* Quantity control (site.js: [data-qty-minus] / [data-qty-plus]).
   Works as a standalone pill (<div class="qty-control"><button/><input/><button/></div>) and when combined
   with Bootstrap's .input-group / .btn / .form-control markup. */
.qty-control {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: stretch;
    flex-shrink: 0;
    min-height: 44px;
    border: 1.5px solid var(--kk-line-strong);
    border-radius: 50rem;
    background: #fff;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.qty-control:focus-within {
    border-color: var(--kk-terracotta-light);
    box-shadow: var(--kk-ring);
}

.qty-control > button,
.qty-control > .btn {
    --bs-btn-color: var(--kk-bark-deep);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--kk-terracotta-dark);
    --bs-btn-hover-bg: var(--kk-cream);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: var(--kk-terracotta-deep);
    --bs-btn-active-bg: var(--kk-wheat);
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: #C9BBA4;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-focus-box-shadow: none;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 42px;
    min-height: 42px;
    margin: 0 !important;
    padding: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent;
    color: var(--kk-bark-deep);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: none;
    transition: background-color .2s ease, color .2s ease;
}

.qty-control > button:hover:not(:disabled):not(.is-limit) {
    background-color: var(--kk-cream);
    color: var(--kk-terracotta-dark);
}

.qty-control > button:disabled,
.qty-control > button.is-limit,
.qty-control > button.is-limit:hover {
    background-color: transparent;
    color: #C9BBA4;
    cursor: not-allowed;
}

.qty-control > button:not(.btn):disabled {
    opacity: 1;
}

.qty-control > button:focus-visible {
    outline: 2px solid var(--kk-terracotta);
    outline-offset: -4px;
    border-radius: 50rem !important;
}

.qty-control > input,
.qty-control > .form-control {
    flex: 1 1 auto;
    width: 3.1rem;
    min-width: 2.4rem;
    margin: 0 !important;
    padding: 0 .1rem;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
    box-shadow: none !important;
    text-align: center;
    font-weight: 800;
    font-size: 1rem;
    color: var(--kk-bark-deep);
    font-variant-numeric: tabular-nums;
    -moz-appearance: textfield;
    appearance: textfield;
}

.qty-control > input:focus {
    outline: none;
    background: var(--kk-honey-50);
}

.qty-control input::-webkit-outer-spin-button,
.qty-control input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty-control.input-group-sm,
.qty-control.qty-control-sm {
    min-height: 36px;
}

.qty-control.input-group-sm > button,
.qty-control.input-group-sm > .btn,
.qty-control.qty-control-sm > button {
    width: 34px;
    min-height: 34px;
    font-size: .95rem;
}

.qty-control.input-group-sm > input,
.qty-control.qty-control-sm > input {
    font-size: .92rem;
}

/* Mobile sticky buy bar (content usually wrapped in a .container) */
.sticky-buy-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1025;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .55rem 0 calc(.55rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--kk-line);
    background: rgba(255, 253, 248, .97);
    box-shadow: 0 -12px 30px -18px rgba(59, 47, 37, .5);
    animation: kk-slide-up .4s var(--kk-ease) both;
}

.sticky-buy-bar:not(:has(> .container)) {
    padding-inline: 1rem;
}

.sticky-buy-bar .price-current {
    font-size: 1.25rem;
}

@media (min-width: 992px) {
    .sticky-buy-bar {
        display: none !important;
    }
}

@media (max-width: 991.98px) {
    body.has-sticky-buy-bar,
    body:has(.sticky-buy-bar) {
        padding-bottom: 76px;
    }

    body.has-sticky-buy-bar .whatsapp-float,
    body.has-sticky-buy-bar .back-to-top,
    body:has(.sticky-buy-bar) .whatsapp-float,
    body:has(.sticky-buy-bar) .back-to-top {
        bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }

    body.has-sticky-buy-bar .whatsapp-float ~ .back-to-top,
    body:has(.sticky-buy-bar) .whatsapp-float ~ .back-to-top {
        bottom: calc(156px + env(safe-area-inset-bottom, 0px));
    }

    body.has-sticky-buy-bar .cookie-banner,
    body:has(.sticky-buy-bar) .cookie-banner {
        bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }
}

/* Producer mini card (product detail) */
.producer-mini {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

a.producer-mini:hover,
.producer-mini:has(a:hover) {
    border-color: var(--kk-terracotta-light);
    box-shadow: var(--kk-shadow);
}

.producer-mini .producer-avatar {
    width: 64px;
    height: 64px;
    margin: 0;
    font-size: 1.4rem;
    box-shadow: 0 0 0 4px var(--kk-wheat);
}

.producer-mini .producer-quote {
    margin: .25rem 0 0;
    font-size: .95rem;
}

/* Reviews */
.review-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.review-item {
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
}

.review-item .stars {
    margin-bottom: .35rem;
}

.review-item p:last-child {
    margin-bottom: 0;
}

.review-meta {
    font-size: .82rem;
    font-weight: 600;
    color: var(--kk-muted);
}

.review-reply {
    margin-top: .85rem;
    padding: .85rem 1rem;
    border-left: 3px solid var(--kk-olive);
    border-radius: 0 var(--kk-radius) var(--kk-radius) 0;
    background: var(--kk-olive-50);
    font-size: .93rem;
}

/* 10. Producers ------------------------------------------------------------ */
.producer-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 2rem 1.5rem 1.6rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-xl);
    background: #fff;
    text-align: center;
    overflow: hidden;
    /* Own stacking context: the banner (::before, z-index -1) paints above the card background but below the content,
       without making every child a positioned box (which would trap the title's .stretched-link::after in the first row). */
    isolation: isolate;
    transition: transform .35s var(--kk-ease), box-shadow .35s ease, border-color .3s ease;
}

.producer-card::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: 0;
    height: 86px;
    background:
        linear-gradient(180deg, rgba(243, 230, 204, .9), rgba(251, 246, 236, .5)),
        var(--kk-kilim-pattern) repeat 0 0 / 64px 64px;
    border-bottom: 1px solid var(--kk-line);
}

.producer-card:hover {
    transform: translateY(-5px);
    border-color: var(--kk-line-strong);
    box-shadow: var(--kk-shadow-lg);
}

.producer-avatar {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 112px;
    height: 112px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, var(--kk-terracotta), var(--kk-honey));
    color: #fff;
    font-family: var(--kk-font-heading);
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .02em;
    box-shadow: 0 0 0 6px #fff, 0 0 0 7px var(--kk-line), var(--kk-shadow);
    text-transform: uppercase;
}

.producer-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.producer-card:nth-child(4n+2) .producer-avatar,
:nth-child(4n+2) > .producer-card .producer-avatar {
    background: linear-gradient(135deg, var(--kk-olive), var(--kk-sage));
}

.producer-card:nth-child(4n+3) .producer-avatar,
:nth-child(4n+3) > .producer-card .producer-avatar {
    background: linear-gradient(135deg, var(--kk-honey-dark), #F0C468);
}

.producer-card:nth-child(4n+4) .producer-avatar,
:nth-child(4n+4) > .producer-card .producer-avatar {
    background: linear-gradient(135deg, var(--kk-bark), var(--kk-terracotta-dark));
}

.producer-card h3,
.producer-card .h5,
.producer-card h2 {
    margin-bottom: .2rem;
    font-size: 1.3rem;
}

.producer-card h3 a,
.producer-card h2 a {
    color: inherit;
    text-decoration: none;
}

.producer-card h3 a:hover,
.producer-card h2 a:hover {
    color: var(--kk-terracotta-dark);
}

.producer-quote {
    position: relative;
    margin: .85rem 0 1rem;
    padding: 0 .75rem;
    font-family: var(--kk-font-heading);
    font-size: 1.05rem;
    font-style: italic;
    line-height: 1.55;
    color: var(--kk-bark);
}

.producer-quote::before {
    content: "\201C";
    margin-right: .1em;
    font-size: 1.6em;
    line-height: 0;
    vertical-align: -.35em;
    color: var(--kk-terracotta);
}

.producer-quote::after {
    content: "\201D";
    margin-left: .05em;
    font-size: 1.6em;
    line-height: 0;
    vertical-align: -.35em;
    color: var(--kk-terracotta);
}

/* The views wrap the quote in a <p> that already contains typographic quotes: the decorative marks would only
   repeat them on lines of their own. */
.producer-quote:has(p)::before,
.producer-quote:has(p)::after {
    content: none;
}

.producer-story {
    font-size: 1.06rem;
    line-height: 1.85;
    color: var(--kk-bark);
}

.producer-story > p:first-of-type::first-letter {
    float: left;
    margin: .08em .12em 0 0;
    font-family: var(--kk-font-heading);
    font-size: 3.4em;
    font-weight: 700;
    line-height: .82;
    color: var(--kk-terracotta);
}

/* 11. Harvest calendar ----------------------------------------------------- */
.harvest-table {
    width: 100%;
    min-width: 760px;
    margin-bottom: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .9rem;
}

.harvest-table th,
.harvest-table td {
    padding: .6rem .45rem;
    border-bottom: 1px solid var(--kk-line);
    vertical-align: middle;
}

.harvest-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--kk-cream);
    text-align: center;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--kk-muted);
}

.harvest-table th:first-child,
.harvest-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 190px;
    text-align: left;
    background: #fff;
    box-shadow: 1px 0 0 var(--kk-line);
}

.harvest-table thead th:first-child {
    z-index: 3;
    background: var(--kk-cream);
}

.harvest-table tbody tr:hover td:first-child,
.harvest-table tbody tr:hover th:first-child {
    background: var(--kk-cream);
}

.harvest-cell {
    position: relative;
    z-index: 0;
    min-width: 46px;
    text-align: center;
}

/* In-season months render as a pill behind the cell content; consecutive months read as a harvest bar.
   Table only: the same classes are used for month chips (product page) and legend swatches, styled below. */
.harvest-table .harvest-cell.in-season {
    color: #fff;
    font-weight: 800;
}

.harvest-table .harvest-cell.in-season::before {
    content: "";
    position: absolute;
    left: 3px;
    right: 3px;
    top: 50%;
    z-index: -1;
    height: 18px;
    border-radius: 9px;
    background: linear-gradient(90deg, var(--kk-sage), var(--kk-olive));
    transform: translateY(-50%);
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .08);
}

.harvest-table .month-current {
    background-color: rgba(227, 163, 43, .16);
}

.harvest-table thead .month-current {
    background: var(--kk-honey);
    color: var(--kk-bark-deep);
}

.harvest-table .harvest-cell.in-season.month-current::before {
    background: linear-gradient(90deg, var(--kk-honey-dark), var(--kk-terracotta));
}

/* Month chips outside the table (product detail "Hasat Dönemi" tab) and the calendar legend swatches.
   Solid fills keep the white label readable (white on olive 6.0:1, on terracotta 5.0:1); !important beats .border. */
.harvest-cell.in-season:not(td):not(th) {
    background-color: var(--kk-olive);
    border-color: var(--kk-olive) !important;
    color: #fff;
    font-weight: 800;
}

/* Empty legend swatch: same sage → olive bar as the table cells. */
.harvest-cell.in-season:not(td):not(th):empty {
    background-image: linear-gradient(90deg, var(--kk-sage), var(--kk-olive));
}

.harvest-cell.month-current:not(td):not(th) {
    background-color: rgba(227, 163, 43, .16);
    border-color: var(--kk-honey) !important;
    box-shadow: 0 0 0 2px var(--kk-honey);
}

.harvest-cell.in-season.month-current:not(td):not(th) {
    background-color: var(--kk-terracotta);
    border-color: var(--kk-terracotta) !important;
}

.harvest-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: .85rem;
    color: var(--kk-muted);
}

/* 12. Cart, checkout & order pages ----------------------------------------- */
.cart-item {
    position: relative;
    padding-block: 1.1rem;
    border-bottom: 1px solid var(--kk-line);
}

.cart-item:last-child {
    border-bottom: 0;
}

.cart-item img {
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    border-radius: var(--kk-radius);
    object-fit: cover;
    background: var(--kk-cream);
}

.cart-item .product-emoji {
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    border-radius: var(--kk-radius);
    font-size: 2.4rem;
}

.cart-item a:not(.btn) {
    color: var(--kk-bark-deep);
    font-weight: 700;
    text-decoration: none;
}

.cart-item a:not(.btn):hover {
    color: var(--kk-terracotta-dark);
}

.cart-item .price-current {
    font-size: 1.15rem;
}

/* Standalone summary box; when combined with .card the card (and its .card-body) provides the box. */
.order-summary:not(.card) {
    padding: clamp(1.15rem, 1rem + .8vw, 1.75rem);
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    box-shadow: var(--kk-shadow);
}

@media (min-width: 992px) {
    .order-summary {
        position: sticky;
        top: calc(var(--kk-header-h) + 1.25rem);
    }
}

.order-summary h2,
.order-summary .h5,
.order-summary h3 {
    font-size: 1.3rem;
    margin-bottom: 1rem;
}

.order-summary dl {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem 1rem;
    margin-bottom: 0;
}

.order-summary dt {
    font-weight: 600;
    color: var(--kk-muted);
}

.order-summary dd {
    margin: 0;
    text-align: right;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.order-summary .total,
.order-summary .summary-total,
.order-summary .order-total {
    font-family: var(--kk-font-heading);
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--kk-terracotta-dark);
}

.order-summary hr {
    border-style: dashed;
}

/* Free-shipping progress: supports .free-shipping-progress > .progress > .progress-bar and .progress.free-shipping-progress > .progress-bar */
.free-shipping-progress:not(.progress) {
    padding: .85rem 1rem;
    border: 1px dashed var(--kk-honey);
    border-radius: var(--kk-radius);
    background: var(--kk-honey-50);
    font-size: .9rem;
    font-weight: 600;
    color: var(--kk-bark-deep);
}

.free-shipping-progress:not(.progress) .progress {
    height: .55rem;
    margin-top: .55rem;
    background: rgba(195, 134, 26, .18);
}

.free-shipping-progress.progress {
    height: .6rem;
    background: rgba(195, 134, 26, .18);
}

.free-shipping-progress:not(.progress) > .progress-bar {
    display: block;
    height: .55rem;
    margin-top: .55rem;
    border-radius: 50rem;
}

.free-shipping-progress .progress-bar {
    border-radius: 50rem;
    background: linear-gradient(90deg, var(--kk-honey), var(--kk-terracotta));
    transition: width .8s var(--kk-ease);
}

.free-shipping-progress strong {
    color: var(--kk-terracotta-dark);
}

.free-shipping-progress:not(.progress) > p + .progress {
    margin-top: 0;
}

.free-shipping-progress.is-complete:not(.progress) {
    border-color: var(--kk-sage);
    background: var(--kk-olive-50);
}

.free-shipping-progress.is-complete .progress-bar,
.free-shipping-progress .progress-bar.bg-success {
    background-image: none;
    background-color: var(--kk-olive) !important;
}

.coupon-box {
    position: relative;
    padding: 1rem 1.1rem;
    border: 1.5px dashed var(--kk-line-strong);
    border-radius: var(--kk-radius);
    background:
        radial-gradient(circle at 0 50%, var(--kk-paper) 8px, transparent 9px),
        radial-gradient(circle at 100% 50%, var(--kk-paper) 8px, transparent 9px),
        var(--kk-cream);
}

.coupon-box .form-control {
    text-transform: uppercase;
    font-family: var(--kk-font-mono);
    font-weight: 700;
    letter-spacing: .05em;
}

.coupon-box .form-control::placeholder {
    text-transform: none;
    font-family: var(--kk-font-body);
    font-weight: 600;
    letter-spacing: 0;
}

.form-section {
    margin-bottom: 1.5rem;
}

/* Standalone form card; .form-section.card relies on the Bootstrap card. */
.form-section:not(.card) {
    padding: clamp(1.25rem, 1rem + 1.2vw, 2rem);
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    box-shadow: var(--kk-shadow-sm);
}

.form-section > h2,
.form-section > h3,
.form-section > .form-section-title {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1.25rem;
    font-size: 1.3rem;
}

.form-section > h2 .bi,
.form-section > h3 .bi {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: var(--kk-terracotta-50);
    color: var(--kk-terracotta);
    font-size: 1.1rem;
}

.checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none;
}

.checkout-step {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem 1rem;
    border: 1.5px solid var(--kk-line);
    border-radius: 50rem;
    background: #fff;
    color: var(--kk-muted);
    font-size: .88rem;
    font-weight: 700;
}

.checkout-step.is-done {
    border-color: var(--bs-secondary-border-subtle);
    background: var(--kk-olive-50);
    color: var(--kk-olive-dark);
}

.checkout-step.is-active {
    border-color: var(--kk-terracotta);
    background: var(--kk-terracotta);
    color: #fff;
    box-shadow: 0 8px 18px -10px rgba(181, 83, 44, .9);
}

.checkout-step a {
    color: inherit;
    text-decoration: none;
}

.checkout-step-number {
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--kk-cream);
    color: var(--kk-muted);
    font-size: .85rem;
    line-height: 1;
}

.checkout-step.is-done .checkout-step-number {
    background: var(--kk-olive);
    color: #fff;
}

.checkout-step.is-active .checkout-step-number {
    background: rgba(255, 255, 255, .22);
    color: #fff;
}

.checkout-step-label {
    white-space: nowrap;
}

.iban-card {
    position: relative;
    overflow: hidden;
}

.iban-card.card {
    background: linear-gradient(135deg, #fff 0%, var(--kk-cream) 100%);
}

.iban-card.card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--kk-olive), var(--kk-sage));
}

.iban-card:not(.card) {
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--kk-line);
    border-left: 6px solid var(--kk-olive);
    border-radius: var(--kk-radius-lg);
    background: linear-gradient(135deg, #fff 0%, var(--kk-cream) 100%);
    box-shadow: var(--kk-shadow-sm);
}

.iban-card + .iban-card {
    margin-top: 1rem;
}

.iban-card .iban,
.iban-card code {
    display: block;
    margin: .35rem 0;
}

.iban-card .iban,
.iban-card code,
.iban-card .font-monospace {
    font-family: var(--kk-font-mono);
    font-size: clamp(.98rem, .9rem + .4vw, 1.18rem);
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--kk-bark-deep);
    word-break: break-all;
}

.iban-card .bank-name,
.iban-card h3,
.iban-card h4 {
    font-family: var(--kk-font-heading);
    font-size: 1.15rem;
    margin-bottom: .15rem;
}

.order-code {
    display: inline-block;
    padding: .45rem 1.1rem;
    border: 2px dashed var(--kk-terracotta);
    border-radius: var(--kk-radius);
    background: var(--kk-honey-50);
    color: var(--kk-terracotta-deep);
    font-family: var(--kk-font-mono);
    font-size: clamp(1.1rem, .85rem + 1.05vw, 1.6rem);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.2;
    white-space: nowrap;
    max-width: 100%;
}

/* Copy-to-clipboard order code rendered as a button */
.order-code.btn {
    --bs-btn-color: var(--kk-terracotta-deep);
    --bs-btn-bg: var(--kk-honey-50);
    --bs-btn-border-color: var(--kk-terracotta);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--kk-terracotta);
    --bs-btn-hover-border-color: var(--kk-terracotta);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--kk-terracotta-dark);
    --bs-btn-active-border-color: var(--kk-terracotta-dark);
    border-style: dashed;
    border-width: 2px;
}

.order-code.btn-link {
    padding: 0;
    border: 0;
    background: none;
    color: var(--kk-terracotta-deep);
    letter-spacing: .06em;
}

.order-code.btn-link:hover {
    color: var(--kk-terracotta);
    background: none;
}

.order-timeline {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
}

.timeline-item {
    position: relative;
    display: flex;
    gap: 1rem;
    padding-bottom: 1.6rem;
}

.timeline-item:last-child {
    padding-bottom: 0;
}

.timeline-item::before {
    content: "";
    position: absolute;
    left: 21px;
    top: 46px;
    bottom: 2px;
    width: 2px;
    border-radius: 2px;
    background: var(--kk-line);
}

.timeline-item:last-child::before {
    display: none;
}

.timeline-item.is-done::before {
    background: var(--kk-olive);
}

.timeline-icon {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 2px solid var(--kk-line);
    background: #fff;
    color: #B8A992;
    font-size: 1.15rem;
}

.timeline-item.is-done .timeline-icon {
    border-color: var(--kk-olive);
    background: var(--kk-olive);
    color: #fff;
}

.timeline-item.is-current .timeline-icon {
    border-color: var(--kk-terracotta);
    background: var(--kk-terracotta);
    color: #fff;
    box-shadow: 0 0 0 6px rgba(181, 83, 44, .16);
}

@media (prefers-reduced-motion: no-preference) {
    .timeline-item.is-current .timeline-icon {
        animation: kk-ring 2.4s ease-out infinite;
    }
}

.timeline-item.is-cancelled .timeline-icon {
    border-color: var(--kk-danger);
    background: var(--kk-danger);
    color: #fff;
}

.timeline-content {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: .45rem;
}

.timeline-content h3,
.timeline-content h4,
.timeline-content strong:first-child {
    display: block;
    margin-bottom: .15rem;
    font-family: var(--kk-font-body);
    font-size: 1rem;
    font-weight: 800;
    color: var(--kk-bark-deep);
}

/* Pending steps look subdued through colour and a dashed icon ring only: no opacity on the text, which would drop the
   descriptions to ~2.5:1. Muted text stays ≥ 5.2:1 on the white card. */
.timeline-item:not(.is-done):not(.is-current):not(.is-cancelled) .timeline-icon {
    border-style: dashed;
}

.timeline-item:not(.is-done):not(.is-current):not(.is-cancelled) .timeline-content h3,
.timeline-item:not(.is-done):not(.is-current):not(.is-cancelled) .timeline-content h4,
.timeline-item:not(.is-done):not(.is-current):not(.is-cancelled) .timeline-content strong:first-child {
    color: var(--kk-muted);
}

.timeline-content p,
.timeline-content small {
    color: var(--kk-muted);
}

.timeline-content p:last-child {
    margin-bottom: 0;
}

/* 13. Generic -------------------------------------------------------------- */
.empty-state {
    max-width: 560px;
    margin-inline: auto;
    padding: clamp(2rem, 1.5rem + 3vw, 4rem) 1rem;
    text-align: center;
}

.empty-state > .bi,
.empty-state-icon {
    display: inline-grid;
    place-items: center;
    width: 104px;
    height: 104px;
    margin-bottom: 1.25rem;
    border-radius: 50%;
    background: var(--kk-cream);
    color: var(--kk-terracotta);
    font-size: 3rem;
    box-shadow: 0 0 0 10px rgba(243, 230, 204, .45);
}

.empty-state img,
.empty-state svg {
    display: block;
    max-width: min(280px, 80%);
    height: auto;
    margin: 0 auto 1.5rem;
}

.empty-state img:not([width]),
.empty-state svg:not([width]) {
    width: min(280px, 80%);
}

.empty-state h2,
.empty-state h3,
.empty-state .h4 {
    margin-bottom: .5rem;
}

.empty-state p {
    color: var(--kk-muted);
    margin-bottom: 1.5rem;
}

.prose {
    max-width: 74ch;
    font-size: 1.05rem;
    line-height: 1.85;
    color: var(--kk-bark);
}

.prose > :first-child {
    margin-top: 0;
}

.prose h2 {
    margin: 2.25rem 0 .85rem;
    font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem);
}

.prose h3 {
    margin: 1.75rem 0 .65rem;
    font-size: clamp(1.18rem, 1.08rem + .4vw, 1.4rem);
}

.prose p {
    margin-bottom: 1.1rem;
}

.prose ul,
.prose ol {
    margin: 0 0 1.25rem;
    padding-left: 1.35rem;
}

.prose li {
    margin-bottom: .4rem;
    padding-left: .2rem;
}

.prose li::marker {
    color: var(--kk-terracotta);
}

.prose strong {
    color: var(--kk-bark-deep);
}

.prose a {
    color: var(--kk-terracotta-dark);
    font-weight: 700;
}

.prose blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--kk-honey);
    background: var(--kk-honey-50);
    border-radius: 0 var(--kk-radius) var(--kk-radius) 0;
    font-family: var(--kk-font-heading);
    font-style: italic;
}

.prose-lg {
    font-size: 1.12rem;
}

/* Page hero (inner pages, _PageHero) */
.page-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(1.75rem, 1.25rem + 2.5vw, 3.5rem) 0 clamp(2.25rem, 1.5rem + 3vw, 4.25rem);
    background:
        radial-gradient(760px 300px at 92% 0%, rgba(227, 163, 43, .26), transparent 70%),
        radial-gradient(520px 260px at 0% 100%, rgba(181, 83, 44, .1), transparent 70%),
        linear-gradient(180deg, var(--kk-cream), var(--kk-wheat));
}

.page-hero::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    width: min(46%, 520px);
    background: var(--kk-kilim-pattern) repeat 0 0 / 80px 80px;
    opacity: .5;
    -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, .85), transparent);
    mask-image: linear-gradient(to left, rgba(0, 0, 0, .85), transparent);
}

.page-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 12px;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
}

.page-hero-breadcrumb {
    margin-bottom: .9rem;
}

.page-hero-inner {
    display: flex;
    align-items: center;
    gap: clamp(.9rem, .6rem + 1.5vw, 1.5rem);
}

.page-hero-emoji {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: clamp(60px, 50px + 3vw, 84px);
    height: clamp(60px, 50px + 3vw, 84px);
    border-radius: 24px;
    background: #fff;
    font-size: clamp(2rem, 1.6rem + 1.6vw, 2.8rem);
    line-height: 1;
    box-shadow: var(--kk-shadow), 0 0 0 6px rgba(255, 255, 255, .5);
    transform: rotate(-6deg);
    animation: kk-pop-tilt .7s var(--kk-ease) both;
}

.page-hero-title {
    margin: 0;
    font-size: clamp(1.9rem, 1.35rem + 2.3vw, 3rem);
    animation: kk-rise .6s var(--kk-ease) both;
}

.page-hero-subtitle {
    max-width: 62ch;
    margin: .45rem 0 0;
    font-size: clamp(1rem, .96rem + .3vw, 1.15rem);
    color: #66564A;
    animation: kk-rise .6s var(--kk-ease) .08s both;
}

/* Reveal on scroll: site.js marks off-screen elements .reveal-pending and adds .is-visible when they enter the viewport.
   Without JavaScript nothing is hidden. The reveal transition only applies while an element is pending/fading in
   (site.js removes .reveal-pending once the fade has finished), so components that carry .reveal themselves
   (.category-tile, .step…) keep their own hover transitions afterwards. */
.reveal.reveal-pending {
    transition: opacity .8s var(--kk-ease), transform .8s var(--kk-ease);
}

.reveal.reveal-pending:not(.is-visible) {
    opacity: 0;
    transform: translateY(28px);
}

/* 14. Footer --------------------------------------------------------------- */
.site-footer {
    position: relative;
    padding: calc(clamp(2.5rem, 2rem + 2vw, 3.5rem) + 14px) 0 1.25rem;
    background-color: var(--kk-olive-dark);
    background-image:
        radial-gradient(900px 400px at 100% 0%, rgba(227, 163, 43, .1), transparent 65%),
        radial-gradient(700px 360px at 0% 100%, rgba(0, 0, 0, .18), transparent 65%);
    color: rgba(251, 246, 236, .8);
    font-size: .94rem;
}

.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 14px;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
}

.site-footer a {
    color: rgba(251, 246, 236, .86);
    text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
    color: var(--kk-honey-light);
}

.site-footer :focus-visible {
    outline-color: var(--kk-honey);
}

.footer-newsletter {
    display: grid;
    gap: 1.25rem;
    align-items: center;
    margin-bottom: clamp(2rem, 1.5rem + 2vw, 3rem);
    padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--kk-radius-xl);
    background: rgba(255, 255, 255, .05);
}

@media (min-width: 992px) {
    .footer-newsletter {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
        gap: 2rem;
    }
}

.footer-newsletter-text {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.footer-newsletter-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: rgba(227, 163, 43, .16);
    font-size: 1.75rem;
}

.footer-newsletter-title {
    margin: 0 0 .25rem;
    font-family: var(--kk-font-heading);
    font-size: clamp(1.2rem, 1.1rem + .6vw, 1.55rem);
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
}

.footer-newsletter-lead {
    margin: 0;
    color: rgba(251, 246, 236, .72);
}

.footer-newsletter-form .newsletter-form {
    max-width: none;
}

.site-footer .newsletter-input-group .form-control {
    border-color: transparent;
    background: rgba(255, 255, 255, .95);
}

.site-footer .newsletter-submit {
    --bs-btn-bg: var(--kk-honey);
    --bs-btn-border-color: var(--kk-honey);
    --bs-btn-color: var(--kk-bark-deep);
    --bs-btn-hover-bg: #EDB548;
    --bs-btn-hover-border-color: #EDB548;
    --bs-btn-hover-color: var(--kk-bark-deep);
    --bs-btn-active-bg: var(--kk-honey-dark);
    --bs-btn-active-border-color: var(--kk-honey-dark);
    --bs-btn-active-color: var(--kk-bark-deep);
    --bs-btn-focus-shadow-rgb: 227, 163, 43;
    box-shadow: none;
}

.site-footer .newsletter-note {
    color: rgba(251, 246, 236, .78);
}

.site-footer .newsletter-perk {
    color: var(--kk-honey-light);
}

.site-footer .coupon-code {
    background: rgba(255, 255, 255, .08);
}

.site-footer .newsletter-message.is-success { color: #B9DCA8; }
.site-footer .newsletter-message.is-error { color: #F5B4A8; }

.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: .9rem;
}

.footer-brand img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    padding: 4px;
    border-radius: 14px;
    background: var(--kk-cream);
}

.footer-brand-name {
    font-family: var(--kk-font-heading);
    font-size: 1.55rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -.02em;
}

.site-footer a.footer-brand:hover .footer-brand-name {
    color: var(--kk-honey);
}

.footer-tagline {
    margin-bottom: .6rem;
    font-family: var(--kk-font-heading);
    font-style: italic;
    font-size: 1.05rem;
    color: var(--kk-wheat);
}

.footer-story {
    margin-bottom: .75rem;
    color: rgba(251, 246, 236, .7);
    line-height: 1.7;
}

.footer-more {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 800;
    color: var(--kk-honey-light) !important;
}

.footer-more:hover {
    color: #fff !important;
}

.footer-social {
    display: flex;
    gap: .5rem;
    margin: 1.25rem 0 0;
}

.footer-social a {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50%;
    font-size: 1.1rem;
    transition: background-color .2s ease, color .2s ease, transform .25s var(--kk-ease);
}

.footer-social a:hover {
    background: var(--kk-honey);
    border-color: var(--kk-honey);
    color: var(--kk-bark-deep);
    transform: translateY(-3px);
}

.footer-title {
    margin-bottom: 1rem;
    font-family: var(--kk-font-body);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kk-honey-light);
}

.footer-links {
    margin: 0;
}

.footer-links li + li {
    margin-top: .5rem;
}

.footer-links a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    transition: color .2s ease, transform .2s var(--kk-ease);
}

.footer-links a:hover {
    transform: translateX(3px);
}

.footer-link-icon {
    font-size: .95rem;
}

.footer-link-strong {
    font-weight: 800;
    color: #fff !important;
}

.footer-link-strong:hover {
    color: var(--kk-honey-light) !important;
}

.footer-contact {
    margin: 0 0 1.25rem;
}

.footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    line-height: 1.5;
}

.footer-contact li + li {
    margin-top: .6rem;
}

.footer-contact .bi {
    flex-shrink: 0;
    margin-top: .15rem;
    color: var(--kk-honey);
}

.footer-contact address {
    font-style: normal;
}

.footer-payment {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: .9rem 1rem;
    border: 1px dashed rgba(227, 163, 43, .5);
    border-radius: var(--kk-radius);
    background: rgba(227, 163, 43, .08);
}

.footer-payment > .bi {
    font-size: 1.6rem;
    line-height: 1;
    color: var(--kk-honey);
}

.footer-payment strong {
    display: block;
    color: #fff;
    font-size: .95rem;
}

.footer-payment span {
    display: block;
    font-size: .82rem;
    color: rgba(251, 246, 236, .78);
}

.footer-legal {
    margin-top: 2.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.footer-legal ul {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.25rem;
    margin: 0;
    font-size: .85rem;
}

.footer-legal a {
    color: rgba(251, 246, 236, .78);
}

.footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1.5rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: .82rem;
    color: rgba(251, 246, 236, .78);
}

.footer-seller {
    display: inline-block;
    margin-left: .35rem;
}

.footer-seller::before {
    content: "•";
    margin-right: .5rem;
}

/* ETBİS QR badge (Site Ayarları → Yasal): white tile so the code stays scannable on the dark footer. */
.footer-etbis {
    flex: 0 0 auto;
    line-height: 0;
}

/* Keep the badge out of the bottom-right corner used by the fixed back-to-top / WhatsApp buttons
   (on phones the badge wraps to its own line on the left). */
@media (min-width: 576px) {
    .footer-etbis {
        margin-right: 3.5rem;
    }
}

.footer-etbis a,
.footer-etbis img {
    display: inline-block;
}

.footer-etbis img {
    width: auto;
    height: auto;
    max-width: 90px;
    max-height: 110px;
    padding: 4px;
    border-radius: 6px;
    background: #fff;
    vertical-align: middle;
}

.footer-etbis a:focus-visible {
    outline: 2px solid var(--kk-honey);
    outline-offset: 3px;
    border-radius: 6px;
}

/* 15. Floating UI ---------------------------------------------------------- */
.whatsapp-float {
    position: fixed;
    right: max(1rem, env(safe-area-inset-right, 0px));
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1035;
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    padding: 0;
    border-radius: 50% !important;
    --bs-btn-bg: var(--kk-whatsapp);
    font-size: 1.8rem;
    line-height: 1;
    box-shadow: 0 12px 28px -10px rgba(14, 102, 49, .75);
    animation: kk-pop .6s var(--kk-ease) 1s backwards;
}

.whatsapp-float::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(37, 211, 102, .55);
    pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
    .whatsapp-float::before {
        animation: kk-whatsapp-pulse 2.6s ease-out 2s infinite;
    }
}

.whatsapp-float:hover {
    transform: translateY(-3px) scale(1.04);
}

.whatsapp-float-label {
    position: absolute;
    right: calc(100% + .75rem);
    top: 50%;
    padding: .45rem .85rem;
    border-radius: 50rem;
    background: #fff;
    color: var(--kk-bark-deep);
    font-size: .85rem;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: var(--kk-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translate(8px, -50%);
    transition: opacity .25s ease, transform .25s var(--kk-ease), visibility .25s;
    pointer-events: none;
}

@media (hover: hover) and (min-width: 768px) {
    .whatsapp-float:hover .whatsapp-float-label,
    .whatsapp-float:focus-visible .whatsapp-float-label {
        opacity: 1;
        visibility: visible;
        transform: translate(0, -50%);
    }
}

.back-to-top {
    position: fixed;
    right: calc(max(1rem, env(safe-area-inset-right, 0px)) + 7px);
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1034;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--kk-line);
    border-radius: 50%;
    background: #fff;
    color: var(--kk-bark-deep);
    font-size: 1.15rem;
    box-shadow: var(--kk-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .3s ease, transform .3s var(--kk-ease), visibility .3s, background-color .2s ease, color .2s ease;
}

.whatsapp-float ~ .back-to-top {
    bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.back-to-top:hover {
    background: var(--kk-terracotta);
    border-color: var(--kk-terracotta);
    color: #fff;
}

/* Cookie banner */
.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1040;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
    max-width: 580px;
    padding: 1rem 1.15rem;
    border: 1px solid var(--kk-line);
    border-radius: var(--kk-radius-lg);
    background: #fff;
    color: var(--kk-bark);
    font-size: .86rem;
    line-height: 1.5;
    box-shadow: var(--kk-shadow-lg);
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .35s ease, transform .35s var(--kk-ease);
}

.cookie-banner.is-visible {
    opacity: 1;
    transform: none;
}

@media (min-width: 768px) {
    .cookie-banner {
        left: 1.5rem;
        right: auto;
        bottom: 1.5rem;
        flex-wrap: nowrap;
    }
}

.cookie-banner-icon {
    font-size: 1.8rem;
    line-height: 1;
}

.cookie-banner-text {
    flex: 1 1 260px;
    min-width: 0;
}

.cookie-banner-title {
    margin: 0 0 .15rem;
    font-weight: 800;
    color: var(--kk-bark-deep);
}

.cookie-banner a {
    font-weight: 700;
}

.cookie-banner-btn {
    flex-shrink: 0;
}

@media (max-width: 767.98px) {
    .cookie-banner-btn {
        width: 100%;
    }
}

/* Toasts (window.kk.toast) */
.kk-toast-container {
    position: fixed;
    top: calc(var(--kk-header-h) + .75rem);
    left: 50%;
    z-index: 1090;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    width: min(420px, calc(100vw - 2rem));
    transform: translateX(-50%);
    pointer-events: none;
}

@media (min-width: 768px) {
    .kk-toast-container {
        left: auto;
        right: 1.5rem;
        align-items: flex-end;
        transform: none;
    }
}

.kk-toast {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    width: 100%;
    max-width: 420px;
    padding: .85rem .85rem .85rem 1rem;
    border-radius: var(--kk-radius);
    background: var(--kk-bark-deep);
    color: #fff;
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.45;
    box-shadow: 0 18px 40px -14px rgba(42, 33, 26, .6);
    pointer-events: auto;
    opacity: 0;
    transform: translateY(-10px) scale(.98);
    transition: opacity .3s ease, transform .35s var(--kk-ease);
}

.kk-toast.is-visible {
    opacity: 1;
    transform: none;
}

.kk-toast.is-leaving {
    opacity: 0;
    transform: translateY(-6px) scale(.98);
}

.kk-toast-icon {
    flex-shrink: 0;
    font-size: 1.2rem;
    line-height: 1.2;
}

.kk-toast-success { border-left: 4px solid #8CC37A; }
.kk-toast-success .kk-toast-icon { color: #A6D894; }
.kk-toast-error { border-left: 4px solid #F08A78; }
.kk-toast-error .kk-toast-icon { color: #F5A595; }
.kk-toast-info { border-left: 4px solid var(--kk-honey); }
.kk-toast-info .kk-toast-icon { color: var(--kk-honey); }
.kk-toast-warning { border-left: 4px solid #F2C14E; }
.kk-toast-warning .kk-toast-icon { color: #F2C14E; }

.kk-toast-text {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: .05rem;
}

.kk-toast-action {
    display: inline-block;
    margin-top: .35rem;
    color: var(--kk-honey);
    font-weight: 800;
}

.kk-toast-action:hover {
    color: #fff;
}

.kk-toast-close {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: rgba(255, 255, 255, .7);
    font-size: .8rem;
}

.kk-toast-close:hover {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

/* Mini cart off-canvas */
.mini-cart {
    --bs-offcanvas-width: min(440px, 100vw);
}

.mini-cart .offcanvas-title .bi {
    color: var(--kk-terracotta);
}

.mini-cart .offcanvas-body {
    display: flex;
    flex-direction: column;
}

.mini-cart .offcanvas-body[aria-busy="true"] > :not(.mini-cart-loading) {
    opacity: .5;
    pointer-events: none;
    transition: opacity .2s ease;
}

.mini-cart-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-height: 220px;
    color: var(--kk-muted);
    font-weight: 600;
    text-align: center;
}

.mini-cart .cart-item img,
.mini-cart .cart-item .product-emoji {
    width: 64px;
    height: 64px;
    font-size: 1.9rem;
}

.mini-cart .empty-state {
    padding: 2rem .5rem;
}

.mini-cart .empty-state > .bi,
.mini-cart .empty-state-icon {
    width: 84px;
    height: 84px;
    font-size: 2.4rem;
}

/* Campaign modal */
.campaign-modal .modal-dialog {
    max-width: 480px;
}

.campaign-modal .modal-content {
    overflow: hidden;
    border: 0;
}

.campaign-modal-close {
    position: absolute;
    top: .9rem;
    right: .9rem;
    z-index: 3;
    padding: .6rem;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .85);
    opacity: .9;
}

.campaign-modal-art {
    position: relative;
    display: grid;
    place-items: center;
    height: 150px;
    overflow: hidden;
    background:
        radial-gradient(260px 160px at 80% 10%, rgba(227, 163, 43, .6), transparent 70%),
        linear-gradient(120deg, var(--kk-terracotta-deep), var(--kk-terracotta) 60%, #C66A36);
}

.campaign-modal-art::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 12px;
    background: var(--kk-kilim-border) repeat-x left center / auto 100%;
}

.campaign-modal-emoji {
    display: grid;
    place-items: center;
    width: 92px;
    height: 92px;
    border-radius: 28px;
    background: rgba(255, 255, 255, .95);
    font-size: 3rem;
    line-height: 1;
    box-shadow: 0 16px 30px -12px rgba(42, 33, 26, .6);
    transform: rotate(-8deg);
}

.campaign-modal.show .campaign-modal-emoji {
    animation: kk-wiggle 1.2s var(--kk-ease) .2s both;
}

.campaign-modal-sparkle {
    position: absolute;
    color: var(--kk-honey-50);
    font-size: 1.25rem;
    opacity: .85;
}

.campaign-modal-sparkle-1 { top: 22px; left: 22%; font-size: 1.1rem; }
.campaign-modal-sparkle-2 { top: 54px; right: 20%; font-size: 1.5rem; }
.campaign-modal-sparkle-3 { bottom: 30px; left: 30%; font-size: .9rem; }

@media (prefers-reduced-motion: no-preference) {
    .campaign-modal-sparkle {
        animation: kk-twinkle 2.4s ease-in-out infinite;
    }

    .campaign-modal-sparkle-2 { animation-delay: .6s; }
    .campaign-modal-sparkle-3 { animation-delay: 1.2s; }
}

.campaign-modal-body {
    padding: 1.6rem clamp(1.25rem, 1rem + 2vw, 2rem) 1.75rem;
    text-align: center;
}

.campaign-modal-body .eyebrow {
    justify-content: center;
}

.campaign-modal-body .eyebrow::after {
    content: "";
    width: 1.75rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    opacity: .7;
}

.campaign-modal-title {
    margin-bottom: .5rem;
    font-size: clamp(1.5rem, 1.25rem + 1.2vw, 2rem);
}

.campaign-modal-text {
    margin-bottom: 1.15rem;
    color: var(--kk-muted);
}

.campaign-code-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .5rem .75rem;
    margin-bottom: 1.15rem;
    padding: .85rem 1rem;
    border: 2px dashed var(--kk-terracotta-light);
    border-radius: var(--kk-radius);
    background: var(--kk-honey-50);
}

.campaign-code-label {
    flex-basis: 100%;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kk-muted);
}

.campaign-code {
    font-family: var(--kk-font-mono);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: .1em;
    color: var(--kk-terracotta-deep);
}

.campaign-modal-countdown {
    margin-bottom: 1.25rem;
}

.campaign-modal-countdown-label {
    margin-bottom: .5rem;
    font-size: .85rem;
    font-weight: 700;
    color: var(--kk-muted);
}

.campaign-modal-countdown .countdown {
    justify-content: center;
}

.campaign-modal-countdown .countdown-unit {
    min-width: 3.7rem;
    padding: .5rem .4rem .45rem;
}

.campaign-modal-countdown .countdown-unit [data-days],
.campaign-modal-countdown .countdown-unit [data-hours],
.campaign-modal-countdown .countdown-unit [data-minutes],
.campaign-modal-countdown .countdown-unit [data-seconds] {
    font-size: 1.5rem;
}

.campaign-modal-newsletter {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px dashed var(--kk-line-strong);
    text-align: left;
}

.campaign-modal-newsletter-title {
    margin-bottom: .6rem;
    font-weight: 800;
    text-align: center;
    color: var(--kk-bark-deep);
}

.campaign-modal-newsletter .newsletter-form {
    max-width: none;
}

.campaign-modal-newsletter .newsletter-perk {
    display: none;
}

/* Admin toolbar (_LayoutAdminToolbar, signed-in admins only): bottom-left pill, clear of the header actions and the
   WhatsApp / back-to-top buttons on the right. */
.kk-admin-toolbar {
    position: fixed;
    left: max(1rem, env(safe-area-inset-left, 0px));
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1036;
    display: flex;
    align-items: center;
    gap: .2rem;
    max-width: calc(100vw - 6.5rem);
    padding: .3rem;
    border: 1px solid rgba(243, 230, 204, .14);
    border-radius: 50rem;
    background: var(--kk-bark-deep);
    color: var(--kk-wheat);
    font-family: var(--kk-font-body);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 16px 36px -14px rgba(42, 33, 26, .7);
}

.kk-admin-toolbar-form {
    display: flex;
    margin: 0;
}

.kk-admin-toolbar-link,
.kk-admin-toolbar-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 36px;
    padding: .35rem .8rem;
    border: 0;
    border-radius: 50rem;
    background: transparent;
    color: var(--kk-wheat);
    font: inherit;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.kk-admin-toolbar-link .bi,
.kk-admin-toolbar-toggle .bi {
    font-size: 1rem;
    line-height: 1;
}

.kk-admin-toolbar-link:hover,
.kk-admin-toolbar-link:focus-visible {
    background: rgba(243, 230, 204, .12);
    color: #fff;
}

.kk-admin-toolbar-toggle {
    background: rgba(243, 230, 204, .08);
}

.kk-admin-toolbar-toggle:hover,
.kk-admin-toolbar-toggle:focus-visible {
    background: rgba(243, 230, 204, .18);
    color: #fff;
}

.kk-admin-toolbar-toggle strong {
    font-weight: 800;
    color: #fff;
}

.kk-admin-toolbar.is-editing .kk-admin-toolbar-toggle {
    background: var(--kk-terracotta);
    color: #fff;
}

.kk-admin-toolbar.is-editing .kk-admin-toolbar-toggle:hover,
.kk-admin-toolbar.is-editing .kk-admin-toolbar-toggle:focus-visible {
    background: var(--kk-terracotta-dark);
}

.kk-admin-toolbar-link:focus-visible,
.kk-admin-toolbar-toggle:focus-visible {
    outline: 3px solid var(--kk-honey-light);
    outline-offset: 2px;
}

.kk-admin-toolbar-toggle:disabled {
    opacity: .75;
    cursor: progress;
}

/* Switch graphic of the "Sitede Düzenle" button (state is also spelled out: Açık / Kapalı). */
.kk-admin-switch {
    position: relative;
    flex-shrink: 0;
    width: 30px;
    height: 18px;
    border-radius: 50rem;
    background: rgba(243, 230, 204, .3);
    transition: background-color .2s ease;
}

.kk-admin-switch::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
    transition: transform .2s var(--kk-ease);
}

.kk-admin-toolbar.is-editing .kk-admin-switch {
    background: var(--kk-honey);
}

.kk-admin-toolbar.is-editing .kk-admin-switch::after {
    transform: translateX(12px);
}

@media (max-width: 575.98px) {
    /* Phones: icons + "Açık/Kapalı" only; the words stay available to screen readers. */
    .kk-admin-toolbar-text {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .kk-admin-toolbar-link {
        padding-inline: .65rem;
    }
}

/* The cookie notice (shown to admins outside edit mode) sits above the toolbar. */
.kk-has-admin-bar .cookie-banner {
    bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 768px) {
    .kk-has-admin-bar .cookie-banner {
        bottom: 4.5rem;
    }
}

@media (max-width: 991.98px) {
    body.has-sticky-buy-bar .kk-admin-toolbar,
    body:has(.sticky-buy-bar) .kk-admin-toolbar {
        bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }

    body.kk-has-admin-bar.has-sticky-buy-bar .cookie-banner,
    body.kk-has-admin-bar:has(.sticky-buy-bar) .cookie-banner {
        bottom: calc(88px + 3.25rem + env(safe-area-inset-bottom, 0px));
    }
}

/* "Sitede Düzenle" (body.kk-edit-mode): editable texts/images get a dashed outline on hover and a pencil link
   (site.js, overlay layers) at their top-right corner. Terracotta = text/image of "Site İçerikleri";
   olive = content managed on another admin screen (settings, products, categories…). */
.kk-edit-mode .kk-editable {
    outline: 2px dashed transparent;
    outline-offset: 3px;
    border-radius: 2px;
}

.kk-edit-mode .kk-editable:hover,
.kk-edit-mode .kk-editable.is-edit-target,
.kk-edit-mode img[data-edit-url]:hover,
.kk-edit-mode img[data-edit-url].is-edit-target {
    outline: 2px dashed var(--kk-terracotta);
    outline-offset: 3px;
}

.kk-edit-mode .kk-editable-external:hover,
.kk-edit-mode .kk-editable-external.is-edit-target {
    outline-color: var(--kk-olive);
}

.kk-edit-mode .kk-editable.is-edit-target,
.kk-edit-mode img[data-edit-url].is-edit-target {
    background-color: rgba(227, 163, 43, .14);
}

/* Content waiting for its scroll reveal is shown at once while editing (pencils need stable positions). */
.kk-edit-mode .reveal.reveal-pending,
.kk-edit-mode .reveal.reveal-pending:not(.is-visible) {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* The WhatsApp button's hover label stays visible so its pencil can be reached. */
@media (hover: hover) and (min-width: 768px) {
    .kk-edit-mode .whatsapp-float-label {
        opacity: 1;
        visibility: visible;
        transform: translate(0, -50%);
    }
}

.kk-edit-layer {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    width: 0;
    height: 0;
}

.kk-edit-layer-fixed {
    position: fixed;
}

.kk-edit-mode a.kk-edit-pencil {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1065;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--kk-terracotta);
    color: #fff;
    font-family: var(--kk-font-body);
    font-size: 15px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 16px -6px rgba(42, 33, 26, .7), 0 0 0 1px rgba(42, 33, 26, .12);
    transition: background-color .15s ease, box-shadow .15s ease;
}

.kk-edit-mode a.kk-edit-pencil.is-external {
    background: var(--kk-olive);
}

.kk-edit-mode a.kk-edit-pencil:hover,
.kk-edit-mode a.kk-edit-pencil:focus-visible {
    background: var(--kk-terracotta-dark);
    color: #fff;
    box-shadow: 0 8px 20px -6px rgba(42, 33, 26, .8), 0 0 0 3px rgba(181, 83, 44, .25);
}

.kk-edit-mode a.kk-edit-pencil.is-external:hover,
.kk-edit-mode a.kk-edit-pencil.is-external:focus-visible {
    background: var(--kk-olive-dark);
    box-shadow: 0 8px 20px -6px rgba(42, 33, 26, .8), 0 0 0 3px rgba(85, 107, 47, .25);
}

.kk-edit-mode a.kk-edit-pencil:focus-visible {
    outline: 3px solid var(--kk-honey);
    outline-offset: 2px;
}

.kk-edit-mode a.kk-edit-pencil.is-hidden {
    display: none;
}

.kk-edit-pencil-icon {
    display: block;
    font-size: 12px;
    line-height: 1;
}

/* Name of the field, shown under the pencil on hover / keyboard focus. */
.kk-edit-pencil-label {
    position: absolute;
    top: calc(100% + 6px);
    right: -4px;
    display: none;
    max-width: 260px;
    padding: .3rem .6rem;
    border-radius: var(--kk-radius-sm);
    background: var(--kk-bark-deep);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: var(--kk-shadow);
    pointer-events: none;
}

.kk-edit-pencil.is-flipped .kk-edit-pencil-label {
    right: auto;
    left: -4px;
}

.kk-edit-pencil:hover .kk-edit-pencil-label,
.kk-edit-pencil:focus-visible .kk-edit-pencil-label {
    display: block;
}

/* 16. Animations ----------------------------------------------------------- */
@keyframes kk-spin {
    to { transform: rotate(360deg); }
}

@keyframes kk-rise {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

@keyframes kk-pop {
    0% { opacity: 0; transform: scale(.92) translateY(14px); }
    100% { opacity: 1; transform: none; }
}

@keyframes kk-pop-tilt {
    0% { opacity: 0; transform: rotate(-14deg) scale(.7); }
    100% { opacity: 1; transform: rotate(-6deg); }
}

@keyframes kk-drop {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}

@keyframes kk-slide-up {
    from { transform: translateY(100%); }
    to { transform: none; }
}

@keyframes kk-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@keyframes kk-bump {
    0% { transform: scale(1); }
    30% { transform: scale(1.45); }
    55% { transform: scale(.9); }
    75% { transform: scale(1.12); }
    100% { transform: scale(1); }
}

@keyframes kk-ping {
    0% { box-shadow: 0 0 0 0 rgba(85, 107, 47, .5); }
    70% { box-shadow: 0 0 0 9px rgba(85, 107, 47, 0); }
    100% { box-shadow: 0 0 0 0 rgba(85, 107, 47, 0); }
}

@keyframes kk-ring {
    0% { box-shadow: 0 0 0 0 rgba(181, 83, 44, .35); }
    70% { box-shadow: 0 0 0 12px rgba(181, 83, 44, 0); }
    100% { box-shadow: 0 0 0 0 rgba(181, 83, 44, 0); }
}

@keyframes kk-whatsapp-pulse {
    0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); }
    70% { box-shadow: 0 0 0 18px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

@keyframes kk-soft-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .62; }
}

@keyframes kk-wiggle {
    0% { transform: rotate(-8deg) scale(.6); opacity: 0; }
    40% { transform: rotate(6deg) scale(1.08); opacity: 1; }
    65% { transform: rotate(-10deg) scale(.98); }
    85% { transform: rotate(-4deg) scale(1.02); }
    100% { transform: rotate(-8deg) scale(1); }
}

@keyframes kk-twinkle {
    0%, 100% { opacity: .35; transform: scale(.8) rotate(0deg); }
    50% { opacity: 1; transform: scale(1.15) rotate(20deg); }
}

/* 17. Reduced motion & print ----------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        animation-delay: 0s !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .reveal,
    .reveal.reveal-pending:not(.is-visible) {
        opacity: 1 !important;
        transform: none !important;
    }
}

@media print {
    .skip-link,
    .announcement-bar,
    .site-header,
    .site-footer,
    .whatsapp-float,
    .back-to-top,
    .cookie-banner,
    .kk-toast-container,
    .kk-admin-toolbar,
    .kk-edit-layer,
    .kk-edit-pencil,
    .offcanvas,
    .modal,
    .modal-backdrop,
    .sticky-buy-bar,
    .hero-art,
    .flash-container,
    .newsletter-box,
    .campaign-banner .countdown,
    [data-copy]:not(.order-code),
    [data-share],
    .order-code .bi-copy,
    .no-print {
        display: none !important;
    }

    body {
        padding: 0 !important;
        background: #fff !important;
        color: #000;
        font-size: 11pt;
        line-height: 1.5;
    }

    .section,
    .section-sm {
        padding-block: 1rem;
    }

    .section-alt,
    .section-pattern,
    .section-dark,
    .page-hero,
    .hero {
        background: #fff !important;
        color: #000 !important;
    }

    .section-dark h1, .section-dark h2, .section-dark h3 {
        color: #000 !important;
    }

    .page-hero,
    .hero {
        padding: 0 0 1rem;
    }

    .page-hero::before,
    .page-hero::after,
    .hero::before,
    .hero::after {
        display: none;
    }

    .order-summary,
    .form-section,
    .iban-card,
    .product-card,
    .buy-box {
        position: static !important;
        box-shadow: none !important;
        border: 1px solid #999 !important;
        background: #fff !important;
        break-inside: avoid;
    }

    .order-code {
        border: 2px solid #000;
        background: #fff;
        color: #000;
    }

    .reveal,
    .reveal.reveal-pending:not(.is-visible) {
        opacity: 1 !important;
        transform: none !important;
    }

    a {
        color: #000 !important;
        text-decoration: underline;
    }

    .prose a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: .85em;
    }

    .kk-edit-mode .kk-editable,
    .kk-edit-mode [data-edit-url] {
        outline: none !important;
        background-color: transparent !important;
    }
}

/* Edit mode: pencil wrappers must not break component layouts */
.kk-edit-mode .product-card > .kk-editable {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

@media (min-width: 992px) {
    /* Let the sticky product gallery keep the full column height when it is wrapped for editing. */
    .kk-edit-mode .kk-editable:has(> .product-gallery) {
        height: 100%;
    }
}
