/* TONU 1.3.1: two complete cards on phones, four in containers >= 768px. */
.tonu-ic-carousel {
    width: 100%; min-width: 0; max-width: 100%; margin: 20px 0 28px;
    color: #202622; font-family: inherit; position: relative;
    container-type: inline-size; container-name: tonu-ic;
}
.tonu-ic-carousel, .tonu-ic-home, .tonu-ic-carousel *, .tonu-ic-home * { box-sizing: border-box; }
.tonu-ic-carousel [hidden], .tonu-ic-home[hidden], .elementor-widget-tonu-carousel.tonu-ic-empty { display: none !important; }
.elementor-widget-tonu-carousel, .elementor-widget-tonu-carousel > .elementor-widget-container, .tonu-ic-home { min-width: 0; max-width: 100%; }
.tonu-ic-carousel .tonu-ic-header { display: flex; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.tonu-ic-carousel .tonu-ic-section-title { font: inherit; font-size: 1.25rem; font-weight: 600; line-height: 1.3; letter-spacing: -.02em; color: inherit; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.tonu-ic-carousel ol.tonu-ic-track {
    --tonu-ic-card: calc((100% - var(--tonu-ic-gap)) / 2);
    --tonu-ic-height: 320px; --tonu-ic-image-height: 148px; --tonu-ic-gap: 10px;
    display: flex; flex-flow: row nowrap; align-items: stretch; gap: var(--tonu-ic-gap); overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory; scroll-padding-inline: 2px; overscroll-behavior-inline: contain;
    padding: 4px 2px 12px; margin: 0; list-style: none; width: 100%; max-width: 100%;
    scrollbar-width: thin; scrollbar-color: #aeb5a9 transparent;
    -webkit-overflow-scrolling: touch;
}
.tonu-ic-carousel ol.tonu-ic-track > li.tonu-ic-slide {
    display: flex; flex: 0 0 var(--tonu-ic-card); width: var(--tonu-ic-card); max-width: var(--tonu-ic-card); min-height: var(--tonu-ic-height); min-width: 0;
    scroll-snap-align: start; padding: 0; margin: 0; list-style: none; float: none; clear: none;
}
.tonu-ic-carousel .tonu-ic-slide::before, .tonu-ic-carousel .tonu-ic-slide::after { content: none; }
.tonu-ic-carousel .tonu-ic-product, .tonu-ic-carousel .tonu-ic-editorial, .tonu-ic-carousel .tonu-ic-category {
    display: flex; flex: 1; flex-direction: column; min-width: 0; width: 100%; max-width: 100%; margin: 0;
    border-radius: 14px; overflow: hidden; position: relative; text-decoration: none;
    box-shadow: 0 2px 6px #17231b06; border: 1px solid #dfe5dc; font: inherit;
}
.tonu-ic-carousel .tonu-ic-product, .tonu-ic-carousel .tonu-ic-category { background: #fff; color: #202622; }
.tonu-ic-carousel .tonu-ic-product:hover, .tonu-ic-carousel .tonu-ic-category:hover { border-color: #81947a; color: #202622; }
.tonu-ic-carousel .tonu-ic-product-image { flex: 0 0 var(--tonu-ic-image-height); height: var(--tonu-ic-image-height); min-height: 0; padding: 12px; background: #f7f8f5; }
.tonu-ic-carousel .tonu-ic-product-image img { width: 100%; height: 100%; display: block; object-fit: contain; margin: 0; border: 0; }
/* Content can increase row height: zoom and long prices are never clipped to a fixed card height. */
.tonu-ic-carousel .tonu-ic-product-copy { padding: 12px; flex: 1; min-width: 0; display: grid; grid-template-rows: auto minmax(min-content, 1fr) auto; gap: 8px; }
.tonu-ic-carousel .tonu-ic-product-title, .tonu-ic-carousel .tonu-ic-category-title {
    font: inherit; font-size: .875rem; font-weight: 500; line-height: 1.4; height: 2.8em;
    color: inherit; margin: 0; overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere;
}
.tonu-ic-carousel .tonu-ic-product-title { grid-row: 1; }
.tonu-ic-carousel .tonu-ic-price { grid-row: 2; align-self: end; min-width: 0; font-size: 1.125rem; line-height: 1.3; font-weight: 700; letter-spacing: -.025em; white-space: normal; overflow-wrap: anywhere; }
.tonu-ic-carousel .tonu-ic-price .amount { white-space: normal; }
.tonu-ic-carousel .tonu-ic-price del { display: block; opacity: .7; font-weight: 400; font-size: .75rem; line-height: 1.4; letter-spacing: 0; }
.tonu-ic-carousel .tonu-ic-price ins { display: block; background: transparent; color: inherit; text-decoration: none; }
.tonu-ic-carousel .tonu-ic-price small { font-size: .6875rem; font-weight: 400; }
.tonu-ic-carousel .tonu-ic-product-link { grid-row: 3; display: flex; align-items: end; justify-content: space-between; gap: 6px; font-size: .8125rem; font-weight: 500; line-height: 1.4; color: #4d5b50; }
.tonu-ic-carousel .screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; white-space: nowrap !important; }
.tonu-ic-editor-note { padding: 20px; border: 1px dashed #a5b29f; border-radius: 12px; color: #4d5b50; background: #f6f8f4; font: 14px/1.6 sans-serif; }
.tonu-ic-carousel .tonu-ic-editorial { padding: 18px; justify-content: end; border-color: transparent; }
.tonu-ic-carousel .tonu-ic-text-light, .tonu-ic-carousel .tonu-ic-text-light:hover { color: #fff; }
.tonu-ic-carousel .tonu-ic-text-dark, .tonu-ic-carousel .tonu-ic-text-dark:hover { color: #19211b; }
.tonu-ic-carousel .tonu-ic-editorial-image { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; margin: 0; border: 0; }
.tonu-ic-carousel .tonu-ic-overlay::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.86), rgba(0,0,0,.2)); pointer-events: none; }
.tonu-ic-carousel .tonu-ic-overlay.tonu-ic-text-dark::after { background: linear-gradient(0deg, rgba(255,255,255,.95), rgba(255,255,255,.3)); }
.tonu-ic-carousel .tonu-ic-editorial-copy { z-index: 1; position: relative; overflow-wrap: anywhere; max-height: calc(var(--tonu-ic-height) - 36px); overflow-y: auto; scrollbar-width: thin; }
.tonu-ic-carousel .tonu-ic-editorial-title { font: inherit; font-size: 1.375rem; font-weight: 600; line-height: 1.15; letter-spacing: -.025em; margin: 0 0 12px; color: inherit; overflow-wrap: anywhere; }
.tonu-ic-carousel .tonu-ic-editorial-text { font: inherit; font-size: .875rem; line-height: 1.5; margin: 0 0 18px; color: inherit; white-space: pre-line; overflow-wrap: anywhere; }
.tonu-ic-carousel .tonu-ic-cta-label { display: inline-flex; align-items: center; gap: 8px; border-bottom: 1px solid currentColor; padding: 6px 0; font-size: .875rem; font-weight: 600; line-height: 1.4; }
.tonu-ic-carousel .tonu-ic-controls { display: flex; flex: 0 0 auto; justify-content: flex-end; gap: 6px; margin-inline-start: auto; }
.tonu-ic-carousel .tonu-ic-arrow { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #c9cec6; border-radius: 50%; background: #fff; color: #202622; font: inherit; font-size: 1.375rem; cursor: pointer; box-shadow: none; }
.tonu-ic-carousel .tonu-ic-arrow:disabled { opacity: .35; cursor: default; }
.tonu-ic-carousel :focus-visible, .tonu-ic-home .tonu-ic-retry:focus-visible { outline: 3px solid #376be6; outline-offset: 2px; }
.tonu-ic-home .tonu-ic-loading, .tonu-ic-home .tonu-ic-error { padding: 18px 0; color: #4d554e; font-size: 15px; }
.tonu-ic-home .tonu-ic-retry { font: inherit; padding: 10px 14px; min-height: 44px; cursor: pointer; }
.tonu-ic-kind-categories ol.tonu-ic-track { --tonu-ic-height: 256px; --tonu-ic-image-height: 190px; }
.tonu-ic-carousel .tonu-ic-category-image { height: var(--tonu-ic-image-height); flex: 0 0 var(--tonu-ic-image-height); background: #f3f5f0; }
.tonu-ic-carousel .tonu-ic-category-image img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; border: 0; }
.tonu-ic-carousel .tonu-ic-fit-contain .tonu-ic-category-image img { object-fit: contain; }
.tonu-ic-carousel .tonu-ic-category-copy { display: flex; flex: 1; align-items: center; gap: 8px; justify-content: space-between; padding: 12px; min-height: 64px; }
.tonu-ic-carousel .tonu-ic-category-title { flex: 1; }
.tonu-ic-carousel .tonu-ic-category-copy > span { flex-shrink: 0; color: #55764a; }
@container tonu-ic (min-width: 768px) {
    .tonu-ic-carousel ol.tonu-ic-track { --tonu-ic-card: calc((100% - 3 * var(--tonu-ic-gap)) / 4); --tonu-ic-height: 360px; --tonu-ic-image-height: 180px; --tonu-ic-gap: 16px; }
    .tonu-ic-carousel .tonu-ic-product-title, .tonu-ic-carousel .tonu-ic-category-title { font-size: 1rem; }
    .tonu-ic-carousel .tonu-ic-product-copy { padding: 16px; }
    .tonu-ic-carousel .tonu-ic-price { font-size: 1.25rem; }
    .tonu-ic-kind-categories ol.tonu-ic-track { --tonu-ic-height: 280px; --tonu-ic-image-height: 210px; }
}
@supports not (container-type: inline-size) {
    @media (min-width: 1024px) { .tonu-ic-carousel ol.tonu-ic-track { --tonu-ic-card: calc((100% - 3 * var(--tonu-ic-gap)) / 4); } }
}
@media (prefers-reduced-motion: reduce) { .tonu-ic-carousel .tonu-ic-track { scroll-behavior: auto; } }
