/* =============================================================================
   Ilm Books — Theme stylesheet  ("Editorial calm")
   Warm paper canvas, deep teal-green brand, gold accents, Fraunces + Inter.
   Fonts are self-hosted via assets/fonts/fonts.css (no @font-face here).
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. DESIGN TOKENS
   -------------------------------------------------------------------------- */
:root {
    /* brand */
    --ilm-green: #0b5c54;
    --ilm-green-600: #0a544c;
    --ilm-green-700: #073f3a;
    --ilm-green-050: #eaf3f0;
    --ilm-mint: #d8ebe5;
    --ilm-gold: #b3853b;
    --ilm-gold-050: #f3ecdd;
    --ilm-clay: #a85a49;

    /* neutral / paper */
    --ilm-bg: #faf8f3;
    --ilm-bg-2: #f2f0e9;
    --ilm-surface: #ffffff;
    --ilm-ink: #15201d;
    --ilm-body: #3f4a45;
    --ilm-muted: #6b756f;
    --ilm-subtle: #98a09a;
    --ilm-line: #e8e6de;
    --ilm-line-2: #dcdacf;

    /* dark (footer, hero overlay, dark sections) */
    --ilm-dark: #11211d;
    --ilm-dark-2: #0a1714;
    --ilm-on-dark: rgba(255, 255, 255, .86);
    --ilm-on-dark-soft: rgba(255, 255, 255, .66);

    /* type */
    --ilm-display: "Fraunces", Georgia, "Times New Roman", serif;
    --ilm-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

    /* radius */
    --r-sm: 10px;
    --r: 14px;
    --r-lg: 20px;
    --r-xl: 28px;
    --r-pill: 999px;

    /* shadow */
    --sh-1: 0 1px 2px rgba(16, 32, 28, .05), 0 2px 6px rgba(16, 32, 28, .04);
    --sh-2: 0 10px 30px rgba(16, 32, 28, .08);
    --sh-3: 0 24px 64px rgba(16, 32, 28, .14);
    --sh-green: 0 18px 42px rgba(11, 92, 84, .22);

    /* layout / motion */
    --container: 1280px;
    --gutter: clamp(18px, 4vw, 40px);
    --ease: cubic-bezier(.2, .6, .2, 1);
}

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    background: var(--ilm-bg);
    color: var(--ilm-body);
    font-family: var(--ilm-font);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

img {
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--ilm-display);
    color: var(--ilm-ink);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.015em;
}

p {
    margin: 0 0 1em;
}

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button,
select {
    cursor: pointer;
}

/* Focus-visible everywhere */
:focus-visible {
    outline: 2px solid var(--ilm-green);
    outline-offset: 2px;
    border-radius: 6px;
}

::selection {
    background: var(--ilm-mint);
    color: var(--ilm-ink);
}

/* -----------------------------------------------------------------------------
   Layout primitives
   -------------------------------------------------------------------------- */
.ilm-container {
    width: min(var(--container), 100% - (var(--gutter) * 2));
    margin-inline: auto;
}

.ilm-container--narrow {
    max-width: 880px;
}

.ilm-main {
    display: block;
    min-height: 50vh;
}

/* Utilities */
.ilm-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ilm-skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 200;
    padding: 12px 18px;
    border-radius: var(--r);
    background: var(--ilm-green);
    color: #fff;
    font-weight: 600;
    box-shadow: var(--sh-2);
    transition: top .2s var(--ease);
}

.ilm-skip-link:focus {
    top: 12px;
}

/* -----------------------------------------------------------------------------
   Eyebrow / link
   -------------------------------------------------------------------------- */
.ilm-eyebrow {
    display: inline-block;
    margin: 0 0 10px;
    font: 600 12px/1 var(--ilm-font);
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--ilm-green);
}

.ilm-section--dark .ilm-eyebrow {
    color: var(--ilm-gold);
}

.ilm-link,
.ilm-section__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ilm-green);
    font-weight: 600;
    transition: color .18s var(--ease);
}

.ilm-link:hover,
.ilm-section__link:hover {
    color: var(--ilm-green-700);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* -----------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.ilm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    background: transparent;
    color: var(--ilm-ink);
    font: 600 15px/1 var(--ilm-font);
    text-align: center;
    cursor: pointer;
    transition: transform .18s var(--ease), background .18s var(--ease),
        box-shadow .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);
}

.ilm-btn svg {
    flex: 0 0 auto;
}

.ilm-btn--primary {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
    color: #fff;
}

.ilm-btn--primary:hover {
    background: var(--ilm-green-600);
    border-color: var(--ilm-green-600);
    transform: translateY(-1px);
    box-shadow: var(--sh-green);
}

.ilm-btn--ghost {
    background: transparent;
    border-color: var(--ilm-line-2);
    color: var(--ilm-ink);
}

.ilm-btn--ghost:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-btn--light {
    background: #fff;
    border-color: #fff;
    color: var(--ilm-green);
}

.ilm-btn--light:hover {
    background: var(--ilm-mint);
    border-color: var(--ilm-mint);
    color: var(--ilm-green-700);
}

.ilm-btn--sm {
    min-height: 38px;
    padding: 0 16px;
    font-size: 14px;
}

.ilm-btn--block {
    width: 100%;
}

/* -----------------------------------------------------------------------------
   Chips
   -------------------------------------------------------------------------- */
.ilm-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-pill);
    background: rgba(255, 255, 255, .7);
    color: var(--ilm-body);
    font-size: 13px;
    font-weight: 600;
    transition: border-color .18s var(--ease), color .18s var(--ease),
        background .18s var(--ease);
}

.ilm-chip:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-chip--ondark {
    border-color: rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .08);
    color: var(--ilm-on-dark);
}

.ilm-chip--ondark:hover {
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .4);
    color: #fff;
}

/* -----------------------------------------------------------------------------
   Generic form controls
   -------------------------------------------------------------------------- */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="url"],
textarea,
select {
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}

textarea {
    min-height: 120px;
    padding-top: 12px;
    padding-bottom: 12px;
    resize: vertical;
    line-height: 1.55;
}

input[type="text"]:focus,
input[type="search"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

/* -----------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.ilm-section {
    padding: clamp(48px, 7vw, 92px) 0;
}

/* Every page starts at the same distance below the header: the first section
   in <main> (cart, checkout, content pages, catalogue) gets one shared top
   padding. The homepage hero (.ilm-hero) is untouched. */
.ilm-main > .ilm-section:first-child {
    padding-top: clamp(28px, 3.2vw, 44px);
}

.woocommerce-checkout .woocommerce > .woocommerce-notices-wrapper:first-child {
    margin-top: 0;
}

.ilm-section--alt {
    background: var(--ilm-bg-2);
}

.ilm-section--dark {
    background: linear-gradient(160deg, var(--ilm-dark), var(--ilm-dark-2));
    color: var(--ilm-on-dark);
}

.ilm-section__head {
    margin-bottom: clamp(24px, 4vw, 40px);
}

.ilm-section__head--split {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.ilm-section__title {
    margin: 0;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(28px, 3.4vw, 46px);
    line-height: 1.04;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-section--dark .ilm-section__title {
    color: #fff;
}

.ilm-section__lead {
    max-width: 620px;
    margin: 14px 0 0;
    color: var(--ilm-muted);
    font-size: 18px;
    line-height: 1.55;
}

.ilm-section--dark .ilm-section__lead {
    color: var(--ilm-on-dark-soft);
}

/* -----------------------------------------------------------------------------
   Panel / prose / empty
   -------------------------------------------------------------------------- */
.ilm-panel {
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    padding: clamp(22px, 4vw, 40px);
    box-shadow: var(--sh-1);
}

.ilm-prose {
    color: var(--ilm-body);
    max-width: 72ch;
}

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

.ilm-prose > *:last-child {
    margin-bottom: 0;
}

.ilm-prose p,
.ilm-prose li {
    color: var(--ilm-body);
    line-height: 1.7;
}

.ilm-prose h1,
.ilm-prose h2,
.ilm-prose h3,
.ilm-prose h4 {
    font-family: var(--ilm-display);
    color: var(--ilm-ink);
    line-height: 1.12;
    margin: 1.6em 0 .5em;
}

.ilm-prose h2 {
    font-size: clamp(24px, 2.4vw, 32px);
}

.ilm-prose h3 {
    font-size: clamp(20px, 2vw, 25px);
}

.ilm-prose a {
    color: var(--ilm-green);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ilm-prose a:hover {
    color: var(--ilm-green-700);
}

.ilm-prose ul,
.ilm-prose ol {
    margin: 0 0 1em;
    padding-left: 1.3em;
}

.ilm-prose li {
    margin: .3em 0;
}

.ilm-prose img {
    border-radius: var(--r);
    margin: 1em 0;
}

.ilm-prose blockquote {
    margin: 1.2em 0;
    padding: 4px 0 4px 20px;
    border-left: 3px solid var(--ilm-green);
    color: var(--ilm-muted);
    font-style: italic;
}

.ilm-empty {
    padding: clamp(28px, 5vw, 48px);
    border: 1px dashed var(--ilm-line-2);
    border-radius: var(--r-lg);
    background: #fff;
    color: var(--ilm-muted);
    text-align: center;
}

.ilm-empty p {
    margin: 0 0 .6em;
}

/* =============================================================================
   2. HEADER
   ============================================================================= */
.ilm-header {
    position: sticky;
    top: 0;
    z-index: 60;
}

/* Topbar */
.ilm-topbar {
    background: var(--ilm-dark);
    color: var(--ilm-on-dark-soft);
    font-size: 12px;
}

.ilm-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 36px;
    padding: 6px 0;
}

.ilm-topbar__msg {
    margin: 0;
    letter-spacing: .01em;
}

.ilm-topbar__links {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.ilm-topbar__links a {
    color: var(--ilm-on-dark-soft);
    font-weight: 600;
    transition: color .18s var(--ease);
}

.ilm-topbar__links a:hover {
    color: #fff;
}

.ilm-topbar__links span {
    opacity: .5;
}

/* Header bar */
.ilm-header__bar {
    position: relative;
    z-index: 3; /* above .ilm-nav so the live-search dropdown overlaps it */
    background: rgba(250, 248, 243, .85);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--ilm-line);
    transition: box-shadow .25s var(--ease), background .25s var(--ease);
}

.ilm-header.is-scrolled .ilm-header__bar {
    background: rgba(250, 248, 243, .94);
    box-shadow: var(--sh-2);
}

/* Compact variant once the page is scrolled (topbar is no longer part of the
   sticky header, so it just scrolls away above this). */
.ilm-header.is-scrolled .ilm-header__inner {
    min-height: 60px;
}

.ilm-brand__logo {
    transition: width .25s var(--ease), height .25s var(--ease);
}

.ilm-header.is-scrolled .ilm-brand__logo {
    width: 42px;
    height: 42px;
}

.ilm-header.is-scrolled .ilm-brand__tag {
    display: none;
}

.ilm-header.is-scrolled .ilm-nav__inner {
    padding: 5px 0;
}

.ilm-header__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 84px;
    transition: min-height .25s var(--ease);
}

.ilm-header.is-scrolled .ilm-header__inner {
    min-height: 70px;
}

/* Brand */
.ilm-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.ilm-brand__logo {
    width: 54px;
    height: 54px;
    flex: 0 0 auto;
    object-fit: contain;
}

.ilm-brand__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ilm-brand__name {
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 24px;
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--ilm-ink);
}

.ilm-brand__tag {
    margin-top: 4px;
    color: var(--ilm-muted);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .02em;
}

/* Header search wrap */
.ilm-header__search {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 0;
}

/* Browse (category mega dropdown), lives in the nav row */
.ilm-browse {
    position: relative;
    flex: 0 0 auto;
}

.ilm-browse__btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    background: var(--ilm-green-050);
    color: var(--ilm-green);
    font-size: 14px;
    font-weight: 600;
    transition: border-color .18s var(--ease), background .18s var(--ease);
}

.ilm-browse__btn:hover {
    border-color: var(--ilm-green);
}

.ilm-browse__chev {
    transition: transform .2s var(--ease);
}

.ilm-browse.is-open .ilm-browse__btn {
    border-color: var(--ilm-green);
    background: var(--ilm-mint);
}

.ilm-browse.is-open .ilm-browse__chev {
    transform: rotate(180deg);
}

.ilm-browse__panel {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    z-index: 80;
    width: min(720px, 90vw);
    padding: 22px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-3);
}

.ilm-browse__panel[hidden] {
    display: none;
}

.ilm-browse__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 4px;
}

.ilm-browse__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: var(--r-sm);
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 500;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.ilm-browse__link:hover {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-browse__link em {
    font-style: normal;
    color: var(--ilm-gold);
    font-size: 12px;
    font-weight: 600;
}

/* Search pill */
.ilm-search {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 580px;
    padding-left: 16px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    box-shadow: var(--sh-1);
    overflow: hidden;
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}

.ilm-search:focus-within {
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

.ilm-search > svg,
.ilm-search__icon {
    flex: 0 0 auto;
    color: var(--ilm-muted);
}

.ilm-search .ilm-search__field {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ilm-ink);
    font-size: 15px;
    -webkit-appearance: none;
    appearance: none;
}

.ilm-search__submit {
    flex: 0 0 auto;
    align-self: stretch;
    min-height: 0;
    border-radius: 0;
}

.ilm-search .ilm-search__field:focus {
    outline: none;
    border: 0;
    box-shadow: none;
}

.ilm-search__field::placeholder {
    color: var(--ilm-subtle);
}

.ilm-search__submit {
    flex: 0 0 auto;
}

/* Header actions */
.ilm-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.ilm-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: var(--r-pill);
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 600;
    transition: background .18s var(--ease), color .18s var(--ease);
}

.ilm-action:hover {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 44px;
    height: 44px;
    justify-content: center;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-pill);
    background: #fff;
    color: var(--ilm-ink);
    box-shadow: var(--sh-1);
    transition: border-color .18s var(--ease), color .18s var(--ease);
}

.ilm-cart:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-cart__count {
    position: absolute;
    top: -5px;
    right: -5px;
    display: grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: var(--r-pill);
    background: var(--ilm-green);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

/* Menu toggle (mobile) */
.ilm-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-pill);
    background: #fff;
    box-shadow: var(--sh-1);
}

.ilm-menu-toggle span:not(.ilm-sr-only) {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--ilm-ink);
    transition: transform .2s var(--ease), opacity .2s var(--ease);
}

.ilm-header.is-menu-open .ilm-menu-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.ilm-header.is-menu-open .ilm-menu-toggle span:nth-child(2) {
    opacity: 0;
}

.ilm-header.is-menu-open .ilm-menu-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* Primary nav row */
.ilm-nav {
    background: rgba(250, 248, 243, .85);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-nav__inner {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
}

.ilm-nav__menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilm-nav__menu li {
    margin: 0;
}

.ilm-nav__menu a {
    display: block;
    padding: 8px 14px;
    border-radius: var(--r-pill);
    color: var(--ilm-muted);
    font-size: 14px;
    font-weight: 600;
    transition: background .18s var(--ease), color .18s var(--ease);
}

.ilm-nav__menu a:hover,
.ilm-nav__menu .current-menu-item > a,
.ilm-nav__menu .current_page_item > a {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

/* Mobile drawer */
.ilm-mobile {
    display: none;
    border-bottom: 1px solid var(--ilm-line);
    background: var(--ilm-bg);
    box-shadow: var(--sh-2);
}

.ilm-mobile > .ilm-container {
    padding: 18px 0 24px;
}

.ilm-search--mobile {
    max-width: none;
    margin-bottom: 16px;
}

.ilm-mobile__menu {
    display: grid;
    gap: 2px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.ilm-mobile__menu a {
    display: block;
    padding: 11px 14px;
    border-radius: var(--r);
    color: var(--ilm-ink);
    font-size: 15px;
    font-weight: 600;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.ilm-mobile__menu a:hover {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-mobile__label {
    margin: 0 0 10px;
    color: var(--ilm-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ilm-mobile__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* =============================================================================
   2.2 HERO
   ============================================================================= */
.ilm-hero {
    position: relative;
    overflow: hidden;
    min-height: clamp(560px, 78vh, 760px);
    color: #fff;
    background: linear-gradient(150deg, var(--ilm-green-700), var(--ilm-dark-2));
}

.ilm-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
}

.ilm-hero__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(8, 20, 17, .86) 0%, rgba(8, 20, 17, .55) 46%, rgba(8, 20, 17, .25) 100%),
        radial-gradient(120% 80% at 80% 10%, rgba(179, 133, 59, .22), transparent 60%);
}

.ilm-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 18px;
    min-height: clamp(560px, 78vh, 760px);
    max-width: 760px;
    padding-block: clamp(70px, 12vh, 120px);
}

.ilm-hero__eyebrow {
    color: var(--ilm-gold);
}

.ilm-hero__title {
    margin: 0;
    font-family: var(--ilm-display);
    font-weight: 500;
    font-size: clamp(40px, 6.4vw, 84px);
    line-height: 1.02;
    letter-spacing: -.02em;
    color: #fff;
}

.ilm-hero__lead {
    max-width: 620px;
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(17px, 1.6vw, 21px);
    line-height: 1.55;
}

.ilm-search--hero {
    max-width: 500px;
    min-height: 62px;
    padding: 7px 7px 7px 24px;
    margin-top: 14px;
    border-radius: var(--r-pill);
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(11, 21, 17, .42);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .18),
        0 14px 44px rgba(8, 20, 17, .34);
    overflow: visible;
}

/* No focus/active state on the hero search: keep it identical to its resting
   look (this also overrides the base green focus ring). */
.ilm-search--hero:focus-within {
    border-color: rgba(255, 255, 255, .28);
    background: rgba(11, 21, 17, .42);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .18),
        0 14px 44px rgba(8, 20, 17, .34);
}

.ilm-search--hero .ilm-search__field {
    min-height: 46px;
    font-size: 16px;
    color: #fff;
}

.ilm-search--hero .ilm-search__field::placeholder {
    color: rgba(255, 255, 255, .78);
    opacity: 1;
}

.ilm-search--hero .ilm-search__submit {
    align-self: center;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    min-height: 0;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--ilm-green);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
    transition: transform .2s var(--ease), background .2s var(--ease);
}

.ilm-search--hero .ilm-search__submit:hover {
    background: var(--ilm-mint);
    transform: scale(1.07);
}

.ilm-search--hero .ilm-search__submit:active {
    transform: scale(0.95);
}

.ilm-hero__heart {
    display: inline-grid;
    place-items: center;
    vertical-align: -0.08em;
    color: #fff;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .3));
}

.ilm-hero__heart svg {
    width: 0.62em;
    height: 0.62em;
}

.ilm-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.ilm-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

.ilm-hero__stat {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    padding: 10px 16px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--r-pill);
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: rgba(255, 255, 255, .78);
    font-size: 14px;
}

.ilm-hero__stat strong {
    color: #fff;
    font-weight: 700;
    font-size: 16px;
}

.ilm-hero__videotoggle {
    position: absolute;
    right: clamp(16px, 4vw, 36px);
    bottom: clamp(16px, 4vw, 36px);
    z-index: 3;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    background: rgba(8, 20, 17, .45);
    color: #fff;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: background .18s var(--ease), border-color .18s var(--ease);
}

.ilm-hero__videotoggle:hover {
    background: rgba(8, 20, 17, .7);
    border-color: rgba(255, 255, 255, .5);
}

/* =============================================================================
   2.3 FEATURED RAIL
   ============================================================================= */
.ilm-rail {
    position: relative;
    overflow-x: clip;
    overflow-y: visible;
    padding: 6px 0 18px;
}

.ilm-rail__track {
    display: flex;
    gap: 20px;
    will-change: transform;
    touch-action: pan-y;
}

.ilm-rail__controls {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ilm-rail__btn {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border: 1px solid var(--ilm-line);
    border-radius: 50%;
    background: #fff;
    color: var(--ilm-ink);
    box-shadow: var(--sh-1);
    transition: border-color .18s var(--ease), color .18s var(--ease),
        background .18s var(--ease);
}

.ilm-rail__btn:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-rail__btn[disabled] {
    opacity: .4;
    cursor: default;
    pointer-events: none;
}

/* =============================================================================
   2.4 GENRES SECTION
   ============================================================================= */
.ilm-genres {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: clamp(24px, 4vw, 52px);
    align-items: start;
}

.ilm-genres__aside {
    position: sticky;
    top: 110px;
    display: grid;
    gap: 18px;
    min-width: 0;
}

.ilm-aside-card {
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    padding: 22px;
    box-shadow: var(--sh-1);
}

.ilm-aside-card__title {
    margin: 0 0 14px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 20px;
    line-height: 1.15;
    color: var(--ilm-ink);
}

.ilm-aside-list {
    display: grid;
    gap: 2px;
}

.ilm-aside-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-radius: var(--r);
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 500;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.ilm-aside-list a:hover {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-aside-list em {
    font-style: normal;
    color: var(--ilm-gold);
    font-size: 12px;
    font-weight: 600;
}

.ilm-aside-card--feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
}

.ilm-aside-card--feature .ilm-bookcard__media {
    width: 100%;
    max-width: 168px;
    aspect-ratio: 3 / 4.4;
    margin: 0 auto;
}

.ilm-aside-card--feature .ilm-bookcard__img,
.ilm-aside-card--feature .ilm-bookcard__ph {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ilm-aside-card--feature h3 {
    margin: 0;
    font-family: var(--ilm-display);
    font-weight: 500;
    font-size: 19px;
    line-height: 1.2;
    color: var(--ilm-ink);
}

.ilm-aside-card--feature p {
    margin: 0;
    color: var(--ilm-muted);
    font-size: 14px;
}

.ilm-aside-card--feature .ilm-product-card__price,
.ilm-aside-card--feature .price {
    color: var(--ilm-ink);
    font-size: 17px;
    font-weight: 600;
}

.ilm-genres__main {
    min-width: 0;
}

.ilm-genres__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: clamp(18px, 3vw, 28px);
}

.ilm-genres__head .ilm-section__title {
    margin: 0;
}

.ilm-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ilm-tab {
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    background: rgba(255, 255, 255, .6);
    color: var(--ilm-muted);
    font-size: 14px;
    font-weight: 600;
    transition: background .18s var(--ease), color .18s var(--ease),
        border-color .18s var(--ease);
}

.ilm-tab:hover {
    border-color: var(--ilm-line-2);
    color: var(--ilm-green);
}

.ilm-tab.is-active,
.ilm-tab[aria-selected="true"] {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
    color: #fff;
}

.ilm-genres__panels {
    min-width: 0;
}

.ilm-genres__panel[hidden] {
    display: none;
}

.ilm-bookcard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

/* Horizontal book card */
.ilm-bookcard {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 18px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    padding: 16px;
    box-shadow: var(--sh-1);
    transition: transform .2s var(--ease), box-shadow .2s var(--ease),
        border-color .2s var(--ease);
}

.ilm-bookcard:hover {
    border-color: rgba(11, 92, 84, .4);
}

.ilm-bookcard__media {
    display: block;
    aspect-ratio: 3 / 4.5;
    border-radius: var(--r);
    overflow: hidden;
    box-shadow: var(--sh-2);
    background: linear-gradient(180deg, #fbfaf6, #eef3ef);
    perspective: 800px;
}

.ilm-bookcard__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform-style: preserve-3d;
    will-change: transform;
}

.ilm-bookcard__ph {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 26px;
    color: rgba(11, 92, 84, .35);
}

.ilm-bookcard__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ilm-bookcard__cat {
    display: inline-block;
    margin: 0 0 6px;
    font: 600 11px/1 var(--ilm-font);
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ilm-gold);
}

.ilm-bookcard__title {
    margin: 0 0 5px;
    font-family: var(--ilm-display);
    font-weight: 500;
    font-size: 19px;
    line-height: 1.18;
    color: var(--ilm-ink);
}

.ilm-bookcard__title a {
    transition: color .15s var(--ease);
}

.ilm-bookcard__title a:hover {
    color: var(--ilm-green);
}

.ilm-bookcard__author {
    margin: 0 0 8px;
    color: var(--ilm-muted);
    font-size: 13px;
}

.ilm-bookcard__excerpt {
    margin: 0 0 10px;
    color: var(--ilm-muted);
    font-size: 14px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ilm-bookcard__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 6px;
}

.ilm-bookcard__price {
    color: var(--ilm-ink);
    font-size: 17px;
    font-weight: 600;
    white-space: nowrap;
}

.ilm-bookcard__price del {
    color: var(--ilm-muted);
    font-weight: 400;
    font-size: 13px;
    margin-right: 5px;
}

.ilm-bookcard__price ins {
    text-decoration: none;
}

/* =============================================================================
   2.5 VERTICAL PRODUCT CARD
   ============================================================================= */
.ilm-product-grid,
ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilm-product-grid.is-compact-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

/* WC loop item wrapper */
li.product.ilm-product-loop-item,
ul.products li.product {
    display: flex;
    list-style: none;
    margin: 0;
}

li.product.ilm-product-loop-item > .ilm-product-card {
    width: 100%;
}

.ilm-product-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-1);
    transition: transform .2s var(--ease), box-shadow .2s var(--ease),
        border-color .2s var(--ease);
}

.ilm-product-card:hover {
    border-color: rgba(11, 92, 84, .4);
}

.ilm-product-card__media {
    display: block;
    aspect-ratio: .72;
    padding: 18px 18px 0;
    background: linear-gradient(180deg, #fbfaf6, #eef3ef);
    perspective: 900px;
}

.ilm-product-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 16px 18px rgba(16, 32, 28, .18));
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: transform;
}

.ilm-product-card__ph {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 40px;
    color: rgba(11, 92, 84, .32);
}

.ilm-product-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 4px;
    padding: 16px;
}

.ilm-product-card__cat {
    display: inline-block;
    margin: 0 0 2px;
    font: 600 11px/1 var(--ilm-font);
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ilm-gold);
}

.ilm-product-card__title {
    margin: 0;
    font-family: var(--ilm-display);
    font-weight: 500;
    font-size: 18px;
    line-height: 1.18;
    color: var(--ilm-ink);
}

.ilm-product-card__title a {
    transition: color .15s var(--ease);
}

.ilm-product-card__title a:hover {
    color: var(--ilm-green);
}

.ilm-product-card__author {
    margin: 0;
    color: var(--ilm-muted);
    font-size: 13px;
}

.ilm-product-card.is-compact .ilm-product-card__author {
    display: none;
}

.ilm-product-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
}

.ilm-product-card__price {
    color: var(--ilm-ink);
    font-size: 17px;
    font-weight: 600;
    white-space: nowrap;
}

.ilm-product-card__price del {
    color: var(--ilm-muted);
    font-weight: 400;
    font-size: 13px;
    margin-right: 5px;
}

.ilm-product-card__price ins {
    text-decoration: none;
}

/* Rail variant */
.ilm-product-card.is-rail {
    width: clamp(190px, 42vw, 230px);
    flex: 0 0 auto;
    scroll-snap-align: start;
}

/* Add-to-cart buttons (card) */
.ilm-addbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--ilm-green);
    border-radius: var(--r-pill);
    background: var(--ilm-green);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: background .18s var(--ease), box-shadow .18s var(--ease),
        transform .18s var(--ease);
}

.ilm-addbtn:hover {
    background: var(--ilm-green-600);
    transform: translateY(-1px);
    box-shadow: var(--sh-green);
}

.ilm-addbtn--icon {
    width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    flex: 0 0 auto;
}

.ilm-addbtn.loading {
    opacity: .7;
    pointer-events: none;
}

.ilm-addbtn.added {
    background: var(--ilm-green-700);
    border-color: var(--ilm-green-700);
}

/* =============================================================================
   2.6 CAFÉ BAND
   ============================================================================= */
.ilm-cafe {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
    align-items: center;
    gap: clamp(28px, 5vw, 64px);
}

.ilm-cafe__copy p:not(.ilm-eyebrow) {
    max-width: 560px;
    color: var(--ilm-on-dark-soft);
    font-size: 18px;
    line-height: 1.6;
}

.ilm-cafe__copy h2 {
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(28px, 3.4vw, 46px);
    line-height: 1.04;
    letter-spacing: -.015em;
}

.ilm-cafe__copy .ilm-btn {
    margin-top: 10px;
}

.ilm-cafe__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 320px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--r-xl);
    background:
        radial-gradient(circle at 80% 18%, rgba(179, 133, 59, .3), transparent 40%),
        linear-gradient(135deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .02));
    box-shadow: var(--sh-3);
}

.ilm-cafe__visual.has-media {
    padding: 0;
}

.ilm-cafe__visual.has-media img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
}

.ilm-cafe__logo {
    width: min(180px, 50%);
    height: auto;
    border-radius: 50%;
    background: rgba(255, 255, 255, .95);
    padding: 10px;
    box-shadow: var(--sh-2);
}

.ilm-cafe__marks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 18px;
    margin: 20px 0 0;
    padding: 0 24px;
    list-style: none;
    color: rgba(255, 255, 255, .82);
    font-family: var(--ilm-display);
    font-weight: 500;
    font-size: clamp(20px, 3vw, 30px);
    text-align: center;
}

.ilm-cafe__marks li {
    margin: 0;
}

/* =============================================================================
   2.7 VALUE / TRUST ROW
   ============================================================================= */
.ilm-values {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.ilm-value {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-1);
}

.ilm-value__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-value strong {
    display: block;
    color: var(--ilm-ink);
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.2;
}

.ilm-value span {
    display: block;
    margin-top: 4px;
    color: var(--ilm-muted);
    font-size: 14px;
    line-height: 1.45;
}

/* =============================================================================
   2.8 SHOP ARCHIVE
   ============================================================================= */
.ilm-shop-hero {
    padding: clamp(28px, 3.2vw, 44px) 0 clamp(40px, 6vw, 72px);
    background: var(--ilm-bg-2);
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-shop-hero h1 {
    margin: 12px 0 0;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(30px, 3.4vw, 52px);
    line-height: 1.04;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-shop-hero p {
    max-width: 640px;
    margin: 12px 0 0;
    color: var(--ilm-muted);
    font-size: 18px;
}

.ilm-shop-hero .ilm-search {
    max-width: 560px;
    margin-top: 22px;
}

.ilm-shop-hero__meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    color: var(--ilm-muted);
    font-size: 14px;
    font-weight: 500;
}

.ilm-shop {
    display: grid;
    grid-template-columns: 286px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.ilm-shop__aside {
    min-width: 0;
}

.ilm-filter {
    position: sticky;
    top: 120px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    padding: 22px;
    box-shadow: var(--sh-1);
}

.ilm-filter__title {
    margin: 0 0 14px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 18px;
    color: var(--ilm-ink);
}

.ilm-catnav {
    display: grid;
    gap: 2px;
}

.ilm-catnav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-radius: var(--r);
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 500;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.ilm-catnav a:hover,
.ilm-catnav a.is-active {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-catnav a.is-active {
    font-weight: 600;
}

.ilm-catnav em {
    font-style: normal;
    color: var(--ilm-gold);
    font-size: 12px;
    font-weight: 600;
}

.ilm-shop__main {
    min-width: 0;
}

.ilm-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding: 12px 18px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    box-shadow: var(--sh-1);
}

/* =============================================================================
   2.9 SINGLE PRODUCT
   ============================================================================= */
.ilm-product {
    padding: clamp(40px, 6vw, 80px) 0 clamp(40px, 6vw, 72px);
}

.ilm-product__grid {
    display: grid;
    grid-template-columns: minmax(300px, .8fr) minmax(0, 1fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
}

.ilm-product__media {
    position: sticky;
    top: 120px;
    display: grid;
    place-items: center;
    padding: 36px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-xl);
    background:
        radial-gradient(circle at 50% 18%, rgba(179, 133, 59, .14), transparent 42%),
        linear-gradient(180deg, #fbfaf7, #edf3ef);
    box-shadow: var(--sh-2);
}

.ilm-product__img {
    width: 100%;
    max-width: 520px;
    object-fit: contain;
    filter: drop-shadow(0 26px 30px rgba(16, 32, 28, .22));
}

.ilm-product__ph {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 360px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 56px;
    color: rgba(11, 92, 84, .3);
}

.ilm-product__info {
    min-width: 0;
}

.ilm-breadcrumb {
    margin-bottom: 16px;
    color: var(--ilm-muted);
    font-size: 13px;
}

.ilm-breadcrumb a {
    color: var(--ilm-muted);
    transition: color .15s var(--ease);
}

.ilm-breadcrumb a:hover {
    color: var(--ilm-green);
}

.ilm-product__cat {
    margin: 0 0 8px;
}

.ilm-product__cat a {
    color: var(--ilm-green);
}

.ilm-product__cat a:hover {
    color: var(--ilm-green-700);
}

.ilm-product__title {
    margin: 0 0 12px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(30px, 3.4vw, 52px);
    line-height: 1.04;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-product__author {
    margin: 0 0 18px;
    color: var(--ilm-green);
    font-size: 18px;
    font-weight: 600;
}

.ilm-product__intro {
    max-width: 640px;
    margin: 0 0 24px;
    color: var(--ilm-body);
    font-size: 17px;
}

.ilm-buybox {
    padding: 24px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-1);
}

.ilm-buybox__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-buybox__label {
    color: var(--ilm-muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.ilm-buybox__price {
    color: var(--ilm-ink);
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
}

.ilm-buybox__price del {
    margin-right: 8px;
    color: var(--ilm-muted);
    font-size: 18px;
    font-weight: 400;
}

.ilm-buybox__price ins {
    text-decoration: none;
}

.ilm-facts {
    margin: 0 0 22px;
}

.ilm-facts div {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-facts dt {
    color: var(--ilm-muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.ilm-facts dd {
    margin: 0;
    color: var(--ilm-ink);
    font-weight: 500;
}

.ilm-product__cart {
    margin-bottom: 20px;
}

.ilm-product__cart .stock {
    display: none;
}

.ilm-trust {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilm-trust li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ilm-muted);
    font-size: 14px;
}

.ilm-trust svg {
    flex: 0 0 auto;
    color: var(--ilm-green);
}

.ilm-product__desc h2 {
    margin: 0 0 16px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(24px, 2.6vw, 34px);
    color: var(--ilm-ink);
}

/* =============================================================================
   2.11 FOOTER
   ============================================================================= */
.ilm-footer {
    background: linear-gradient(160deg, var(--ilm-dark), var(--ilm-dark-2));
    color: var(--ilm-on-dark-soft);
}

.ilm-footer__top {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);
    gap: 32px;
    padding-block: clamp(40px, 6vw, 72px);
}

.ilm-footer__brand {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.ilm-footer__brand img {
    width: 64px;
    height: 64px;
    flex: 0 0 auto;
    object-fit: contain;
    border-radius: 50%;
    background: #fff;
    padding: 4px;
}

.ilm-footer__name {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.1;
}

.ilm-footer__brand p {
    margin: 0;
    max-width: 320px;
    color: var(--ilm-on-dark-soft);
    font-size: 14px;
    line-height: 1.55;
}

.ilm-footer__col h3 {
    margin: 0 0 14px;
    color: var(--ilm-on-dark);
    font-family: var(--ilm-font);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.ilm-footer__col ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilm-footer__col a {
    color: var(--ilm-on-dark-soft);
    font-size: 14px;
    transition: color .15s var(--ease);
}

.ilm-footer__col a:hover {
    color: #fff;
}

.ilm-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 0;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 13px;
    color: var(--ilm-on-dark-soft);
}

/* =============================================================================
   3. WOOCOMMERCE COVERAGE
   ============================================================================= */

/* Defensively hide any star-rating / review markup */
.star-rating,
.woocommerce-product-rating,
.comment-form-rating,
.woocommerce .star-rating,
p.stars,
.woocommerce-review-link {
    display: none !important;
}

/* Commerce page wrapper */
.ilm-commerce {
    min-width: 0;
}

/* WC primary buttons → .ilm-btn--primary look */
.button,
button.button,
input.button,
.single_add_to_cart_button,
.wc-proceed-to-checkout .button,
#place_order,
.checkout-button,
.wc-forward,
.added_to_cart,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 22px;
    border: 1px solid var(--ilm-green);
    border-radius: var(--r-pill);
    background: var(--ilm-green);
    color: #fff;
    font: 600 15px/1 var(--ilm-font);
    cursor: pointer;
    text-decoration: none;
    transition: transform .18s var(--ease), background .18s var(--ease),
        box-shadow .18s var(--ease), border-color .18s var(--ease);
}

.button:hover,
button.button:hover,
input.button:hover,
.single_add_to_cart_button:hover,
.wc-proceed-to-checkout .button:hover,
#place_order:hover,
.checkout-button:hover,
.wc-forward:hover,
.added_to_cart:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    background: var(--ilm-green-600);
    border-color: var(--ilm-green-600);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--sh-green);
}

.woocommerce button.button.alt,
.woocommerce a.button.alt {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
}

.button:disabled,
button.button:disabled,
.button.disabled,
.single_add_to_cart_button.disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Single add-to-cart form */
form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0;
}

form.cart .single_add_to_cart_button {
    min-height: 50px;
}

/* Quantity stepper */
.quantity {
    display: inline-flex;
    align-items: center;
}

.quantity input.qty {
    width: 80px;
    min-height: 50px;
    padding: 0 8px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
    text-align: center;
    font-weight: 600;
    -moz-appearance: textfield;
}

.quantity input.qty:focus {
    outline: none;
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

/* Notices */
.woocommerce-notices-wrapper {
    width: min(var(--container), 100% - (var(--gutter) * 2));
    margin: 20px auto 0;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-store-notice {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin: 0 0 18px;
    padding: 14px 18px;
    border: 0 !important;
    border-left: 3px solid var(--ilm-green) !important;
    border-radius: var(--r);
    background: var(--ilm-green-050);
    color: var(--ilm-ink);
    list-style: none;
    box-shadow: var(--sh-1);
}

.woocommerce-message {
    border-left-color: var(--ilm-green) !important;
    background: var(--ilm-green-050);
}

.woocommerce-info {
    border-left-color: var(--ilm-gold) !important;
    background: var(--ilm-gold-050);
}

.woocommerce-error {
    flex-direction: column;
    align-items: flex-start;
    border-left-color: var(--ilm-clay) !important;
    background: #fbf1ee;
}

.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li {
    margin: 2px 0;
    list-style: none;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
    min-height: 38px;
    padding: 0 16px;
    font-size: 14px;
    margin-left: auto;
}

/* Tables */
table.shop_table,
.woocommerce table.shop_table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-1);
}

table.shop_table th,
table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: 16px;
    border-top: 1px solid var(--ilm-line);
    text-align: left;
    vertical-align: middle;
    color: var(--ilm-body);
}

table.shop_table thead th,
.woocommerce table.shop_table thead th {
    border-top: 0;
    color: var(--ilm-muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
}

table.shop_table tbody tr:first-child td {
    border-top: 1px solid var(--ilm-line);
}

table.shop_table .product-thumbnail img {
    width: 64px;
    max-width: 64px;
    border-radius: var(--r-sm);
    background: var(--ilm-bg-2);
}

table.shop_table .product-name a {
    color: var(--ilm-ink);
    font-weight: 600;
}

table.shop_table .product-name a:hover {
    color: var(--ilm-green);
}

table.shop_table td.product-name dl.variation {
    margin: 6px 0 0;
    color: var(--ilm-muted);
    font-size: 13px;
}

table.shop_table .product-remove a.remove,
.woocommerce a.remove {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: var(--ilm-bg-2);
    color: var(--ilm-clay) !important;
    font-size: 18px;
    line-height: 1;
    text-decoration: none;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.woocommerce a.remove:hover {
    background: var(--ilm-clay);
    color: #fff !important;
}

table.shop_table td.actions {
    background: var(--ilm-bg);
}

table.shop_table tfoot th,
table.shop_table tfoot td {
    font-weight: 600;
    color: var(--ilm-ink);
}

/* Cart form wrapper (horizontal scroll on phones) */
.woocommerce-cart-form {
    margin-bottom: 28px;
    overflow-x: auto;
}

/* Coupon */
.coupon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-right: 12px;
}

.coupon label {
    display: none;
}

.coupon .input-text,
#coupon_code {
    min-height: 46px;
    width: clamp(180px, 40vw, 260px);
    padding: 0 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
}

/* Cart collaterals / totals */
.cart-collaterals {
    display: block;
}

.cart-collaterals::after {
    content: none;
}

.cart_totals {
    width: 100%;
    padding: 24px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-1);
}

.cart_totals h2,
#order_review_heading {
    margin: 0 0 18px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 24px;
    line-height: 1.1;
    color: var(--ilm-ink);
}

.cart_totals table.shop_table {
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
    padding: 12px 0;
    border-bottom: 1px solid var(--ilm-line);
    vertical-align: top;
}

.cart_totals table.shop_table th {
    text-align: left;
    color: var(--ilm-muted);
    font-weight: 600;
    white-space: nowrap;
}

.cart_totals table.shop_table td {
    text-align: right;
    color: var(--ilm-ink);
}

.cart_totals table.shop_table tr:last-child th,
.cart_totals table.shop_table tr:last-child td {
    border-bottom: 0;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
    font-size: 17px;
    font-weight: 700;
}

.wc-proceed-to-checkout {
    margin-top: 18px;
    padding: 0;
}

.wc-proceed-to-checkout .button {
    width: 100%;
    min-height: 52px;
}

.cross-sells {
    margin-top: 36px;
}

/* Forms (form-row) */
.woocommerce form .form-row,
.woocommerce-checkout .form-row {
    display: grid;
    gap: 7px;
    margin: 0 0 16px;
    padding: 0;
}

.woocommerce form .form-row label {
    color: var(--ilm-ink);
    font-size: 14px;
    font-weight: 600;
}

.woocommerce form .form-row .required {
    color: var(--ilm-clay);
    border: 0;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
    width: 100%;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
}

.woocommerce form .form-row textarea {
    min-height: 120px;
    padding-top: 12px;
    resize: vertical;
    line-height: 1.55;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    outline: none;
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text {
    border-color: var(--ilm-clay);
}

/* select2 */
.select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0;
    line-height: 44px;
    color: var(--ilm-ink);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px;
}

.select2-dropdown {
    border-color: var(--ilm-line);
    border-radius: var(--r);
    box-shadow: var(--sh-2);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--ilm-green);
}

/* Checkout layout */
.woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 460px);
    grid-template-rows: auto 1fr;
    column-gap: 32px;
    align-items: start;
}

.woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0;
}

.woocommerce-checkout .col2-set {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.checkout_coupon,
#order_review {
    padding: 24px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
.checkout_coupon h3 {
    margin: 0 0 20px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 24px;
    line-height: 1.1;
    color: var(--ilm-ink);
}

#order_review_heading {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    margin: 0 0 16px;
}

#order_review {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    position: sticky;
    top: 168px;
}

.woocommerce-checkout-review-order-table {
    margin-bottom: 18px;
    box-shadow: none;
}

.woocommerce-checkout-payment {
    margin-top: 18px;
    border-radius: var(--r-lg);
}

.woocommerce-checkout #payment {
    background: transparent;
    border-radius: var(--r-lg);
}

.woocommerce-checkout-payment ul.payment_methods {
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
    border: 0;
}

.woocommerce-checkout-payment li {
    padding: 14px 0;
    border-bottom: 1px solid var(--ilm-line);
    background: transparent;
}

.woocommerce-checkout-payment li:last-child {
    border-bottom: 0;
}

.woocommerce-checkout-payment label {
    color: var(--ilm-ink);
    font-weight: 600;
}

.woocommerce-checkout-payment .payment_box {
    margin-top: 10px;
    padding: 12px 14px;
    border-radius: var(--r);
    background: var(--ilm-bg-2);
    color: var(--ilm-muted);
    font-size: 14px;
}

.woocommerce-checkout-payment .payment_box::before {
    display: none;
}

.place-order {
    margin: 0;
}

.place-order .button,
#place_order {
    width: 100%;
    min-height: 52px;
}

.woocommerce-terms-and-conditions-wrapper {
    margin-bottom: 16px;
    color: var(--ilm-muted);
    font-size: 14px;
}

/* My account */
.woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-MyAccount-navigation a {
    display: block;
    padding: 10px 16px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-pill);
    background: #fff;
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 600;
    transition: background .18s var(--ease), border-color .18s var(--ease),
        color .18s var(--ease);
}

.woocommerce-MyAccount-navigation a:hover,
.woocommerce-MyAccount-navigation li.is-active a {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
    color: #fff;
}

.woocommerce-MyAccount-content {
    padding: 24px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-MyAccount-content a:not(.button) {
    color: var(--ilm-green);
    font-weight: 600;
}

/* Addresses grid */
.woocommerce-account .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 16px;
}

/* Pagination */
.woocommerce-pagination {
    margin-top: 36px;
}

.woocommerce-pagination ul.page-numbers {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
}

.woocommerce-pagination ul.page-numbers li {
    margin: 0;
    border: 0;
}

.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers,
.page-numbers {
    display: grid;
    place-items: center;
    min-width: 44px;
    height: 44px;
    padding: 0 8px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-body);
    font-weight: 600;
    transition: border-color .15s var(--ease), color .15s var(--ease),
        background .15s var(--ease);
}

.woocommerce-pagination a.page-numbers:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.woocommerce-pagination span.page-numbers.current,
.page-numbers.current {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
    color: #fff;
}

/* Result count & ordering */
.woocommerce-result-count {
    margin: 0;
    color: var(--ilm-muted);
    font-size: 14px;
}

.woocommerce-ordering {
    margin: 0;
}

.woocommerce-ordering select {
    min-height: 44px;
    padding: 0 38px 0 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
    font-weight: 500;
}

/* Price */
.price,
.woocommerce-Price-amount {
    color: var(--ilm-ink);
    font-weight: 600;
}

.price del,
.woocommerce-Price-amount del {
    color: var(--ilm-muted);
    font-weight: 400;
    margin-right: 6px;
}

.price ins {
    text-decoration: none;
    color: var(--ilm-ink);
}

/* Stock */
.stock {
    margin: 0;
    color: var(--ilm-green);
    font-weight: 600;
}

.stock.out-of-stock {
    color: var(--ilm-clay);
}

/* Onsale badge */
.onsale,
span.onsale {
    display: inline-flex;
    align-items: center;
    min-height: 0;
    padding: 4px 12px;
    border-radius: var(--r-pill);
    background: var(--ilm-gold);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Breadcrumb (WC) */
.woocommerce-breadcrumb {
    margin-bottom: 16px;
    color: var(--ilm-muted);
    font-size: 13px;
}

.woocommerce-breadcrumb a {
    color: var(--ilm-muted);
}

.woocommerce-breadcrumb a:hover {
    color: var(--ilm-green);
}

/* Order details / received */
.woocommerce-order .woocommerce-order-overview,
.woocommerce-order .woocommerce-customer-details,
.woocommerce-order .woocommerce-order-details {
    margin-bottom: 28px;
}

.woocommerce-order-overview {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    list-style: none;
    box-shadow: var(--sh-1);
}

.woocommerce-order-overview li {
    flex: 1 1 140px;
    color: var(--ilm-muted);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.woocommerce-order-overview li strong {
    display: block;
    margin-top: 6px;
    color: var(--ilm-ink);
    font-size: 16px;
    text-transform: none;
    letter-spacing: 0;
}

/* Login / register forms */
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-EditAccountForm {
    max-width: 520px;
    padding: 24px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-form-login__rememberme,
.woocommerce-form-register__submit {
    margin-top: 8px;
}

/* =============================================================================
   7. RESPONSIVE
   ============================================================================= */
@media (max-width: 1180px) {
    .ilm-product-grid,
    ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .ilm-genres {
        grid-template-columns: 1fr;
    }

    .ilm-genres__aside {
        position: static;
        top: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ilm-shop {
        grid-template-columns: 1fr;
    }

    .ilm-filter {
        position: static;
        top: auto;
    }

    .ilm-catnav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ilm-product__grid {
        grid-template-columns: 1fr;
    }

    .ilm-product__media {
        position: static;
        top: auto;
        max-width: 420px;
    }

    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .woocommerce-checkout #customer_details {
        grid-column: auto;
        grid-row: auto;
    }

    #order_review_heading,
    #order_review {
        grid-column: auto;
        grid-row: auto;
        position: static;
        top: auto;
    }

    #order_review_heading {
        margin: 0 0 12px;
    }

    .cart-collaterals {
        grid-template-columns: 1fr;
    }

    .cart_totals {
        grid-column: auto;
    }
}

@media (max-width: 980px) {
    /* Header collapses to brand + actions + menu toggle. The search column is
       hidden here, so collapse to two tracks: the brand shrinks (ellipsis)
       and can never slide under the action icons. */
    .ilm-header__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 72px;
    }

    .ilm-header.is-scrolled .ilm-header__inner {
        min-height: 64px;
    }

    .ilm-header__search {
        display: none;
    }

    .ilm-brand {
        gap: 10px;
    }

    .ilm-brand__name {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ilm-header__actions {
        gap: 6px;
    }

    .ilm-action span {
        display: none;
    }

    .ilm-action {
        width: 44px;
        padding: 0;
        justify-content: center;
    }

    .ilm-menu-toggle {
        display: inline-flex;
    }

    .ilm-nav {
        display: none;
    }

    .ilm-header.is-menu-open .ilm-mobile {
        display: block;
    }

    .ilm-product__title {
        font-size: clamp(28px, 5vw, 40px);
    }
}

@media (min-width: 981px) {
    .ilm-mobile {
        display: none !important;
    }
}

@media (max-width: 760px) {
    .ilm-topbar {
        display: none;
    }

    .ilm-bookcard-grid {
        grid-template-columns: 1fr;
    }

    .ilm-genres__aside {
        grid-template-columns: 1fr;
    }

    .ilm-cafe {
        grid-template-columns: 1fr;
    }

    .ilm-values {
        grid-template-columns: repeat(2, 1fr);
    }

    .ilm-footer__top {
        grid-template-columns: 1fr;
    }

    .ilm-product-grid,
    ul.products {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
        gap: 16px;
    }

    .ilm-catnav {
        grid-template-columns: 1fr;
    }

    .ilm-section__head--split {
        flex-direction: column;
        align-items: flex-start;
    }

    .ilm-shop-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .ilm-buybox__top {
        flex-direction: column;
        gap: 8px;
    }

    .ilm-facts div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .woocommerce-account .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }

    .coupon {
        width: 100%;
        margin: 0 0 12px;
    }

    .coupon .input-text,
    #coupon_code {
        width: 100%;
        flex: 1 1 auto;
    }

    .woocommerce-cart-form table.shop_table {
        min-width: 640px;
    }

    .ilm-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .ilm-product-grid,
    ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .ilm-values {
        grid-template-columns: 1fr;
    }

    .ilm-bookcard {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 14px;
        padding: 14px;
    }

    .ilm-product-card__media {
        padding: 14px 14px 0;
    }

    .ilm-product-card__body {
        padding: 14px;
    }

    .ilm-hero__stats {
        gap: 8px;
    }

    .ilm-hero__stat {
        padding: 8px 12px;
        font-size: 13px;
    }

    .ilm-brand__tag {
        display: none;
    }

    .ilm-brand__name {
        font-size: 21px;
    }
}

/* -----------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* ==========================================================================
   Post-review refinements (accessibility, contrast, sticky offsets)
   ========================================================================== */

:root {
    --ilm-gold-700: #7c5a23; /* AA-safe gold for small text */
}

/* Contrast AA: small category eyebrows on white cards */
.ilm-bookcard__cat,
.ilm-product-card__cat {
    color: var(--ilm-gold-700);
}

/* Contrast AA: meaningful placeholder copy must stay readable */
.ilm-search__field::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--ilm-muted);
    opacity: 1;
}

/* Reduced motion: fully stop the hero video, not just JS-pause it */
@media (prefers-reduced-motion: reduce) {
    .ilm-hero__video {
        display: none !important;
    }
}

/* Sticky panels must clear the full sticky header (topbar + bar + nav ≈ 168px) */
.ilm-genres__aside,
.ilm-filter,
.ilm-product__media,
#order_review {
    top: 168px;
}

/* Complete the defensive no-reviews hide set */
.woocommerce-product-rating {
    display: none !important;
}

/* The AJAX "view cart" link injected into a card foot should read as a text link,
   not a full primary button */
.ilm-product-card__foot .added_to_cart,
.ilm-bookcard__foot .added_to_cart {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    color: var(--ilm-green);
    font-size: 13px;
    font-weight: 600;
}

.ilm-product-card__foot .added_to_cart:hover,
.ilm-bookcard__foot .added_to_cart:hover {
    background: transparent;
    box-shadow: none;
    transform: none;
    color: var(--ilm-green-700);
    text-decoration: underline;
}

/* ==========================================================================
   Final review pass (visual QA from real screenshots)
   ========================================================================== */

/* The add-to-cart notice is programmatically focused (tabindex=-1) for a11y;
   that triggered a focus outline that read as a second border. Suppress it. */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus,
.woocommerce-store-notice:focus,
.woocommerce-message:focus-visible,
.woocommerce-info:focus-visible,
.woocommerce-error:focus-visible {
    outline: none;
}

/* The brand wordmark must never wrap to two lines */
.ilm-brand__name {
    white-space: nowrap;
}

/* Cart totals: shipping options should not show list bullets */
.cart_totals .woocommerce-shipping-methods,
.cart_totals ul#shipping_method,
.woocommerce-shipping-totals ul,
.woocommerce-shipping-totals li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-shipping-totals td,
.cart_totals tr.shipping td {
    text-align: left;
}

@media (max-width: 760px) {
    .ilm-brand__logo {
        width: 44px;
        height: 44px;
    }

    .ilm-brand__name {
        font-size: 19px;
    }

    .ilm-brand__tag {
        display: none;
    }
}

/* ==========================================================================
   Round 3 (header search, hero chips, value icons, cart totals, shipping)
   ========================================================================== */

/* Subtle, low-emphasis header search (icon submit, muted fill) */
.ilm-search--header {
    max-width: 430px;
    padding-left: 6px;
    border-color: transparent;
    background: var(--ilm-bg-2);
    box-shadow: none;
}

.ilm-search--header:focus-within {
    border-color: var(--ilm-line-2);
    background: #fff;
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

.ilm-search--header .ilm-search__submit {
    display: grid;
    place-items: center;
    align-self: center;
    width: 38px;
    height: 38px;
    min-height: 0;
    flex: 0 0 auto;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--ilm-muted);
}

.ilm-search--header .ilm-search__submit:hover {
    color: var(--ilm-green);
}

.ilm-search--header .ilm-search__field {
    min-height: 42px;
    padding-right: 14px;
    font-size: 14px;
}

/* Hero category chips: unambiguously clickable above the scrim */
.ilm-hero__chips {
    position: relative;
    z-index: 2;
}

.ilm-hero__chips .ilm-chip {
    cursor: pointer;
}

/* Value props: restore the green icon (was overridden to muted by `.ilm-value span`) */
.ilm-value .ilm-value__icon {
    display: grid;
    margin: 0;
    color: var(--ilm-green);
}

.ilm-value .ilm-value__icon svg {
    width: 20px;
    height: 20px;
}

/* Cart: hide "Update cart" until WooCommerce enables it on a real change */
.woocommerce-cart-form button[name="update_cart"]:disabled {
    display: none;
}

/* Cart totals: modern card */
.cart_totals {
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-xl);
    box-shadow: var(--sh-2);
    padding: 26px 28px;
}

.cart_totals table.shop_table tr.order-total th,
.cart_totals table.shop_table tr.order-total td {
    padding-top: 16px;
}

/* Shipping options inside the totals: clean, left-aligned, teal radios */
.woocommerce-shipping-methods {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-shipping-methods li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.woocommerce-shipping-methods input[type="radio"],
.shipping input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ilm-green);
    flex: 0 0 auto;
}

.woocommerce-shipping-methods label {
    margin: 0;
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 500;
}

.woocommerce-shipping-destination {
    margin: 12px 0 0;
    color: var(--ilm-muted);
    font-size: 13px;
    line-height: 1.5;
}

/* ==========================================================================
   Round 4 (calm card hover: a gentle, smooth cover zoom)
   ========================================================================== */

.ilm-product-card__media,
.ilm-bookcard__media {
    position: relative;
    overflow: hidden;
}

.ilm-product-card__img,
.ilm-bookcard__img {
    transition: transform .55s var(--ease);
}

.ilm-product-card:hover .ilm-product-card__img,
.ilm-bookcard:hover .ilm-bookcard__img {
    transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
    .ilm-product-card__img,
    .ilm-bookcard__img {
        transition: none;
    }

    .ilm-product-card:hover .ilm-product-card__img,
    .ilm-bookcard:hover .ilm-bookcard__img {
        transform: none;
    }
}

/* ==========================================================================
   Round 5 (footer contact line + content-page placeholders)
   ========================================================================== */

.ilm-footer__contact {
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.6;
}

.ilm-footer__contact a {
    color: var(--ilm-on-dark);
}

.ilm-footer__contact a:hover {
    color: #fff;
}

/* Highlight unfilled placeholders so they are easy to spot */
.ilm-prose mark,
.ilm-reviews mark {
    background: #fdf1c8;
    color: #6b5300;
    padding: 1px 5px;
    border-radius: 4px;
    font-size: .92em;
}

/* ==========================================================================
   Round 6 (verified Google business reviews)
   ========================================================================== */

.ilm-reviews__head {
    max-width: 640px;
    margin: 0 auto clamp(28px, 4vw, 44px);
    text-align: center;
}

.ilm-reviews__head .ilm-section__title {
    margin: 0 0 16px;
}

.ilm-reviews__rating {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-bottom: 20px;
}

.ilm-stars {
    color: var(--ilm-gold);
    letter-spacing: 2px;
    font-size: 17px;
    line-height: 1;
}

.ilm-reviews__score {
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 22px;
    color: var(--ilm-ink);
}

.ilm-reviews__count {
    color: var(--ilm-muted);
    font-size: 15px;
}

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

.ilm-review {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-1);
}

.ilm-review__text {
    margin: 0;
    flex: 1;
    color: var(--ilm-body);
    font-size: 15px;
    line-height: 1.65;
}

.ilm-review__author {
    margin: 0;
    font-weight: 600;
    color: var(--ilm-ink);
}

.ilm-review__author span {
    color: var(--ilm-muted);
    font-weight: 400;
}

@media (max-width: 880px) {
    .ilm-reviews__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin-inline: auto;
    }
}

/* ==========================================================================
   Round 7 (cart totals: consistent full-width rows + stacked shipping)
   ========================================================================== */

.cart_totals table.shop_table,
.cart_totals table.shop_table tbody {
    display: block;
    width: 100%;
}

.cart_totals table.shop_table tr {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--ilm-line);
}

.cart_totals table.shop_table tr:last-child {
    border-bottom: 0;
}

.cart_totals table.shop_table tr th,
.cart_totals table.shop_table tr td {
    display: block;
    width: auto;
    padding: 0;
    border: 0;
}

.cart_totals table.shop_table tr td {
    text-align: right;
    white-space: nowrap;
}

/* The product-table's first-row top border also matches this totals table; kill it. */
.cart_totals table.shop_table tbody tr:first-child td {
    border-top: 0;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
    font-size: 17px;
    font-weight: 700;
    color: var(--ilm-ink);
}

/* Shipping row stacks: 'Verzending' label on its own line, options beneath. */
.cart_totals table.shop_table tr.woocommerce-shipping-totals {
    display: block;
}

.cart_totals table.shop_table tr.woocommerce-shipping-totals th {
    margin-bottom: 12px;
}

.cart_totals table.shop_table tr.woocommerce-shipping-totals td {
    text-align: left;
    white-space: normal;
}

.cart_totals .woocommerce-shipping-methods {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cart_totals .woocommerce-shipping-methods li {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0;
    padding: 0;
}

.cart_totals .woocommerce-shipping-methods input[type="radio"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ilm-green);
}

.cart_totals .woocommerce-shipping-methods label {
    margin: 0;
    color: var(--ilm-body);
    font-size: 14px;
    line-height: 1.4;
    cursor: pointer;
}

.cart_totals .woocommerce-shipping-destination {
    display: none;
}

/* ==========================================================================
   Round 8 (cart + checkout: intro headers, address lookup, company toggle)
   ========================================================================== */

.ilm-commerce-intro {
    margin: 0 0 clamp(24px, 4vw, 40px);
}

.ilm-commerce-intro .ilm-eyebrow {
    margin: 0 0 8px;
}

.ilm-commerce-intro__title {
    margin: 0 0 10px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(30px, 4vw, 50px);
    line-height: 1.02;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-commerce-intro__text {
    max-width: 560px;
    margin: 0 0 16px;
    color: var(--ilm-muted);
    font-size: 16px;
    line-height: 1.6;
}

.ilm-commerce-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ilm-green);
    font-size: 14px;
    font-weight: 600;
    transition: color .18s var(--ease);
}

.ilm-commerce-back:hover {
    color: var(--ilm-green-700);
}

.ilm-commerce-back svg {
    transition: transform .18s var(--ease);
}

.ilm-commerce-back:hover svg {
    transform: translateX(-3px);
}

/* Hide the empty shipping-address card when no separate address is collected. */
.woocommerce-checkout .woocommerce-shipping-fields:not(:has(.form-row)):not(:has(h3)) {
    display: none;
}

/* Company name + VAT stay hidden until "Op bedrijfsnaam bestellen" is ticked. */
.woocommerce-checkout .ilm-company-field {
    display: none;
}

.woocommerce-checkout .ilm-company-toggle {
    margin-bottom: 6px;
}

.woocommerce-checkout .ilm-company-toggle label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--ilm-ink-2);
    font-weight: 600;
    cursor: pointer;
}

.woocommerce-checkout .ilm-company-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ilm-green);
    flex: 0 0 auto;
}

/* "(optioneel)" reads oddly on the toggle itself. */
.woocommerce-checkout .ilm-company-toggle .optional {
    display: none;
}

/* Billing fields: postcode + huisnummer (and first/last name) side by side. */
.woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
}

.woocommerce-billing-fields__field-wrapper > .form-row {
    grid-column: 1 / -1;
}

.woocommerce-billing-fields__field-wrapper > .form-row-first {
    grid-column: 1;
}

.woocommerce-billing-fields__field-wrapper > .form-row-last {
    grid-column: 2;
}

@media (max-width: 520px) {
    .woocommerce-billing-fields__field-wrapper {
        grid-template-columns: 1fr;
    }

    .woocommerce-billing-fields__field-wrapper > .form-row-first,
    .woocommerce-billing-fields__field-wrapper > .form-row-last {
        grid-column: 1 / -1;
    }
}

/* ==========================================================================
   Round 9 (street address autocomplete)
   ========================================================================== */

.ilm-addr-search {
    position: relative;
    margin: 0 0 22px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-addr-search__label {
    display: block;
    margin: 0 0 7px;
    color: var(--ilm-ink-2);
    font-size: 14px;
    font-weight: 600;
}

.ilm-addr-search__box {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 0 16px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}

.ilm-addr-search__box:focus-within {
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

.ilm-addr-search__box svg {
    flex: 0 0 auto;
    color: var(--ilm-muted);
}

.ilm-addr-search__box .ilm-addr-search__input,
.ilm-addr-search__box .ilm-addr-search__input:focus {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 48px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--ilm-ink);
    font-size: 15px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.ilm-addr-search__hint {
    margin: 8px 0 0;
    color: var(--ilm-muted);
    font-size: 13px;
}

.ilm-addr-search__list {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 12px);
    z-index: 40;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    box-shadow: var(--sh-3);
    max-height: 300px;
    overflow-y: auto;
}

.ilm-addr-search__list[hidden] {
    display: none;
}

.ilm-addr-search__item {
    padding: 11px 12px;
    border-radius: var(--r-sm);
    color: var(--ilm-body);
    font-size: 14px;
    cursor: pointer;
}

.ilm-addr-search__item:hover,
.ilm-addr-search__item.is-active {
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

/* ==========================================================================
   Round 10 (checkout order review: stack the shipping row so each option
   sits on one line instead of being cramped in the narrow value column)
   ========================================================================== */

.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
    display: block;
}

.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th,
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
    display: block;
    width: auto;
    text-align: left;
    border-top: 0;
}

/* A block <tr> only spans one column, so put the divider above the shipping
   block on the Subtotaal row (a normal table row → spans the full width). */
.woocommerce-checkout-review-order-table tr.cart-subtotal th,
.woocommerce-checkout-review-order-table tr.cart-subtotal td {
    border-bottom: 1px solid var(--ilm-line);
}

.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
    padding-bottom: 10px;
}

/* Group the label with its own options: no divider between them. */
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
    padding-top: 0;
    border-top: 0;
}

.woocommerce-checkout-review-order-table .woocommerce-shipping-methods {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
}

.woocommerce-checkout-review-order-table .woocommerce-shipping-methods input[type="radio"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ilm-green);
}

.woocommerce-checkout-review-order-table .woocommerce-shipping-methods label {
    margin: 0;
    white-space: nowrap;
    color: var(--ilm-body);
}

/* ==========================================================================
   Round 11 (cart: two-column layout — items on the left, order summary on the
   right and sticky, so "Doorgaan naar afrekenen" is visible without scrolling)
   ========================================================================== */

@media (min-width: 901px) {
    .woocommerce-cart .woocommerce {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 380px;
        column-gap: 40px;
        row-gap: 0;
        align-items: start;
    }

    .woocommerce-cart .woocommerce > .ilm-commerce-intro,
    .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
        grid-column: 1 / -1;
    }

    .woocommerce-cart .woocommerce > form.woocommerce-cart-form {
        grid-column: 1;
        margin-bottom: 0;
    }

    .woocommerce-cart .woocommerce > .cart-collaterals {
        grid-column: 2;
        position: sticky;
        top: 116px;
    }
}

/* ==========================================================================
   Round 12 (checkout: country fixed to NL/hidden + address-first field order
   with a divider before the personal details)
   ========================================================================== */

/* Country is fixed to Nederland (single sell country) — no field shown.
   !important because WooCommerce's locale JS sets an inline display on it. */
.woocommerce-checkout #billing_country_field {
    display: none !important;
}

/* Small section titles (Adresgegevens / Persoonlijke info). */
.ilm-form-section {
    margin: 0 0 14px;
    color: var(--ilm-green);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

/* The "Persoonlijke info" title sits in the billing grid, full width, with a
   top rule that separates it from the address block above. */
.woocommerce-billing-fields__field-wrapper > .ilm-form-section--break {
    grid-column: 1 / -1;
    margin: 2px 0 16px;
    padding-top: 24px;
    border-top: 1px solid var(--ilm-line);
}

/* ==========================================================================
   Round 13 (rotating topbar messages + live product search dropdown)
   ========================================================================== */

.ilm-topbar__ticker {
    position: relative;
    width: 100%;
    height: 1.25em;
}

.ilm-topbar__msg {
    position: absolute;
    inset: 0;
    margin: 0;
    text-align: center;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .5s var(--ease), transform .5s var(--ease);
    pointer-events: none;
}

.ilm-topbar__msg.is-active {
    opacity: 1;
    transform: none;
}

/* Live search dropdown */
.ilm-search {
    position: relative;
}

.ilm-search__results {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 90;
    padding: 6px;
    background: #fff;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    box-shadow: var(--sh-3);
    max-height: min(70vh, 480px);
    overflow-y: auto;
    text-align: left;
}

.ilm-search__results[hidden] {
    display: none;
}

.ilm-search__result {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: var(--r-sm);
    color: var(--ilm-ink);
}

.ilm-search__result:hover {
    background: var(--ilm-mint);
}

.ilm-search__thumb {
    flex: 0 0 auto;
    width: 40px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    background: var(--ilm-bg-2);
}

.ilm-search__info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ilm-search__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ilm-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ilm-search__price {
    font-size: 13px;
    color: var(--ilm-muted);
}

.ilm-search__all {
    display: block;
    width: 100%;
    margin-top: 4px;
    padding: 11px;
    border: 0;
    border-radius: var(--r-sm);
    background: var(--ilm-green);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ilm-search__all:hover {
    background: var(--ilm-green-700);
}

.ilm-search__empty {
    margin: 0;
    padding: 14px;
    color: var(--ilm-muted);
    font-size: 14px;
}

/* Let the live-search dropdown escape the rounded search pill. */
.ilm-search--header,
.ilm-search--mobile {
    overflow: visible;
}

/* ==========================================================================
   Round 14 (Alle boeken: filterable catalogue with sidebar)
   ========================================================================== */

.ilm-shoppage__head {
    max-width: 640px;
    margin-bottom: clamp(28px, 4vw, 44px);
}

.ilm-shoppage__title {
    margin: 6px 0 12px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.02;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-shoppage__lead {
    margin: 0;
    color: var(--ilm-muted);
    font-size: 17px;
    line-height: 1.6;
}

.ilm-shoplayout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 44px;
    align-items: start;
}

/* ---- Filters sidebar ---- */
.ilm-filters {
    position: sticky;
    top: 116px;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.ilm-filters__head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ilm-filters__heading {
    margin: 0;
    font-family: var(--ilm-display);
    font-size: 19px;
    font-weight: 700;
    color: var(--ilm-ink);
}

.ilm-filters__clear {
    margin-left: auto;
    color: var(--ilm-green);
    font-size: 13px;
    font-weight: 600;
}

.ilm-filters__clear:hover {
    color: var(--ilm-green-700);
}

.ilm-filters__close {
    display: none;
}

.ilm-filtergroup {
    padding-top: 22px;
    border-top: 1px solid var(--ilm-line);
}

.ilm-filters__head + .ilm-filtergroup {
    padding-top: 0;
    border-top: 0;
}

.ilm-filtergroup__title {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ilm-muted);
}

.ilm-filterlist {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ilm-filterlink {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 -10px;
    padding: 8px 10px;
    border-radius: var(--r-sm);
    color: var(--ilm-body);
    font-size: 14px;
    line-height: 1.35;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.ilm-filterlink:hover {
    background: var(--ilm-bg-2);
    color: var(--ilm-ink);
}

.ilm-filterlink.is-active {
    background: var(--ilm-mint);
    color: var(--ilm-green);
    font-weight: 600;
}

.ilm-filterlink__count {
    flex: 0 0 auto;
    color: var(--ilm-muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.ilm-filterlink.is-active .ilm-filterlink__count {
    color: var(--ilm-green);
}

.ilm-filtermore {
    margin: 6px 0 0;
    padding: 6px 0;
    background: none;
    border: 0;
    color: var(--ilm-green);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.ilm-filtermore:hover {
    color: var(--ilm-green-700);
}

/* ---- Toolbar ---- */
.ilm-shopbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ilm-line);
}

.ilm-shopbar__count {
    margin: 0;
    color: var(--ilm-ink);
    font-size: 15px;
    font-weight: 600;
}

.ilm-sort {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ilm-sort__label {
    color: var(--ilm-muted);
    font-size: 14px;
}

.ilm-sort__select {
    min-height: 42px;
    padding: 0 38px 0 14px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b756f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    color: var(--ilm-ink);
    font-size: 14px;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

.ilm-sort__select:focus {
    outline: none;
    border-color: var(--ilm-green);
    box-shadow: 0 0 0 3px var(--ilm-green-050);
}

/* ---- Grid ---- */
.ilm-bookgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 1.8vw, 24px);
}

/* ---- Pagination ---- */
.ilm-pagination {
    margin-top: 40px;
}

.ilm-pagination .page-numbers {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilm-pagination .page-numbers li {
    margin: 0;
}

.ilm-pagination .page-numbers a,
.ilm-pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-sm);
    color: var(--ilm-body);
    font-size: 14px;
    font-weight: 600;
    transition: border-color .15s var(--ease), color .15s var(--ease);
}

.ilm-pagination .page-numbers a:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-pagination .page-numbers .current {
    background: var(--ilm-green);
    border-color: var(--ilm-green);
    color: #fff;
}

.ilm-pagination .page-numbers .dots {
    border-color: transparent;
}

/* ---- Empty state ---- */
.ilm-shopempty {
    padding: 64px 20px;
    text-align: center;
    color: var(--ilm-muted);
}

.ilm-shopempty p {
    margin: 0 0 18px;
    font-size: 16px;
}

/* ---- Mobile ---- */
.ilm-filters-toggle {
    display: none;
}

@media (max-width: 920px) {
    .ilm-shoplayout {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ilm-filters-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 22px;
        padding: 11px 18px;
        border: 1px solid var(--ilm-line);
        border-radius: var(--r);
        background: #fff;
        color: var(--ilm-ink);
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
    }

    .ilm-filters {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 200;
        width: min(330px, 88vw);
        padding: 24px;
        background: #fff;
        box-shadow: var(--sh-3);
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform .3s var(--ease);
    }

    .ilm-filters.is-open {
        transform: none;
    }

    .ilm-filters__close {
        display: block;
        margin-left: auto;
        padding: 0 4px;
        background: none;
        border: 0;
        font-size: 28px;
        line-height: 1;
        color: var(--ilm-muted);
        cursor: pointer;
    }

    body.ilm-filters-open {
        overflow: hidden;
    }

    body.ilm-filters-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 199;
        background: rgba(10, 20, 17, .42);
    }
}

@media (max-width: 720px) {
    .ilm-bookgrid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Round 15 (content pages: lead intro, link cards, empty state)
   ========================================================================== */

.ilm-prose .lead {
    margin: 0 0 26px;
    color: var(--ilm-ink-2);
    font-size: clamp(18px, 2.3vw, 21px);
    line-height: 1.6;
}

.ilm-linkcards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 14px;
    margin: 4px 0 16px;
}

.ilm-prose .ilm-linkcard {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 44px 18px 20px;
    border: 1px solid var(--ilm-line);
    border-radius: var(--r);
    background: #fff;
    color: var(--ilm-ink);
    font-weight: 400;
    text-decoration: none;
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}

.ilm-prose .ilm-linkcard:hover {
    border-color: var(--ilm-green);
    box-shadow: var(--sh-2);
    transform: translateY(-2px);
    color: var(--ilm-ink);
}

.ilm-linkcard__title {
    font-weight: 700;
    font-size: 15px;
    color: var(--ilm-ink);
}

.ilm-linkcard__desc {
    color: var(--ilm-muted);
    font-size: 13.5px;
    line-height: 1.5;
}

.ilm-linkcard__arrow {
    position: absolute;
    top: 17px;
    right: 18px;
    color: var(--ilm-green);
    opacity: 0;
    transition: opacity .18s var(--ease), transform .18s var(--ease);
}

.ilm-prose .ilm-linkcard:hover .ilm-linkcard__arrow {
    opacity: 1;
    transform: translateX(3px);
}

.ilm-empty-note {
    padding: 52px 24px;
    text-align: center;
    background: var(--ilm-bg-2);
    border: 1px solid var(--ilm-line);
    border-radius: var(--r-lg);
}

.ilm-empty-note p {
    margin: 0 0 18px;
    color: var(--ilm-muted);
    font-size: 16px;
}

/* ==========================================================================
   Round 16 (editorial pages: Café, Over ons, Klantenservice)
   ========================================================================== */

.ilm-editpage > .ilm-container {
    display: grid;
    gap: clamp(44px, 7vw, 88px);
}

.ilm-eyebrow--light {
    color: rgba(255, 255, 255, .85);
}

/* ---- Rounded page hero ---- */
.ilm-pagehero {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: clamp(360px, 48vh, 520px);
    border-radius: 28px;
    overflow: hidden;
    background: linear-gradient(160deg, var(--ilm-dark), var(--ilm-dark-2));
    box-shadow: var(--sh-2);
}

.ilm-pagehero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ilm-pagehero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(200deg, rgba(8, 18, 15, 0) 30%, rgba(8, 18, 15, .72) 78%, rgba(8, 18, 15, .86) 100%);
}

.ilm-pagehero__content {
    position: relative;
    z-index: 1;
    max-width: 620px;
    padding: clamp(26px, 4.5vw, 56px);
}

.ilm-pagehero__title {
    margin: 10px 0 14px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(34px, 5.4vw, 58px);
    line-height: 1.02;
    letter-spacing: -.015em;
    color: #fff;
}

.ilm-pagehero__lead {
    margin: 0;
    color: rgba(255, 255, 255, .88);
    font-size: clamp(16px, 2vw, 19px);
    line-height: 1.6;
}

/* ---- Split sections ---- */
.ilm-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
}

.ilm-split__media {
    margin: 0;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: var(--sh-2);
    aspect-ratio: 4 / 3.2;
}

.ilm-split__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}

.ilm-split:hover .ilm-split__media img {
    transform: scale(1.03);
}

.ilm-split--rev .ilm-split__media {
    order: 2;
}

.ilm-split__title {
    margin: 8px 0 14px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(26px, 3.4vw, 38px);
    line-height: 1.08;
    letter-spacing: -.01em;
    color: var(--ilm-ink);
}

.ilm-split__body p {
    margin: 0 0 14px;
    color: var(--ilm-body);
    font-size: 16px;
    line-height: 1.7;
}

.ilm-split__body .ilm-btn {
    margin-top: 8px;
}

/* ---- Chips (drinks list) ---- */
.ilm-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.ilm-chips li {
    padding: 9px 16px;
    border: 1px solid var(--ilm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--ilm-ink-2);
    font-size: 14px;
    font-weight: 500;
}

/* ---- Quote band ---- */
.ilm-quoteband {
    padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px);
    border-radius: 28px;
    background: linear-gradient(160deg, var(--ilm-dark), var(--ilm-dark-2));
    text-align: center;
}

.ilm-quoteband__text {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(24px, 4vw, 42px);
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #fff;
}

.ilm-quoteband__heart {
    color: #fff;
    flex: 0 0 auto;
}

/* ---- Visit / contact band ---- */
.ilm-visitband {
    display: grid;
    border-radius: 28px;
    overflow: hidden;
    background: linear-gradient(160deg, var(--ilm-dark), var(--ilm-dark-2));
    box-shadow: var(--sh-2);
}

.ilm-visitband--media {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
}

.ilm-visitband__body {
    padding: clamp(30px, 5vw, 64px);
    align-self: center;
}

.ilm-visitband__title {
    margin: 10px 0 14px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(26px, 3.6vw, 40px);
    line-height: 1.06;
    color: #fff;
}

.ilm-visitband__text {
    margin: 0 0 22px;
    color: rgba(255, 255, 255, .85);
    font-size: 16px;
    line-height: 1.7;
}

.ilm-visitband__text a {
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ilm-visitband__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ilm-visitband__media {
    margin: 0;
    min-height: 300px;
}

.ilm-visitband__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ilm-btn--ghostlight {
    border: 1px solid rgba(255, 255, 255, .4);
    background: transparent;
    color: #fff;
}

.ilm-btn--ghostlight:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

/* ---- Value cards (Over ons) ---- */
.ilm-valuecards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ilm-valuecard {
    padding: 28px 26px;
    border: 1px solid var(--ilm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--sh-1);
}

.ilm-valuecard__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 16px;
    border-radius: 14px;
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-valuecard__title {
    margin: 0 0 8px;
    font-family: var(--ilm-display);
    font-size: 19px;
    font-weight: 600;
    color: var(--ilm-ink);
}

.ilm-valuecard p {
    margin: 0;
    color: var(--ilm-body);
    font-size: 14.5px;
    line-height: 1.65;
}

.ilm-valuecard a {
    color: var(--ilm-green);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---- Klantenservice ---- */
.ilm-servicehead {
    max-width: 640px;
}

.ilm-servicehead__title {
    margin: 6px 0 12px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.02;
    letter-spacing: -.015em;
    color: var(--ilm-ink);
}

.ilm-servicehead__lead {
    margin: 0;
    color: var(--ilm-muted);
    font-size: 17px;
    line-height: 1.6;
}

.ilm-servicecards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.ilm-servicecard {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 22px 46px 22px 22px;
    border: 1px solid var(--ilm-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--sh-1);
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}

.ilm-servicecard:hover {
    border-color: var(--ilm-green);
    box-shadow: var(--sh-2);
    transform: translateY(-2px);
}

.ilm-servicecard__icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--ilm-mint);
    color: var(--ilm-green);
}

.ilm-servicecard__text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.ilm-servicecard__title {
    font-weight: 700;
    font-size: 15.5px;
    color: var(--ilm-ink);
}

.ilm-servicecard__desc {
    color: var(--ilm-muted);
    font-size: 13.5px;
    line-height: 1.5;
}

.ilm-servicecard__arrow {
    position: absolute;
    top: 24px;
    right: 20px;
    color: var(--ilm-green);
    opacity: 0;
    transition: opacity .18s var(--ease), transform .18s var(--ease);
}

.ilm-servicecard:hover .ilm-servicecard__arrow {
    opacity: 1;
    transform: translateX(3px);
}

/* ---- FAQ ---- */
.ilm-faq__title {
    margin: 0 0 22px;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: clamp(24px, 3vw, 34px);
    color: var(--ilm-ink);
}

.ilm-faq__list {
    display: grid;
    gap: 12px;
    max-width: 860px;
}

.ilm-faq__item {
    border: 1px solid var(--ilm-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--sh-1);
    transition: border-color .18s var(--ease);
}

.ilm-faq__item[open] {
    border-color: var(--ilm-green);
}

.ilm-faq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    color: var(--ilm-ink);
    font-size: 15.5px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.ilm-faq__q::-webkit-details-marker {
    display: none;
}

.ilm-faq__chev {
    flex: 0 0 auto;
    color: var(--ilm-muted);
    transition: transform .25s var(--ease);
}

.ilm-faq__item[open] .ilm-faq__chev {
    transform: rotate(180deg);
    color: var(--ilm-green);
}

.ilm-faq__a {
    margin: 0;
    padding: 0 22px 20px;
    color: var(--ilm-body);
    font-size: 15px;
    line-height: 1.7;
    max-width: 64ch;
}

/* ---- Responsive ---- */
@media (max-width: 880px) {
    .ilm-split,
    .ilm-visitband--media {
        grid-template-columns: 1fr;
    }

    .ilm-split--rev .ilm-split__media {
        order: 0;
    }

    .ilm-valuecards {
        grid-template-columns: 1fr;
    }

    .ilm-visitband__media {
        order: -1;
        min-height: 220px;
        max-height: 280px;
    }
}

/* ==========================================================================
   Round 17 (added-to-cart toast, account pages, content pages)
   ========================================================================== */

/* ---- Added-to-cart toast ---- */
.ilm-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 320;
    width: min(360px, calc(100vw - 32px));
    padding: 18px;
    border: 1px solid var(--ilm-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--sh-3);
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .25s var(--ease), transform .25s var(--ease);
}

.ilm-toast.is-open {
    opacity: 1;
    transform: none;
}

.ilm-toast__head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.ilm-toast__check {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--ilm-green);
    color: #fff;
}

.ilm-toast__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ilm-toast__text strong {
    font-size: 14.5px;
    color: var(--ilm-ink);
}

.ilm-toast__name {
    color: var(--ilm-muted);
    font-size: 13px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ilm-toast__close {
    margin-left: auto;
    padding: 0 2px;
    border: 0;
    background: none;
    color: var(--ilm-muted);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.ilm-toast__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 14px;
}

.ilm-toast__checkout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 999px;
    background: var(--ilm-green);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    transition: background .18s var(--ease);
}

.ilm-toast__checkout:hover {
    background: var(--ilm-green-700);
    color: #fff;
}

.ilm-toast__continue {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--ilm-line-2);
    border-radius: 999px;
    background: #fff;
    color: var(--ilm-ink);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .18s var(--ease);
}

.ilm-toast__continue:hover {
    border-color: var(--ilm-green);
    color: var(--ilm-green);
}

.ilm-toast__cartlink {
    display: block;
    margin-top: 12px;
    text-align: center;
    color: var(--ilm-muted);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ilm-toast__cartlink:hover {
    color: var(--ilm-green);
}

.single_add_to_cart_button.is-busy {
    opacity: .6;
    pointer-events: none;
}

/* ---- Account: logged-in dashboard ---- */
.logged-in.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}

.logged-in.woocommerce-account .woocommerce > .ilm-commerce-intro,
.logged-in.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

.ilm-commerce-intro--account {
    margin-bottom: 4px;
}

.woocommerce-MyAccount-navigation {
    position: sticky;
    top: 116px;
    padding: 14px;
    border: 1px solid var(--ilm-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 11px 14px;
    border-radius: 12px;
    color: var(--ilm-body);
    font-size: 14.5px;
    font-weight: 500;
    transition: background .15s var(--ease), color .15s var(--ease);
}

.woocommerce-MyAccount-navigation li a:hover {
    background: var(--ilm-bg-2);
    color: var(--ilm-ink);
}

.woocommerce-MyAccount-navigation li.is-active a {
    background: var(--ilm-mint);
    color: var(--ilm-green);
    font-weight: 600;
}

.woocommerce-MyAccount-content {
    min-width: 0;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid var(--ilm-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-MyAccount-content > h2,
.woocommerce-MyAccount-content > h3 {
    margin: 0 0 16px;
    font-family: var(--ilm-display);
    font-weight: 600;
    color: var(--ilm-ink);
}

.woocommerce-MyAccount-content p {
    color: var(--ilm-body);
    line-height: 1.7;
}

.woocommerce-MyAccount-content a {
    color: var(--ilm-green);
    font-weight: 500;
}

/* ---- Account: login ---- */
.woocommerce-account:not(.logged-in) .woocommerce {
    max-width: 480px;
}

.woocommerce-form-login,
.woocommerce-ResetPassword {
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--ilm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--sh-1);
}

.woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-ResetPassword .woocommerce-Button {
    width: 100%;
    min-height: 50px;
}

.woocommerce-form-login__rememberme {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 2px 0 14px;
    color: var(--ilm-body);
    font-size: 14px;
    cursor: pointer;
}

.woocommerce-form-login__rememberme input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--ilm-green);
}

.woocommerce-LostPassword {
    margin: 14px 0 0;
    text-align: center;
    font-size: 14px;
}

.woocommerce-LostPassword a {
    color: var(--ilm-green);
    font-weight: 600;
}

/* ---- Content pages (legal, contact) ---- */
.ilm-contentpage .ilm-servicehead {
    margin-bottom: clamp(24px, 4vw, 40px);
}

.ilm-contentpage__body {
    max-width: 76ch;
    font-size: 16px;
}

.ilm-contentpage__body h2 {
    margin-top: 2em;
    padding-top: 1.2em;
    border-top: 1px solid var(--ilm-line);
}

.ilm-contentpage__body h2:first-of-type {
    margin-top: 0;
}

.ilm-contentpage__body mark {
    padding: 2px 7px;
    border-radius: 6px;
    background: #fdf2c3;
    color: #6b5614;
}

@media (max-width: 880px) {
    .logged-in.woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .woocommerce-MyAccount-navigation {
        position: static;
    }
}

/* ==========================================================================
   Round 18 (footer redesign: brand, tidy columns, opening hours with today)
   ========================================================================== */

.ilm-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, .85fr)) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    padding: clamp(44px, 6vw, 76px) 0 clamp(32px, 4vw, 52px);
}

.ilm-footer .ilm-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.ilm-footer__brandmark {
    display: inline-flex;
    align-items: center;
    gap: 13px;
}

.ilm-footer__brandmark img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 50%;
    background: #fff;
    padding: 3px;
}

.ilm-footer__brandmark span {
    display: flex;
    flex-direction: column;
}

.ilm-footer__brandmark strong {
    color: #fff;
    font-family: var(--ilm-display);
    font-weight: 600;
    font-size: 21px;
    line-height: 1.1;
}

.ilm-footer__brandmark em {
    color: var(--ilm-on-dark-soft);
    font-style: normal;
    font-size: 12.5px;
    letter-spacing: .04em;
}

.ilm-footer__blurb {
    margin: 0;
    max-width: 320px;
    color: var(--ilm-on-dark-soft);
    font-size: 14px;
    line-height: 1.65;
}

.ilm-footer__contactlist {
    display: grid;
    gap: 9px;
    margin: 2px 0 0;
    padding: 0;
    list-style: none;
}

.ilm-footer__contactlist li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ilm-on-dark-soft);
    font-size: 14px;
}

.ilm-footer__contactlist svg {
    flex: 0 0 auto;
    opacity: .7;
}

.ilm-footer__contactlist a {
    color: var(--ilm-on-dark-soft);
    transition: color .15s var(--ease);
}

.ilm-footer__contactlist a:hover {
    color: #fff;
}

/* Opening hours: today highlighted */
.ilm-footer__hours ul {
    gap: 7px;
}

.ilm-footer__hours li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    color: var(--ilm-on-dark-soft);
    font-size: 13.5px;
    font-variant-numeric: tabular-nums;
}

.ilm-footer__hours li.is-today {
    margin: 0 -10px;
    padding: 5px 10px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-weight: 700;
}

.ilm-footer__hoursnote {
    margin: 14px 0 0;
    color: var(--ilm-on-dark-soft);
    font-size: 12.5px;
    opacity: .8;
}

/* Bottom bar */
.ilm-footer__pay {
    display: inline-flex;
    gap: 8px;
}

.ilm-footer__pay span {
    padding: 4px 11px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    font-size: 12px;
    color: var(--ilm-on-dark-soft);
}

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

@media (max-width: 560px) {
    .ilm-footer__grid {
        grid-template-columns: 1fr;
    }

    .ilm-footer__bottom {
        justify-content: flex-start;
    }
}

/* Login polish: our intro replaces WC's own "Login" heading; the unstyled
   password-eye toggle renders as an empty pill, so hide it; centre the card. */
.woocommerce-account:not(.logged-in) .woocommerce {
    margin-inline: auto;
}

.woocommerce-account:not(.logged-in) .woocommerce > h2 {
    display: none;
}

.woocommerce-form-login .show-password-input {
    display: none;
}

/* ==========================================================================
   Round 4 (mobile header fit, hero video framing, rail swipe, footer credit)
   ========================================================================== */

/* Compact phones: slightly smaller logo and icons so the full brand name and
   all four actions fit side by side down to ~360px wide. */
@media (max-width: 420px) {
    .ilm-header__actions {
        gap: 4px;
    }

    .ilm-action,
    .ilm-cart,
    .ilm-menu-toggle {
        width: 40px;
        height: 40px;
        min-height: 40px;
    }

    .ilm-brand__logo,
    .ilm-header.is-scrolled .ilm-brand__logo {
        width: 40px;
        height: 40px;
    }

    .ilm-brand__name {
        font-size: 18px;
    }
}

/* The hero film is 1920x820; a portrait phone crop shows barely a fifth of
   it. Bias the crop slightly right of center, toward the person at the
   laptop (his face sits around 62%) — dead center only shows his ear. */
@media (max-width: 980px) {
    .ilm-hero__video {
        object-position: 54% 50%;
    }
}

/* The rail is draggable (see initMarquee): no text selection or native
   link/image dragging while swiping. */
.ilm-rail__track {
    user-select: none;
    -webkit-user-select: none;
    cursor: grab;
}

.ilm-rail__track:active {
    cursor: grabbing;
}

/* Footer credit: Made with <heart> by 8Works. Plain inline text so the
   closing period hugs the link; the heart hangs on the text baseline. */
.ilm-footer__heart {
    display: inline-block;   /* the base reset blockifies svg, breaking the line */
    width: 11px;
    height: 11px;
    vertical-align: -1px;
    color: #e25c5c;
}

.ilm-footer__credit a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
    transition: color .18s var(--ease), border-color .18s var(--ease);
}

.ilm-footer__credit a:hover {
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, .6);
}
