﻿/**
 * IZIII Web App â€” Main Stylesheet
 * Mobile-first design system using CSS custom properties.
 * Variables injected from PHP via <style id="iwa-css-variables"> in wp_head.
 */

/* â”€â”€ Reset & Base â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
body.iziii-kiosk-app,
body.iziii-kiosk-app *,
body.iziii-kiosk-app *::before,
body.iziii-kiosk-app *::after {
    box-sizing: border-box;
}

body.iziii-kiosk-app {
    margin: 0;
    padding: 0;
    font-family: var(--iwa-font);
    background: var(--iwa-bg);
    color: var(--iwa-text);
    font-size: var(--iwa-size-text, 15px);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}

body.iziii-kiosk-app #outer-wrap,
body.iziii-kiosk-app #wrap,
body.iziii-kiosk-app #main,
body.iziii-kiosk-app #content-wrap,
body.iziii-kiosk-app #primary,
body.iziii-kiosk-app #content {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    background: var(--iwa-bg) !important;
}

/* Hide OceanWP elements */
body.iziii-kiosk-app #site-header,
body.iziii-kiosk-app #site-navigation-wrap,
body.iziii-kiosk-app #footer,
body.iziii-kiosk-app #footer-widgets,
body.iziii-kiosk-app #footer-bottom,
body.iziii-kiosk-app .oceanwp-mobile-menu-icon,
body.iziii-kiosk-app #scroll-top,
body.iziii-kiosk-app .woocommerce-breadcrumb,
body.iziii-kiosk-app .page-header,
body.iziii-kiosk-app #cookie-banner,
body.iziii-kiosk-app #owp-cart-sidebar-wrap,
body.iziii-kiosk-app .owp-cart-sidebar-overlay,
body.iziii-kiosk-app .oceanwp-cart-sidebar-wrap,
body.iziii-kiosk-app #side-panel-wrap,
body.iziii-kiosk-app #sidr,
body.iziii-kiosk-app #mobile-fullscreen,
body.iziii-kiosk-app .oceanwp-off-canvas-filter,
body.iziii-kiosk-app dialog {
    display: none !important;
}

/* â”€â”€ Header â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--iwa-header-bg);
    color: var(--iwa-header-text);
    padding: 0 16px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.iwa-header-back,
.iwa-header-back:link,
.iwa-header-back:visited,
.iwa-header-back:active {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: rgba(255,255,255,.15);
    border-radius: 50%;
    color: #fff !important;
    font-size: 18px;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .2s;
    flex-shrink: 0;
    line-height: 1;
}

.iwa-header-back:hover {
    background: rgba(255,255,255,.25);
    color: #fff !important;
}

.iwa-header-close,
.iwa-header-close:link,
.iwa-header-close:visited,
.iwa-header-close:active {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: rgba(255,255,255,.15);
    border-radius: 50%;
    color: #fff !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .2s;
    flex-shrink: 0;
}
.iwa-header-close:hover {
    background: rgba(255,255,255,.25);
    color: #fff !important;
}

.iwa-header-menu-link,
.iwa-header-menu-link:link,
.iwa-header-menu-link:visited,
.iwa-header-menu-link:active {
    color: rgba(255,255,255,.7) !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-decoration: none !important;
    flex-shrink: 0;
    padding: 4px 0;
}

.iwa-header-menu-link:hover {
    color: #fff !important;
}

.iwa-header-title {
    font-size: 17px;
    font-weight: 600;
    flex: 1;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--iwa-header-text);
}

.iwa-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.iwa-header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: rgba(255,255,255,.1);
    border-radius: 50%;
    color: var(--iwa-header-text);
    font-size: 18px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    transition: background .2s;
}

.iwa-header-btn:hover {
    background: rgba(255,255,255,.2);
}

.iwa-exit-btn {
    background: rgba(255, 80, 80, .2);
}

.iwa-exit-btn:hover {
    background: rgba(255, 80, 80, .35);
}

.iwa-cart-count {
    position: absolute;
    top: -2px;
    right: -2px;
    background: var(--iwa-accent);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    line-height: 1;
}

.iwa-cart-count:empty {
    display: none;
}

/* ── Header agrandi 3× sur la page Categories Home ──────────────────── */
body.iwa-categories-home .iwa-header {
    height: 168px;
    padding: 0 48px;
    gap: 36px;
}
body.iwa-categories-home .iwa-header-btn,
body.iwa-categories-home .iwa-header-back,
body.iwa-categories-home .iwa-header-close {
    width: 108px;
    height: 108px;
    font-size: 54px;
}
/* Force les icones SVG (sortie + filtre) a la meme taille visuelle que les emojis (search/cart). */
body.iwa-categories-home .iwa-header-btn svg {
    width: 54px;
    height: 54px;
    stroke-width: 2.2;
}
body.iwa-categories-home .iwa-header-actions {
    gap: 24px;
}
body.iwa-categories-home .iwa-header-title {
    font-size: 51px;
}
body.iwa-categories-home .iwa-cart-count {
    width: 54px;
    height: 54px;
    font-size: 30px;
    top: -6px;
    right: -6px;
}
body.iwa-categories-home .iwa-filter-badge {
    transform: scale(1.8);
}
/* Compense la hauteur du nouveau header pour le contenu */
body.iwa-categories-home .iwa-page {
    min-height: calc(100vh - 168px);
}

/* â”€â”€ Page container â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-page {
    min-height: calc(100vh - 56px);
    padding-bottom: 80px; /* space for sticky bar */
}

.iwa-container {
    padding: 16px;
    max-width: 600px;
    margin: 0 auto;
}

/* â”€â”€ Landing page â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-landing {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    padding: 2.5vh 24px 40px;
    background-color: var(--iwa-bg);
    background-size: cover;
    background-position: center;
    position: relative;
}

.iwa-landing.has-bg-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
}

/* ── Carrousel d'images de fond ──────────────────────────────────────── */
.iwa-landing.has-bg-slides::before { display: none; } /* le tint est posé par le carrousel */
.iwa-landing > .iwa-landing-bg-slides {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 70vh;                  /* identique à background-size:100% 70vh du V1 */
    overflow: hidden;
    z-index: 0;
    background: #000;
}
.iwa-landing-bg-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: translateX(100%);
    transition: transform 300ms ease;
    will-change: transform;
}
.iwa-landing-bg-slide.is-current { transform: translateX(0); }
.iwa-landing-bg-slide.is-leaving { transform: translateX(-100%); }
.iwa-landing-bg-tint {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 1;
    pointer-events: none;
}
/* Sur la V1 (kiosque vertical) le bandeau du haut ne doit pas avoir de tint sombre */
body.iwa-landing-page .iwa-landing.has-bg-slides .iwa-landing-bg-tint { display: none; }

.iwa-landing > * {
    position: relative;
    z-index: 1;
}

.iwa-landing-logo {
    width: 120px;
    height: 120px;
    object-fit: contain;
    margin-bottom: 12px;
    border-radius: var(--iwa-radius);
}

.iwa-landing-title {
    font-size: 32px;
    font-weight: 700;
    color: var(--iwa-text);
    margin: 0 0 8px;
}

.iwa-landing-subtitle {
    font-size: 16px;
    color: var(--iwa-text-secondary);
    margin: 0 0 40px;
}

.iwa-landing.has-bg-image .iwa-landing-title {
    color: #fff;
}

.iwa-landing.has-bg-image .iwa-landing-subtitle {
    color: rgba(255,255,255,.8);
}

/* Table number (from QR code) */
.iwa-landing-table {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
    padding: 10px 24px;
    background: var(--iwa-bg-alt);
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
}

.iwa-landing-table-label {
    color: var(--iwa-text-secondary);
    font-size: 15px;
    font-weight: 500;
}

.iwa-landing-table .iwa-landing-table-number {
    color: var(--iwa-text);
    font-size: 22px;
    font-weight: 700;
}

/* Manual table input */
.iwa-landing-table-input {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
    width: 100%;
    max-width: 340px;
}

.iwa-landing-table-input .iwa-landing-table-label {
    color: var(--iwa-text-secondary);
    font-size: var(--iwa-size-text, 15px);
    font-weight: 500;
}

.iwa-table-required-note {
    color: #dc2626;
    font-weight: 700;
}

.iwa-table-field {
    width: 100%;
    padding: 18px 20px;
    font-size: 28px;
    font-weight: 700;
    text-align: center;
    color: var(--iwa-text);
    background: var(--iwa-bg-alt);
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    outline: none;
    transition: border-color .2s;
    -moz-appearance: textfield;
}

.iwa-table-field::-webkit-inner-spin-button,
.iwa-table-field::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.iwa-table-field::placeholder {
    color: var(--iwa-text-secondary);
    font-weight: 400;
    font-size: var(--iwa-size-text, 15px);
}

.iwa-table-field:focus {
    border-color: var(--iwa-accent);
}

.iwa-table-field-error {
    border-color: #e53e3e !important;
    animation: iwa-shake .4s ease;
}

.iwa-table-error-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.35;
    color: #dc2626;
    text-align: center;
    font-weight: 600;
}

@keyframes iwa-shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}

.iwa-landing-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 48px;
    background: var(--iwa-gradient);
    color: #fff;
    font-size: 17px;
    font-weight: 600;
    border: 2px solid transparent;
    border-radius: var(--iwa-btn-radius);
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s, background .3s, border-color .3s;
}

.iwa-landing-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
    color: #fff;
}

.iwa-landing-lang {
    margin-top: 64px;
    display: flex;
    gap: 16px;
}

.iwa-landing-lang a {
    color: var(--iwa-text-secondary);
    font-size: 14px;
    text-decoration: none;
    padding: 6px 12px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    transition: all .2s;
}

.iwa-landing-lang a:hover,
.iwa-landing-lang a.current-lang {
    color: var(--iwa-text);
    border-color: var(--iwa-text);
}

.iwa-landing-footer-text {
    margin-top: 20px;
    color: var(--iwa-text-secondary);
    font-size: var(--iwa-size-text, 15px);
    text-align: center;
    max-width: 300px;
}

/* â”€â”€ Landing with background image: white text overrides â”€â”€ */
.iwa-landing.has-bg-image .iwa-landing-table {
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-color: rgba(255,255,255,.25);
}
.iwa-landing.has-bg-image .iwa-landing-table-label { color: rgba(255,255,255,.8); }
.iwa-landing.has-bg-image .iwa-landing-table .iwa-landing-table-number { color: #fff; }
.iwa-landing.has-bg-image .iwa-landing-table-input .iwa-landing-table-label { color: rgba(255,255,255,.8); }
.iwa-landing.has-bg-image .iwa-table-required-note { color: #fecaca; }
.iwa-landing.has-bg-image .iwa-table-field {
    color: #fff;
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.3);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.iwa-landing.has-bg-image .iwa-table-error-text { color: #fecaca; }
.iwa-landing.has-bg-image .iwa-table-field::placeholder { color: rgba(255,255,255,.4); }
.iwa-landing.has-bg-image .iwa-table-field:focus { border-color: rgba(255,255,255,.7); }
.iwa-landing.has-bg-image .iwa-landing-lang a { color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.3); }
.iwa-landing.has-bg-image .iwa-landing-lang a:hover,
.iwa-landing.has-bg-image .iwa-landing-lang a.current-lang { color: #fff; border-color: #fff; }
.iwa-landing.has-bg-image .iwa-landing-footer-text { color: rgba(255,255,255,.5); }

/* â”€â”€ Landing: Group ordering â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-landing-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: 320px;
}

/* Active (primary) CTA button */
.iwa-landing-cta-active {
    background: var(--iwa-gradient) !important;
    border: 2px solid transparent;
    color: #fff !important;
}

/* Secondary (inactive) CTA button */
.iwa-landing-cta-secondary {
    background: rgba(255,255,255,.15) !important;
    border: 2px solid rgba(255,255,255,.4);
    color: #fff !important;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    padding: 14px 24px;
    border-radius: var(--iwa-radius);
    text-align: center;
    text-decoration: none;
    transition: background .2s, border-color .2s;
}
.iwa-landing-cta-secondary:hover {
    background: rgba(255,255,255,.25) !important;
    border-color: rgba(255,255,255,.6);
}
.iwa-landing.has-bg-image .iwa-landing-cta-secondary {
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

/* Inline group choices below the CTA buttons */
.iwa-landing-group-inline {
    width: 100%;
    max-width: 320px;
    margin-top: 4px;
}

/* Group sub-screens */
.iwa-landing-group,
.iwa-landing-group-join,
.iwa-landing-group-share {
    width: 100%;
    max-width: 340px;
    text-align: center;
}

.iwa-group-back {
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    color: var(--iwa-accent, #4f46e5);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 4px 0;
    margin-bottom: 12px;
}
.iwa-landing.has-bg-image .iwa-group-back { color: rgba(255,255,255,.8); }

.iwa-group-screen-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--iwa-text);
    margin: 0 0 4px;
}
.iwa-landing.has-bg-image .iwa-group-screen-title { color: #fff; }

.iwa-group-screen-desc {
    font-size: 14px;
    color: var(--iwa-muted);
    margin: 0 0 20px;
}
.iwa-landing.has-bg-image .iwa-group-screen-desc { color: rgba(255,255,255,.6); }

/* Choice cards */
.iwa-group-choices {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Horizontal row variant for inline group choices */
.iwa-group-choices-row {
    flex-direction: row;
}

.iwa-group-choices-row .iwa-group-choice {
    flex: 1;
    min-width: 0;
    padding: 14px 10px;
}

.iwa-group-choice {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 18px 16px;
    background: var(--iwa-bg);
    border: 2px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    cursor: pointer;
    transition: border-color .2s, transform .15s;
    text-align: center;
}
.iwa-group-choice:hover {
    border-color: var(--iwa-accent);
    transform: translateY(-1px);
}
.iwa-landing.has-bg-image .iwa-group-choice {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.25);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.iwa-landing.has-bg-image .iwa-group-choice:hover {
    border-color: rgba(255,255,255,.6);
}

.iwa-group-choice-icon {
    font-size: 28px;
    line-height: 1;
}

.iwa-group-choice-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--iwa-text);
}
.iwa-landing.has-bg-image .iwa-group-choice-label { color: #fff; }

.iwa-group-choice-desc {
    font-size: 13px;
    color: var(--iwa-muted);
}
.iwa-landing.has-bg-image .iwa-group-choice-desc { color: rgba(255,255,255,.55); }

/* Join form */
.iwa-group-code-input {
    margin: 20px 0;
}

.iwa-group-code-field {
    width: 180px;
    font-size: 32px;
    font-weight: 800;
    letter-spacing: 10px;
    text-align: center;
    text-transform: uppercase;
    padding: 12px 16px;
    border: 2px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg);
    color: var(--iwa-text);
    outline: none;
}
.iwa-group-code-field:focus {
    border-color: var(--iwa-accent);
}
.iwa-landing.has-bg-image .iwa-group-code-field {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.3);
    color: #fff;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.iwa-landing.has-bg-image .iwa-group-code-field::placeholder { color: rgba(255,255,255,.3); }

.iwa-group-error {
    color: #ef4444;
    font-size: 14px;
    font-weight: 600;
    margin: 8px 0 0;
}

/* Share / code display */
.iwa-group-code-display {
    margin: 16px 0;
}

.iwa-group-code-value {
    display: inline-block;
    font-size: 40px;
    font-weight: 900;
    letter-spacing: 8px;
    color: var(--iwa-accent);
    background: var(--iwa-bg);
    border: 3px solid var(--iwa-accent);
    border-radius: var(--iwa-radius);
    padding: 12px 24px;
}
.iwa-landing.has-bg-image .iwa-group-code-value {
    color: #fff;
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.5);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.iwa-group-share-hint {
    font-size: 14px;
    color: var(--iwa-muted);
    margin: 0 0 16px;
}
.iwa-landing.has-bg-image .iwa-group-share-hint { color: rgba(255,255,255,.6); }

/* Group code badge (returning member on landing) */
.iwa-landing-group-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 20px;
    padding: 8px 18px;
    background: rgba(255,255,255,.12);
    border: 2px solid rgba(255,255,255,.35);
    border-radius: 50px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.iwa-landing-group-badge-label {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: .7;
}
.iwa-landing-group-badge-code {
    font-size: 20px;
    font-weight: 900;
    letter-spacing: 4px;
}

/* Members list */
.iwa-group-members {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-bottom: 20px;
}

.iwa-group-member {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    background: var(--iwa-bg);
    border: 1px solid var(--iwa-border);
    color: var(--iwa-text);
}
.iwa-landing.has-bg-image .iwa-group-member {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.25);
    color: #fff;
}

/* â”€â”€ Group banner (shown across all pages when in a group) â”€â”€ */
.iwa-group-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 16px;
    background: var(--iwa-accent, #4f46e5);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.iwa-group-banner-code {
    font-weight: 800;
    letter-spacing: 2px;
}

.iwa-group-banner-members {
    opacity: .8;
}

.iwa-group-banner-share {
    background: rgba(255,255,255,.2);
    border: none;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 12px;
    cursor: pointer;
    transition: background .2s;
}
.iwa-group-banner-share:hover {
    background: rgba(255,255,255,.35);
}

.iwa-group-banner-leave {
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    transition: background .2s;
    line-height: 1;
    padding: 0;
    margin-left: 2px;
}
.iwa-group-banner-leave:hover {
    background: rgba(255,80,80,.6);
}

/* Group share modal (reuse of the code display) */
.iwa-group-share-modal {
    position: fixed;
    inset: 0;
    z-index: 99998;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: iwa-modal-pop .2s;
}
.iwa-group-share-modal-overlay {
    position: absolute;
    inset: 0;
    background: var(--iwa-modal-overlay, rgba(0,0,0,.5));
}
.iwa-group-share-modal-box {
    position: relative;
    z-index: 1;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: var(--iwa-radius, 16px);
    padding: 28px 24px;
    text-align: center;
    max-width: 320px;
    width: calc(100% - 40px);
    animation: iwa-modal-pop .25s;
}
.iwa-group-share-modal-box .iwa-group-code-value {
    color: var(--iwa-accent);
    background: #f8f8f8;
    border-color: var(--iwa-accent);
}

/* â”€â”€ Category list (home / shop) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-categories {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.iwa-category-card {
    display: flex;
    border-radius: var(--iwa-radius);
    overflow: hidden;
    background: var(--iwa-bg);
    border: 1px solid var(--iwa-border);
    text-decoration: none;
    color: var(--iwa-text);
    transition: box-shadow .2s, transform .15s;
}

.iwa-category-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
    transform: translateY(-1px);
}

.iwa-category-img {
    width: 120px;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
}

.iwa-category-info {
    flex: 1;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.iwa-category-name {
    font-family: var(--iwa-font-categories);
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 4px;
}

.iwa-category-count {
    font-size: 13px;
    color: var(--iwa-text-secondary);
}

.iwa-category-desc {
    font-size: 13px;
    color: var(--iwa-text-secondary);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.iwa-category-hours {
    font-size: 12px;
    color: var(--iwa-accent);
    margin-top: 2px;
}

/* Full-width display mode */
.iwa-categories-full .iwa-category-card-full {
    flex-direction: column;
}

.iwa-categories-full .iwa-category-card-full .iwa-category-img {
    width: 100%;
    height: 180px;
}

.iwa-categories-full .iwa-category-card-full .iwa-category-info {
    padding: 14px 16px;
    text-align: center;
    align-items: center;
}

/* Subcategory pills (horizontal scroll on product cat pages) */
.iwa-subcategories {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 12px 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.iwa-subcategories::-webkit-scrollbar {
    display: none;
}

.iwa-subcategory-pill {
    flex-shrink: 0;
    padding: 8px 16px;
    border-radius: var(--iwa-btn-radius);
    background: var(--iwa-bg-alt);
    color: var(--iwa-text);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid var(--iwa-border);
    white-space: nowrap;
    transition: all .2s;
}

.iwa-subcategory-pill:hover,
.iwa-subcategory-pill.active {
    background: var(--iwa-accent);
    color: #fff;
    border-color: var(--iwa-accent);
}

/* â”€â”€ Product list â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-products {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.iwa-product-card {
    display: flex;
    border-radius: var(--iwa-radius);
    overflow: hidden;
    background: var(--iwa-bg);
    border: 1px solid var(--iwa-border);
    text-decoration: none;
    color: var(--iwa-text);
    transition: box-shadow .2s;
    position: relative;
}

.iwa-product-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
}

.iwa-product-img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
}

.iwa-product-img.no-image {
    display: none;
}

.iwa-product-info {
    flex: 1;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.iwa-product-name {
    font-family: var(--iwa-font-products);
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 2px;
    color: var(--iwa-product-name, var(--iwa-text));
}

.iwa-product-desc {
    font-size: 13px;
    color: var(--iwa-product-desc, var(--iwa-text-secondary));
    margin: 0 0 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.iwa-product-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.iwa-product-price {
    font-family: var(--iwa-font-prices);
    font-size: var(--iwa-size-price, 16px);
    font-weight: 700;
    color: var(--iwa-text);
}

.iwa-product-price del {
    color: var(--iwa-text-secondary);
    font-weight: 400;
    font-size: 13px;
}

.iwa-product-price ins {
    text-decoration: none;
}

.iwa-product-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: var(--iwa-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--iwa-btn-radius);
}

/* Allergens inline */
ul.iwa-allergens {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

ul.iwa-allergens li {
    display: flex;
    align-items: center;
}

ul.iwa-allergens li svg {
    width: 22px;
    height: 22px;
}

ul.iwa-allergens li img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

ul.iwa-allergens li a {
    display: flex;
    align-items: center;
}

ul.iwa-allergens li {
    cursor: pointer;
}

/* â”€â”€ Allergen zoom modal â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-allergen-zoom {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iwa-allergen-zoom-overlay {
    position: absolute;
    inset: 0;
    background: var(--iwa-modal-overlay, rgba(0,0,0,.5));
}

.iwa-allergen-zoom-box {
    position: relative;
    z-index: 1;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: var(--iwa-radius, 16px);
    padding: 28px 32px;
    text-align: center;
    min-width: 160px;
    max-width: 260px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .2);
    animation: iwa-modal-pop .25s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.iwa-allergen-zoom-icon img,
.iwa-allergen-zoom-icon svg {
    width: 80px !important;
    height: 80px !important;
}

.iwa-allergen-zoom-name {
    font-size: 17px;
    font-weight: 600;
    color: var(--iwa-modal-title, var(--iwa-text, #1a1a1a));
    line-height: 1.3;
}

/* Cart qty badge next to product name */
.iwa-product-qty-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    background: #e53935;
    border-radius: 9px;
    padding: 0 5px;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 1;
}

/* â”€â”€ Product detail â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-product-detail {
    padding-bottom: 0;
    background: var(--iwa-bg, #fff);
}

.iwa-product-hero {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.iwa-product-detail-body {
    padding: 20px 16px;
}

.iwa-product-detail-name {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 4px;
}

.iwa-product-detail-price {
    font-size: 20px;
    font-weight: 700;
    color: var(--iwa-accent);
    margin: 0 0 12px;
}

.iwa-product-detail-desc {
    font-size: 14px;
    color: var(--iwa-text-secondary);
    line-height: 1.6;
    margin: 0 0 20px;
}

/* WooCommerce add-to-cart form */
.iwa-add-to-cart-form {
    margin-top: 8px;
    padding-bottom: 220px; /* space for sticky bar + bottom nav */
}

.iwa-add-to-cart-form form.cart {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
}

/* Fixed bar background at bottom, above bottom nav */
.iwa-add-to-cart-form form.cart::after {
    content: '';
    position: fixed;
    bottom: 60px;
    left: 0;
    right: 0;
    height: 100px;
    height: calc(100px + env(safe-area-inset-bottom));
    background: var(--iwa-bg);
    border-top: 1px solid var(--iwa-border);
    z-index: 89;
    pointer-events: none;
}

/* Quantity selector - fixed bottom-left, centré verticalement sur la barre */
.iwa-add-to-cart-form .quantity {
    position: fixed;
    bottom: 50px;
    bottom: calc(50px + env(safe-area-inset-bottom) / 2);
    left: 16px;
    z-index: 91;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    overflow: hidden;
    background: var(--iwa-bg);
    height: 60px;
}

.iwa-add-to-cart-form .quantity label {
    display: none;
}

/* +/- buttons - même hauteur que le bouton Ajouter à la commande */
.iwa-add-to-cart-form .quantity .iwa-qty-minus,
.iwa-add-to-cart-form .quantity .iwa-qty-plus,
.iwa-add-to-cart-form .quantity .minus,
.iwa-add-to-cart-form .quantity .plus {
    width: 60px;
    height: 60px;
    border: none;
    background: var(--iwa-bg);
    color: var(--iwa-text);
    font-size: 28px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.iwa-add-to-cart-form .quantity .iwa-qty-minus:active,
.iwa-add-to-cart-form .quantity .iwa-qty-plus:active,
.iwa-add-to-cart-form .quantity .minus:active,
.iwa-add-to-cart-form .quantity .plus:active {
    background: var(--iwa-bg-alt);
}

.iwa-add-to-cart-form .quantity input[type="number"] {
    width: 70px;
    height: 60px;
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    border: none;
    border-left: 1px solid var(--iwa-border);
    border-right: 1px solid var(--iwa-border);
    background: var(--iwa-bg);
    color: var(--iwa-text);
    -moz-appearance: textfield;
    outline: none;
    padding: 0;
}

.iwa-add-to-cart-form .quantity input[type="number"]::-webkit-inner-spin-button,
.iwa-add-to-cart-form .quantity input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Add to order button - même hauteur et même ligne que les boutons −/+
   Largeur : de (extrémité du qty + 100px) jusqu'à (bord droit - 100px)
   Qty: left 16 + (60 + 70 + 60) = 206 → button left 306, right 100 */
.iwa-add-to-cart-form .single_add_to_cart_button,
.iwa-add-to-cart-form button[type="submit"] {
    position: fixed;
    left: 306px;
    right: 100px;
    width: auto;
    bottom: 50px;
    bottom: calc(50px + env(safe-area-inset-bottom) / 2);
    z-index: 91;
    padding: 0 20px;
    background: var(--iwa-gradient);
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    border: none;
    border-radius: var(--iwa-btn-radius);
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
    text-align: center;
    white-space: nowrap;
    height: 60px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.iwa-add-to-cart-form .single_add_to_cart_button:hover,
.iwa-add-to-cart-form button[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
}

/* Hide PEWC total row inside the scrollable form â€” not needed in sticky bar */
.iwa-add-to-cart-form .pewc-total-field-wrapper {
    display: none !important;
}

/* PEWC addons container */
.iwa-product-detail .pewc-product-extra-groups-wrap {
    margin-top: 8px;
}

/* PEWC Group sections */
.iwa-product-detail .pewc-group-wrap {
    margin-bottom: 0;
    border-bottom: 1px solid var(--iwa-border);
}

/* Hide PEWC group title ("Avec mon dessert") â€” field labels are the accordion headers */
.iwa-product-detail .pewc-group-heading-wrapper {
    display: none !important;
}

.iwa-product-detail .pewc-group-content-wrapper {
    padding: 0;
}

.iwa-product-detail .pewc-group-description {
    padding: 8px 16px;
    margin: 0;
    font-size: 13px;
    color: var(--iwa-text-secondary);
}

/* PEWC items list */
.iwa-product-detail .pewc-product-extra-groups {
    list-style: none;
    margin: 0;
    padding: 0;
}

.iwa-product-detail .pewc-item {
    border-bottom: 1px solid var(--iwa-border);
    padding: 0;
    list-style: none;
    color: var(--iwa-addon-text-color, var(--iwa-text));
}

.iwa-product-detail .pewc-item:last-child {
    border-bottom: none;
}

/* PEWC field label â€” accordion header (gray bg, chevron) */
.iwa-product-detail .pewc-field-label {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    font-size: 15px;
    font-weight: 700;
    color: var(--iwa-addon-title-color, var(--iwa-text));
    margin: 0;
    background: var(--iwa-addon-title-bg, var(--iwa-bg-alt));
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    gap: 6px;
}

/* Chevron arrow on field labels */
.iwa-product-detail .pewc-field-label::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--iwa-text-secondary);
    border-bottom: 2px solid var(--iwa-text-secondary);
    transform: rotate(45deg);
    transition: transform .25s ease;
    flex-shrink: 0;
    margin-left: auto;
    margin-bottom: 4px;
}

.iwa-product-detail .pewc-item.iwa-field-collapsed .pewc-field-label::after {
    transform: rotate(-45deg);
    margin-bottom: 0;
    margin-top: 4px;
}

/* Collapse content below field label (inside pewc-item-field-wrapper) */
.iwa-product-detail .pewc-item.iwa-field-collapsed .pewc-item-field-wrapper > *:not(.pewc-field-label) {
    display: none !important;
}

/* Hide the asterisk â€” replaced by (obligatoire) via JS */
.iwa-product-detail .pewc-field-label .required {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    overflow: hidden !important;
}

.iwa-product-detail .pewc-field-label .iwa-obligatoire {
    font-weight: 400;
    font-size: 13px;
    color: var(--iwa-text-secondary);
}

.iwa-product-detail .pewc-field-label .pewc-field-price {
    font-weight: 600;
    color: var(--iwa-text-secondary);
    white-space: nowrap;
    margin-left: auto;
}

/* Hide field images (placeholder Etiquette) â€” show clean list */
.iwa-product-detail .pewc-item-field-image-wrapper {
    display: none;
}

/* PEWC checkbox/radio groups â€” list style matching visuels */
.iwa-product-detail .pewc-checkbox-group-wrapper {
    list-style: none;
    margin: 0;
    padding: 0;
}

.iwa-product-detail .pewc-checkbox-group-wrapper li {
    border-bottom: 1px solid var(--iwa-border);
}

.iwa-product-detail .pewc-checkbox-group-wrapper li:last-child {
    border-bottom: none;
}

.iwa-product-detail .pewc-checkbox-group-wrapper label,
.iwa-product-detail .pewc-checkbox-form-label {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    font-size: var(--iwa-size-text, 15px);
    font-weight: 500;
    color: var(--iwa-text);
    cursor: pointer;
    gap: 12px;
    margin: 0;
}

.iwa-product-detail .pewc-checkbox-form-field,
.iwa-product-detail .pewc-radio-form-field {
    width: 26px;
    height: 26px;
    min-width: 26px;
    accent-color: var(--iwa-accent);
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
}

.iwa-product-detail .pewc-option-cost-label {
    margin-left: auto;
    font-weight: 600;
    color: var(--iwa-text-secondary);
    white-space: nowrap;
}

/* PEWC products as checkboxes/radio with images â€” override to list layout */
.iwa-product-detail .pewc-checkboxes-images-wrapper,
.iwa-product-detail .pewc-radio-images-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}

.iwa-product-detail .pewc-checkbox-image-wrapper,
.iwa-product-detail .pewc-radio-image-wrapper {
    width: 100% !important;
    border-bottom: 1px solid var(--iwa-border);
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
}

.iwa-product-detail .pewc-checkbox-image-wrapper:last-child,
.iwa-product-detail .pewc-radio-image-wrapper:last-child {
    border-bottom: none;
}

.iwa-product-detail .pewc-checkbox-image-wrapper label,
.iwa-product-detail .pewc-radio-image-wrapper label {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    padding: 14px 16px !important;
    gap: 12px !important;
    cursor: pointer;
}

/* Hide actual checkbox/radio inputs â€” visual handled by label::before */
.iwa-product-detail .pewc-checkbox-image-wrapper input[type="checkbox"],
.iwa-product-detail .pewc-radio-image-wrapper input[type="radio"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Visual checkbox circle on each option row */
.iwa-product-detail .pewc-checkbox-image-wrapper label::before {
    content: '';
    display: block;
    width: 26px;
    height: 26px;
    min-width: 26px;
    border: 2px solid var(--iwa-border);
    border-radius: 6px;
    background: var(--iwa-bg);
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
    box-sizing: border-box;
}

.iwa-product-detail .pewc-checkbox-image-wrapper.checked label::before {
    background: var(--iwa-accent);
    border-color: var(--iwa-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px;
}

/* Visual radio circle on each radio option row */
.iwa-product-detail .pewc-radio-image-wrapper label::before {
    content: '';
    display: block;
    width: 26px;
    height: 26px;
    min-width: 26px;
    border: 2px solid var(--iwa-border);
    border-radius: 50%;
    background: var(--iwa-bg);
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
    box-sizing: border-box;
}

.iwa-product-detail .pewc-radio-image-wrapper.checked label::before {
    border-color: var(--iwa-accent);
    background: radial-gradient(circle, var(--iwa-accent) 40%, transparent 41%);
}

/* Hide product option images â€” show as clean text list */
.iwa-product-detail .pewc-checkbox-image-wrapper img,
.iwa-product-detail .pewc-radio-image-wrapper img,
.iwa-product-detail .label-content-wrapper > img,
.iwa-product-detail .pewc-checkbox-desc-wrapper img {
    display: none !important;
}

.iwa-product-detail .label-content-wrapper {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
    gap: 12px !important;
}

.iwa-product-detail .pewc-checkbox-desc-wrapper,
.iwa-product-detail .pewc-radio-image-desc {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    font-size: var(--iwa-size-text, 15px) !important;
    font-weight: 500 !important;
    color: var(--iwa-text) !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* PEWC child quantity field */
.iwa-product-detail .pewc-child-quantity-field {
    width: 48px !important;
    height: 36px;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg);
    color: var(--iwa-text);
    margin-right: 8px;
}

/* PEWC selected state */
.iwa-product-detail .pewc-checkbox-image-wrapper.checked,
.iwa-product-detail .pewc-radio-image-wrapper.checked {
    background: var(--iwa-bg-alt) !important;
}

/* PEWC totals */
.iwa-product-detail .pewc-total-field-wrapper {
    background: var(--iwa-bg-alt);
    padding: 12px 16px;
    margin-top: 4px;
    border-radius: var(--iwa-radius);
}

.iwa-product-detail .pewc-total-field-wrapper p {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
    padding: 6px 0;
    font-size: var(--iwa-size-text, 15px);
    color: var(--iwa-text);
}

.iwa-product-detail .pewc-total-field-wrapper p:last-child {
    font-weight: 700;
    font-size: 16px;
    border-top: 1px solid var(--iwa-border);
    padding-top: 10px;
    margin-top: 4px;
}

.iwa-product-detail .pewc-total-field {
    font-weight: 700;
    color: var(--iwa-accent);
}

/* ── Addons : disposition multi-colonnes (admin Configuration → Addons) ──
   IMPORTANT : ce sont les CHOIX à l'intérieur de chaque section qui passent
   en colonnes — les sections (groupes) restent empilées en pleine largeur
   avec leur titre/description sur leur propre ligne.

   Structure réelle PEWC :
   .pewc-product-extra-groups-wrap
     > ul.pewc-product-extra-groups (extérieure)
         > li.pewc-group-wrap
             > .pewc-group-heading-wrapper        (titre de section, masqué)
             > .pewc-group-content-wrapper
                 > ul.pewc-product-extra-groups   (intérieure : ITEMS)
                     > li.pewc-item.pewc-item-{type}
                         (.pewc-item-field-wrapper > template HTML)
   Les wrappers de CHOIX (à mettre en grille) sont :
     - .pewc-radio-images-wrapper     (image-swatch + products radio)
     - .pewc-checkboxes-images-wrapper (products checkboxes)
     - ul.pewc-checkbox-group-wrapper  (radios/checkboxes texte simples)
     - l'inner ul.pewc-product-extra-groups quand il contient plusieurs
       .pewc-product-item (produits liés rendus comme items individuels)
*/

/* Reset largeur/padding sur toute la chaîne de wrappers en mode colonnes */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-product-extra-groups-wrap,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-product-extra-groups-wrap,
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-product-extra-groups,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-product-extra-groups,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-group-wrap,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-group-wrap,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-group-content-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-group-content-wrapper {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    list-style: none !important;
}

/* L'item PEWC parent (qui contient le wrapper de choix) garde son
   accordion header `.pewc-field-label` en pleine largeur normale */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-group-content-wrapper > ul.pewc-product-extra-groups > li.pewc-item,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-group-content-wrapper > ul.pewc-product-extra-groups > li.pewc-item {
    display: block !important;
    width: 100% !important;
}

/* Mise en grille des wrappers de CHOIX (toutes variantes PEWC connues) */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-radio-images-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-checkboxes-images-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-checkbox-group-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: stretch;
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
body.iwa-addons-cols-3 .iwa-product-detail .pewc-radio-images-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-checkboxes-images-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-checkbox-group-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    align-items: stretch;
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* Encadrement léger des « cartes » de choix individuelles */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-radio-image-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-radio-image-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-checkbox-image-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-checkbox-image-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-checkbox-group-wrapper > li,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-checkbox-group-wrapper > li {
    border-bottom: none !important;
    padding: 8px 12px !important;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg);
    list-style: none !important;
    margin: 0 !important;
}
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-checkbox-group-wrapper > li label,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-checkbox-group-wrapper > li label {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
}

/* Le titre / description de section reste en pleine largeur d'écran */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-group-heading-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-group-heading-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-group-description,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-group-description {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* En mode colonnes, on fixe la taille des libellés des choix à 14px pour
   densifier l'affichage. Le titre de section garde sa taille normale.
   !important nécessaire pour surcharger les règles body.iwa-embed (36px). */
body.iwa-addons-cols-2 .iwa-product-detail .pewc-product-item .pewc-item-name,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-product-item .pewc-item-name,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-product-item label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-product-item label,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-product-item .pewc-product-title,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-product-item .pewc-product-title,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-product-item .pewc-product-name,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-product-item .pewc-product-name,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-radio-image-wrapper label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-radio-image-wrapper label,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-checkbox-image-wrapper label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-checkbox-image-wrapper label,
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-checkbox-group-wrapper label,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-checkbox-group-wrapper label,
body.iwa-addons-cols-2 .iwa-product-detail ul.pewc-checkbox-group-wrapper li,
body.iwa-addons-cols-3 .iwa-product-detail ul.pewc-checkbox-group-wrapper li,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-radio-images-wrapper label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-radio-images-wrapper label,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-checkbox-desc-wrapper,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-checkbox-desc-wrapper,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-radio-image-desc,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-radio-image-desc,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-item .pewc-checkbox-label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-item .pewc-checkbox-label,
body.iwa-addons-cols-2 .iwa-product-detail .pewc-item .pewc-radio-label,
body.iwa-addons-cols-3 .iwa-product-detail .pewc-item .pewc-radio-label {
    font-size: 14px !important;
    line-height: 1.2 !important;
}

/* ── Addons : afficher les images des produits liés (110×110) ── */
body.iwa-addons-with-images .iwa-product-detail .pewc-product-item img,
body.iwa-addons-with-images .iwa-product-detail .pewc-checkbox-image-wrapper img,
body.iwa-addons-with-images .iwa-product-detail .pewc-radio-image-wrapper img,
body.iwa-addons-with-images .iwa-product-detail .pewc-checkbox-desc-wrapper img,
body.iwa-addons-with-images .iwa-product-detail .label-content-wrapper > img {
    display: inline-block !important;
    width: 110px !important;
    height: 110px !important;
    object-fit: cover;
    border-radius: var(--iwa-radius);
    margin-right: 12px;
    vertical-align: middle;
}

/* ── Addons : modale séquentielle (masque tout le bloc PEWC — JS sort
   chaque section/item dans la modale 1 par 1, puis affiche un récap) ── */
body.iwa-addons-modal-steps .iwa-product-detail .pewc-product-extra-groups-wrap {
    display: none !important;
}
/* …sauf si une section/item est explicitement déplacé(e) dans la modale */
.iwa-addons-step-modal .pewc-product-extra-groups-wrap,
.iwa-addons-step-modal .pewc-group-wrap,
.iwa-addons-step-modal .pewc-item {
    display: block !important;
}
.iwa-addons-step-modal {
    position: fixed;
    inset: 0;
    z-index: 100400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.iwa-addons-step-modal[hidden] { display: none; }
.iwa-addons-step-overlay {
    position: absolute;
    inset: 0;
    background: var(--iwa-modal-overlay, rgba(0,0,0,.55));
}
.iwa-addons-step-box {
    position: relative;
    z-index: 1;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: var(--iwa-radius, 16px);
    width: 90vw;
    min-width: 90vw;
    max-width: 90vw;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.iwa-addons-step-header {
    padding: 20px 24px 8px;
    border-bottom: 1px solid var(--iwa-modal-border, #eee);
}
.iwa-addons-step-title {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 700;
    color: var(--iwa-modal-title, #111);
    text-align: center;
}
.iwa-addons-step-progress {
    text-align: center;
    font-size: 13px;
    color: var(--iwa-text-secondary, #666);
}
.iwa-addons-step-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 16px 24px;
}
.iwa-addons-step-error {
    color: #ef4444;
    font-weight: 600;
    text-align: center;
    margin-top: 8px;
    min-height: 20px;
}
.iwa-addons-step-footer {
    display: flex;
    gap: 12px;
    padding: 16px 24px 20px;
    border-top: 1px solid var(--iwa-modal-border, #eee);
}
.iwa-addons-step-footer button {
    flex: 1;
    height: 48px;
    border-radius: var(--iwa-btn-radius, 25px);
    border: none;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}
.iwa-addons-step-prev {
    background: #2a2a2a;
    color: #fff;
}
.iwa-addons-step-next {
    background: var(--iwa-gradient);
    color: #fff;
}
.iwa-addons-step-prev:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* ── Addons modal-steps : disposition multi-colonnes DANS la modale ──
   Quand un .pewc-group-wrap est déplacé dans .iwa-addons-step-body, il sort
   du scope .iwa-product-detail → on rejoue les mêmes règles ici. */
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-product-extra-groups-wrap,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-product-extra-groups-wrap,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body ul.pewc-product-extra-groups,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body ul.pewc-product-extra-groups,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-group-wrap,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-group-wrap,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-group-content-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-group-content-wrapper {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-group-heading-wrapper {
    display: none !important; /* le titre est déjà dans le header de la modale */
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-images-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkboxes-images-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 12px;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-radio-images-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-checkboxes-images-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body ul.pewc-checkbox-group-wrapper {
    grid-template-columns: 1fr 1fr;
}
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-radio-images-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-checkboxes-images-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body ul.pewc-checkbox-group-wrapper {
    grid-template-columns: 1fr 1fr 1fr;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-radio-image-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-radio-image-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body .pewc-checkbox-image-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body .pewc-checkbox-image-wrapper,
.iwa-addons-step-modal.iwa-addons-cols-2 .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li,
.iwa-addons-step-modal.iwa-addons-cols-3 .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li {
    border: 2px solid var(--iwa-border, #e5e5e5);
    border-radius: var(--iwa-radius, 12px);
    padding: 0 !important;
    background: var(--iwa-bg, #fff);
    box-shadow: 0 2px 8px rgba(0,0,0,.10);
    list-style: none !important;
    margin: 0 !important;
    overflow: hidden;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li {
    position: relative;
    width: 100%;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper label {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 12px !important;
    min-height: 96px;
    width: 100%;
    box-sizing: border-box;
    background: var(--iwa-bg, #fff);
}
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li > label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 12px !important;
    min-height: 76px;
    width: 100%;
    box-sizing: border-box;
    background: var(--iwa-bg, #fff);
    font-size: 14px !important;
    line-height: 1.3 !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper input[type="radio"],
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper input[type="checkbox"],
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper input[type="radio"],
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px;
    opacity: 1 !important;
    position: static !important;
    margin: 2px 0 0 0 !important;
    clip: auto !important;
    overflow: visible !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    background: #fff !important;
    border: 1px solid #888 !important;
    accent-color: var(--iwa-accent, #e91e63);
    flex-shrink: 0;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.checked,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.checked,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li:has(input:checked) {
    border-color: var(--iwa-accent, #e91e63);
    box-shadow: 0 0 0 2px rgba(233,30,99,.16);
    background: var(--iwa-bg-alt, #fafafa);
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper .pewc-checkbox-desc-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-product-item .pewc-product-title,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-product-item .pewc-product-name {
    color: var(--iwa-text, #1a1a1a) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    word-break: break-word;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-desc-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px;
    width: 100% !important;
    padding: 10px 12px 12px !important;
    margin: 0 !important;
    text-align: left;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-desc .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-desc-wrapper .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-desc .pewc-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-desc-wrapper .pewc-price {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-product-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-price,
.iwa-addons-step-modal .iwa-addons-step-body .woocommerce-Price-amount {
    color: var(--iwa-accent, #e91e63) !important;
    font-weight: 700 !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper img,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper img,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-product-item img {
    width: 86px !important;
    height: 86px !important;
    object-fit: cover;
    border-radius: calc(var(--iwa-radius, 12px) - 4px);
    margin-right: 0 !important;
    flex-shrink: 0;
}

/* ---- Modal cards: structure lisible et homogène ---- */
.iwa-addons-step-modal .iwa-addons-step-body {
    --iwa-addon-modal-font-size: 18px;
}

/* Carte image + contenu: gauche = image, droite = description+footer,
   nom affiché sous l'image mais rendu par le WRAPPER (pas dans label-content-wrapper). */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper {
    display: grid !important;
    grid-template-columns: 122px minmax(0, 1fr);
    grid-template-areas:
        "media details"
        "name details";
    align-items: stretch;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add {
    grid-template-columns: 122px minmax(0, 1fr);
    grid-template-areas:
        "media details"
        "name details";
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper > label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper > label {
    grid-area: media;
    position: relative;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 124px;
    padding: 28px 10px 10px !important;
    border-right: 1px solid var(--iwa-border, #ddd);
}

/* Nom du produit sous l'image, centré, horizontal, sur le wrapper parent */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-card-formatted::after,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-card-formatted::after {
    grid-area: name;
    content: attr(data-iwa-name);
    display: block;
    width: 100%;
    padding: 4px 8px 10px;
    text-align: center;
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.2 !important;
    font-weight: 700;
    color: var(--iwa-text, #1a1a1a);
    word-break: break-word;
}

/* Variante explicite products-to-add : contraintes prioritaires demandées */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add {
    grid-template-columns: 122px minmax(0, 1fr) !important;
    grid-template-areas:
        "media details"
        "name details" !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add > label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add > label {
    grid-area: media !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add::after,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add::after {
    grid-area: name !important;
    text-align: center !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add .pewc-checkbox-desc-wrapper {
    grid-area: details !important;
}

/* Case à cocher / radio toujours visible */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper > label input[type="radio"],
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper > label input[type="checkbox"] {
    position: absolute !important;
    top: 8px;
    left: 8px;
    margin: 0 !important;
}

/* Colonne droite : description + ligne finale allergènes/prix */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-desc-wrapper {
    grid-area: details;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    min-height: 124px;
    padding: 10px 12px !important;
}

/* Si PEWC injecte un label-content-wrapper, il ne doit contenir que l'image. */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-card-formatted .label-content-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-card-formatted .label-content-wrapper {
    display: block !important;
    width: 100%;
    text-align: center;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-card-formatted .label-content-wrapper > :not(img),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-card-formatted .label-content-wrapper > :not(img) {
    display: none !important;
}

/* products-to-add: force image-only in label-content-wrapper */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.products-to-add .label-content-wrapper > :not(img),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.products-to-add .label-content-wrapper > :not(img) {
    display: none !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-main,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-desc {
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.25 !important;
    color: var(--iwa-text, #1a1a1a) !important;
    font-weight: 600 !important;
    word-break: break-word;
}
.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-main {
    text-align: left;
}

/* Texte description déplacé hors label-content-wrapper (products-to-add) */
.iwa-addons-step-modal .iwa-addons-step-body .iwa-products-to-add-moved {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 6px;
}
.iwa-addons-step-modal .iwa-addons-step-body .iwa-products-to-add-desc {
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.25 !important;
    color: var(--iwa-text, #1a1a1a);
    font-weight: 600;
    text-align: left;
    word-break: break-word;
}
.iwa-addons-step-modal .iwa-addons-step-body .iwa-products-to-add-price,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-products-to-add-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-products-to-add-price .pewc-price {
    margin-left: auto;
    text-align: right;
    color: var(--iwa-accent, #e91e63) !important;
    font-size: var(--iwa-addon-modal-font-size) !important;
    font-weight: 700 !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-allergens {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 20px;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-allergens img,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-allergens svg {
    width: 18px !important;
    height: 18px !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-price,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-price .pewc-price,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li label,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li .pewc-price {
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-addon-card-price {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
    color: var(--iwa-accent, #e91e63) !important;
}

/* Cas checkbox/radio texte (sans image) : même taille que le prix */
.iwa-addons-step-modal .iwa-addons-step-body ul.pewc-checkbox-group-wrapper > li > label {
    align-items: center !important;
}

/* ---- Server-enriched PEWC cards (source of truth from WooCommerce) ---- */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched {
    display: grid !important;
    grid-template-columns: 128px minmax(0, 1fr) !important;
    grid-template-areas:
        "media details"
        "name details" !important;
    align-items: stretch;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched > label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched > label {
    grid-area: media !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 30px 10px 8px !important;
    border-right: 1px solid var(--iwa-border, #ddd);
    min-height: 120px;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched > label::after,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched > label::after {
    content: none !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-option-name,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-option-name {
    grid-area: name;
    display: block;
    text-align: center;
    padding: 4px 8px 10px;
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.2 !important;
    font-weight: 700;
    color: var(--iwa-modal-text, #1a1a1a);
    word-break: break-word;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .pewc-checkbox-desc-wrapper {
    grid-area: details !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 10px 12px !important;
    min-height: 120px;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .pewc-radio-image-desc > :not(.iwa-pewc-meta),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .pewc-checkbox-desc-wrapper > :not(.iwa-pewc-meta) {
    display: none !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 8px;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-main,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-main {
    flex: 1 1 auto;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-desc {
    font-size: var(--iwa-addon-modal-font-size) !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    color: var(--iwa-modal-text, #1a1a1a);
    text-align: left;
    word-break: break-word;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-footer,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 20px;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens img,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens img,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens svg,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-allergens svg {
    width: 18px !important;
    height: 18px !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .pewc-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .pewc-price {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
    color: var(--iwa-accent, #e91e63) !important;
    font-size: var(--iwa-addon-modal-font-size) !important;
    font-weight: 700 !important;
}
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .label-content-wrapper > :not(img),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .label-content-wrapper > :not(img) {
    display: none !important;
}

/* Validation obligatoire : met en évidence la section en erreur */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-item.iwa-required-missing .pewc-field-label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-item.iwa-required-missing .pewc-radio-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-item.iwa-required-missing .pewc-checkbox-image-wrapper,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-item.iwa-required-missing ul.pewc-checkbox-group-wrapper > li {
    outline: 2px solid #ef4444;
    outline-offset: 2px;
}
/* Images des addons dans la modale (si activé) */
.iwa-addons-step-modal.iwa-addons-with-images .iwa-addons-step-body .pewc-product-item img,
.iwa-addons-step-modal.iwa-addons-with-images .iwa-addons-step-body .pewc-checkbox-image-wrapper img,
.iwa-addons-step-modal.iwa-addons-with-images .iwa-addons-step-body .pewc-radio-image-wrapper img,
.iwa-addons-step-modal.iwa-addons-with-images .iwa-addons-step-body .label-content-wrapper > img {
    display: inline-block !important;
    width: 110px !important;
    height: 110px !important;
    object-fit: cover;
    border-radius: var(--iwa-radius);
    margin-right: 12px;
    vertical-align: middle;
}

/* Empêche le scroll de la page sous la modale */
body.iwa-addons-step-open { overflow: hidden; }

/* ── Récap des choix dans la page produit (après fermeture des modales) ── */
.iwa-addons-recap {
    margin: 12px 16px 8px;
    padding: 12px 16px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg-alt, rgba(127,127,127,.06));
}
.iwa-addons-recap[hidden] { display: none; }
.iwa-addons-recap-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.iwa-addons-recap-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--iwa-text);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.iwa-addons-recap-edit {
    border: none;
    background: var(--iwa-gradient);
    color: #fff;
    padding: 8px 14px;
    border-radius: var(--iwa-btn-radius, 999px);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.iwa-addons-recap-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--iwa-text);
}
.iwa-addons-recap-list li { padding: 2px 0; }
.iwa-addons-recap-list strong { font-weight: 700; }

/* En mode iframe kiosque, agrandit le récap pour rester lisible */
body.iwa-embed .iwa-addons-recap { padding: 18px 24px; }
body.iwa-embed .iwa-addons-recap-label { font-size: 22px; }
body.iwa-embed .iwa-addons-recap-list { font-size: 22px; }
body.iwa-embed .iwa-addons-recap-edit { font-size: 18px; padding: 12px 22px; }

/* PEWC textarea (Notes field) */
.iwa-product-detail .pewc-item textarea,
.iwa-product-detail .pewc-item input[type="text"] {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    font-size: var(--iwa-size-text, 15px);
    font-family: var(--iwa-font-body);
    color: var(--iwa-text);
    background: var(--iwa-bg);
    resize: vertical;
    min-height: 80px;
    outline: none;
    box-sizing: border-box;
    margin: 8px 16px 16px;
    width: calc(100% - 32px);
}

.iwa-product-detail .pewc-item textarea:focus,
.iwa-product-detail .pewc-item input[type="text"]:focus {
    border-color: var(--iwa-accent);
}

.iwa-product-detail .pewc-item textarea::placeholder,
.iwa-product-detail .pewc-item input[type="text"]::placeholder {
    color: var(--iwa-text-secondary);
    opacity: 0.6;
}

/* Addons modal: rendu simple/robuste base sur le HTML injecte en PHP */
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr) !important;
    grid-template-areas:
        "media details"
        "name details" !important;
    align-items: stretch;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched > label,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched > label {
    grid-area: media !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-height: 118px;
    padding: 26px 8px 6px !important;
    border-right: 1px solid var(--iwa-border, #ddd);
    position: relative;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched > label input[type="radio"],
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched > label input[type="checkbox"] {
    position: absolute !important;
    top: 8px;
    left: 8px;
    margin: 0 !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .label-content-wrapper > :not(img),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .label-content-wrapper > :not(img) {
    display: none !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-option-name,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-option-name {
    grid-area: name;
    display: block;
    text-align: center;
    padding: 4px 8px 10px;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700;
    color: var(--iwa-modal-text, #1a1a1a);
    word-break: break-word;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .pewc-radio-image-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .pewc-checkbox-desc-wrapper {
    grid-area: details !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    min-height: 118px;
    padding: 10px 12px !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .pewc-radio-image-desc > :not(.iwa-pewc-meta),
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .pewc-checkbox-desc-wrapper > :not(.iwa-pewc-meta) {
    display: none !important;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 8px;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-main,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-main {
    flex: 1 1 auto;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-desc,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-desc {
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 500 !important;
    color: var(--iwa-modal-text, #1a1a1a);
    margin: 0;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-footer,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-pewc-allergen-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
}

.iwa-addons-step-modal .iwa-addons-step-body .iwa-pewc-allergen-chip {
    display: inline-block;
    border: 1px solid var(--iwa-border, #ddd);
    border-radius: 999px;
    padding: 1px 6px;
    font-size: 11px;
    line-height: 1.2;
    color: var(--iwa-text-secondary, #666);
    background: #fff;
}

.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .woocommerce-Price-amount,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-radio-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .pewc-price,
.iwa-addons-step-modal .iwa-addons-step-body .pewc-checkbox-image-wrapper.iwa-pewc-enriched .iwa-pewc-meta-price .pewc-price {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
    color: var(--iwa-accent, #e91e63) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

/* Quantity selector */
.iwa-qty-selector {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    overflow: hidden;
}

.iwa-qty-btn {
    width: 40px;
    height: 40px;
    border: none;
    background: var(--iwa-bg-alt);
    font-size: 18px;
    font-weight: 600;
    color: var(--iwa-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
}

.iwa-qty-btn:hover {
    background: var(--iwa-border);
}

.iwa-qty-value {
    width: 48px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    border: none;
    background: transparent;
    color: var(--iwa-text);
}

/* â”€â”€ Sticky bottom bar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-sticky-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    padding: 12px 16px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    background: var(--iwa-bg);
    border-top: 1px solid var(--iwa-border);
    display: flex;
    gap: 12px;
    max-width: 600px;
    margin: 0 auto;
}

.iwa-btn-primary {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    background: var(--iwa-gradient);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: var(--iwa-btn-radius);
    cursor: pointer;
    text-decoration: none;
    transition: transform .15s, box-shadow .15s;
}

.iwa-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
    color: #fff;
}

.iwa-btn-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 20px;
    background: var(--iwa-bg-alt);
    color: var(--iwa-text);
    font-size: 16px;
    font-weight: 600;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
}

.iwa-btn-secondary:hover {
    background: var(--iwa-border);
}

/* â”€â”€ Stepper progress â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    background: var(--iwa-bg);
    border-bottom: 1px solid var(--iwa-border);
}

.iwa-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.iwa-step-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--iwa-border);
    background: var(--iwa-bg);
    transition: all .2s;
}

.iwa-step.active .iwa-step-dot {
    border-color: var(--iwa-accent);
    background: var(--iwa-accent);
}

.iwa-step.completed .iwa-step-dot {
    border-color: var(--iwa-accent);
    background: var(--iwa-accent);
    color: #fff;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iwa-step-line {
    flex: 1;
    height: 2px;
    background: var(--iwa-border);
    margin: 0 8px;
    margin-bottom: 20px;
}

.iwa-step-line.active {
    background: var(--iwa-gradient);
}

.iwa-step-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--iwa-text-secondary);
}

.iwa-step.active .iwa-step-label {
    color: var(--iwa-text);
}

/* â”€â”€ Cart review â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-cart-items {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.iwa-cart-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg);
}

.iwa-cart-item-img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: calc(var(--iwa-radius) * .6);
    flex-shrink: 0;
}

.iwa-cart-item-info {
    flex: 1;
    min-width: 0;
}

.iwa-cart-item-name {
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 2px;
}

.iwa-cart-item-meta {
    font-size: 12px;
    color: var(--iwa-text-secondary);
}

.iwa-cart-item-price {
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.iwa-cart-item-remove {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--iwa-bg-alt);
    border-radius: 50%;
    color: var(--iwa-text-secondary);
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s, color .2s;
}

.iwa-cart-item-remove:hover {
    background: #fee;
    color: #e00;
}

/* Tips section */
.iwa-tips {
    margin: 20px 0;
}

.iwa-tips-title {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 10px;
}

.iwa-tips-options {
    display: flex;
    gap: 8px;
}

.iwa-tip-btn {
    flex: 1;
    padding: 10px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    background: var(--iwa-bg);
    font-size: 14px;
    font-weight: 600;
    color: var(--iwa-text);
    cursor: pointer;
    text-align: center;
    transition: all .2s;
}

.iwa-tip-btn:hover,
.iwa-tip-btn.active {
    border-color: var(--iwa-accent);
    background: var(--iwa-accent);
    color: #fff;
}

/* Round-up tip proposals : displayed above fixed amounts, with a sub-label */
.iwa-tips-options--roundup {
    margin-bottom: 8px;
}
.iwa-tip-btn--roundup {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 10px 8px;
    border-style: dashed;
    border-color: var(--iwa-accent);
    background: rgba(233, 30, 144, 0.06);
    color: var(--iwa-text);
    line-height: 1.15;
}
.iwa-tip-btn--roundup .iwa-tip-btn-amount {
    font-size: 16px;
    font-weight: 700;
}
.iwa-tip-btn--roundup .iwa-tip-btn-sub {
    font-size: 11px;
    font-weight: 500;
    opacity: .8;
    text-transform: lowercase;
}
.iwa-tip-btn--roundup:hover .iwa-tip-btn-sub,
.iwa-tip-btn--roundup.active .iwa-tip-btn-sub { opacity: .95; }

/* Cart totals */
.iwa-cart-totals {
    margin: 20px 0;
    padding: 16px;
    background: var(--iwa-bg-alt);
    border-radius: var(--iwa-radius);
}

.iwa-cart-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 14px;
}

.iwa-cart-total-row.total {
    font-size: 18px;
    font-weight: 700;
    border-top: 1px solid var(--iwa-border);
    margin-top: 8px;
    padding-top: 12px;
}

/* â”€â”€ Checkout page â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Hide login/coupon toggles, shipping, additional fields, WAD coupon */
.iwa-checkout .woocommerce-form-login-toggle,
.iwa-checkout .woocommerce-form-coupon-toggle,
.iwa-checkout h3#ship-to-different-address,
.iwa-checkout .woocommerce-additional-fields,
.iwa-checkout .woocommerce-form-login,
.iwa-checkout .wad-form-coupon,
.iwa-checkout #restomax_number_table_field {
    display: none !important;
}

/* Hide WC notices (cart messages) on checkout */
.iwa-checkout .woocommerce-notices-wrapper {
    display: none !important;
}

/* Hide cookie banner and loader */
.iziii-kiosk-app #cookie-banner,
.iziii-kiosk-app #loader {
    display: none !important;
}

/* Checkout layout */
.iwa-checkout .woocommerce-checkout {
    padding: 0;
}

.iwa-checkout .col2-set {
    width: 100%;
}

.iwa-checkout .col2-set .col-1,
.iwa-checkout .col2-set .col-2 {
    float: none;
    width: 100%;
    max-width: 100%;
}

/* Force all checkout fields to full width */
.iwa-checkout .form-row,
.iwa-checkout .form-row-first,
.iwa-checkout .form-row-last,
.iwa-checkout .form-row-wide {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Billing heading */
.iwa-checkout .woocommerce-billing-fields h3 {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--iwa-text);
}

/* Labels */
.iwa-checkout .woocommerce-billing-fields label,
.iwa-checkout .woocommerce-checkout label {
    font-size: 14px;
    font-weight: 600;
    color: var(--iwa-text);
    margin-bottom: 6px;
    display: block;
}

.iwa-checkout .woocommerce-billing-fields .required,
.iwa-checkout .woocommerce-checkout .required {
    color: var(--iwa-accent);
}

/* Inputs */
.iwa-checkout .woocommerce-billing-fields input,
.iwa-checkout .woocommerce-billing-fields select,
.iwa-checkout .woocommerce-checkout input[type="text"],
.iwa-checkout .woocommerce-checkout input[type="email"],
.iwa-checkout .woocommerce-checkout input[type="tel"],
.iwa-checkout .woocommerce-checkout input[type="number"],
.iwa-checkout .woocommerce-checkout select {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    font-size: 15px;
    background: var(--iwa-bg-alt);
    color: var(--iwa-text);
    box-sizing: border-box;
}

.iwa-checkout .woocommerce-billing-fields input:focus,
.iwa-checkout .woocommerce-billing-fields select:focus,
.iwa-checkout .woocommerce-checkout input:focus,
.iwa-checkout .woocommerce-checkout select:focus {
    outline: none;
    border-color: var(--iwa-accent);
    box-shadow: 0 0 0 3px rgba(233,30,144,.1);
}

/* â”€â”€ Order Review â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-checkout h3#order_review_heading {
    font-size: 18px;
    font-weight: 700;
    margin: 28px 0 12px;
    color: var(--iwa-text);
}

.iwa-checkout #ckeckout-right-col {
    width: 100%;
    float: none;
}

.iwa-checkout .woocommerce-checkout-review-order-table {
    font-size: 14px;
    width: 100%;
}

.iwa-checkout .woocommerce-checkout-review-order-table th,
.iwa-checkout .woocommerce-checkout-review-order-table td {
    padding: 8px 0;
    border-bottom: 1px solid var(--iwa-border);
}

.iwa-checkout .woocommerce-checkout-review-order-table .order-total th,
.iwa-checkout .woocommerce-checkout-review-order-table .order-total td {
    font-size: 16px;
    font-weight: 700;
    border-bottom: none;
    padding-top: 12px;
}

/* â”€â”€ Payment Methods â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-checkout #payment {
    background: transparent;
    padding: 0;
}

.iwa-checkout .wc_payment_methods {
    padding: 0;
    list-style: none;
    margin: 0 0 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.iwa-checkout .wc_payment_method {
    padding: 0;
    border: 2px solid var(--iwa-border);
    border-radius: var(--iwa-radius);
    background: var(--iwa-bg);
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s;
    overflow: hidden;
}

.iwa-checkout .wc_payment_method:has(input:checked) {
    border-color: var(--iwa-accent);
    box-shadow: 0 0 0 3px rgba(233,30,144,.10);
}

/* Hide the default radio circle */
.iwa-checkout .wc_payment_method input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

/* Payment label = card content */
.iwa-checkout .wc_payment_method label {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--iwa-text);
    line-height: 1.3;
    margin: 0;
}

/* Payment icon */
.iwa-checkout .wc_payment_method label::before {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background-color: var(--iwa-bg-alt);
    background-size: 24px;
    background-repeat: no-repeat;
    background-position: center;
    opacity: .65;
    transition: opacity .2s;
}

.iwa-checkout .wc_payment_method:has(input:checked) label::before {
    opacity: 1;
    background-color: rgba(233,30,144,.08);
}

/* Default icon (credit card) */
.iwa-checkout .wc_payment_method label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E");
}

/* Wallet icon */
.iwa-checkout .wc_payment_method[class*="wallet"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e91e90' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4z'/%3E%3C/svg%3E");
}

/* COD / Cash icon */
.iwa-checkout .wc_payment_method[class*="cod"] label::before,
.iwa-checkout .wc_payment_method[class*="cash"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cline x1='6' y1='12' x2='6.01' y2='12'/%3E%3Cline x1='18' y1='12' x2='18.01' y2='12'/%3E%3C/svg%3E");
}

/* MultiSafePay */
.iwa-checkout .wc_payment_method[class*="multisafepay"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E");
}

/* CCV */
.iwa-checkout .wc_payment_method[class*="ccv"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3Cpath d='M6 14h.01M10 14h4'/%3E%3C/svg%3E");
}

/* Ingenico / Ogone */
.iwa-checkout .wc_payment_method[class*="ingenico"] label::before,
.iwa-checkout .wc_payment_method[class*="ogone"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3Ccircle cx='16' cy='15' r='1'/%3E%3C/svg%3E");
}

/* Stripe / Apple Pay */
.iwa-checkout .wc_payment_method[class*="stripe"] label::before,
.iwa-checkout .wc_payment_method[class*="apple"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

/* BACS / bank transfer */
.iwa-checkout .wc_payment_method[class*="bacs"] label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4z'/%3E%3C/svg%3E");
}

/* Payment description box */
.iwa-checkout .wc_payment_method .payment_box {
    display: none;
    padding: 0 16px 14px 72px;
    font-size: 12px;
    color: var(--iwa-text-secondary);
    line-height: 1.4;
}

.iwa-checkout .wc_payment_method:has(input:checked) .payment_box {
    display: block;
}

/* â”€â”€ Place Order Button â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-checkout .form-row.place-order {
    padding: 0;
    margin: 0;
}

.iwa-checkout #place_order {
    width: 100%;
    padding: 16px 24px;
    background: var(--iwa-gradient);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    border: none;
    border-radius: var(--iwa-btn-radius);
    cursor: pointer;
    margin-top: 16px;
    letter-spacing: .3px;
}

.iwa-checkout #place_order:active {
    opacity: .9;
    transform: scale(.98);
}

/* Terms / privacy */
.iwa-checkout .woocommerce-terms-and-conditions-wrapper {
    font-size: 12px;
    color: var(--iwa-text-secondary);
    margin-top: 12px;
}

.iwa-checkout .woocommerce-terms-and-conditions-wrapper a {
    color: var(--iwa-accent);
}

/* â”€â”€ Order confirmed â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-page-confirmed {
    padding-top: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 56px);
    background: var(--iwa-bg, #fff);
}

/* Keep the whole confirmation page (including the area below the last button)
   on the design background color. */
body.woocommerce-order-received,
body.woocommerce-order-received #page,
body.woocommerce-order-received #content,
body.woocommerce-order-received .site,
body.woocommerce-order-received .site-content {
    background: var(--iwa-bg, #fff) !important;
}

/* Some themes still paint a final bottom strip from root/footer layers.
   Force them to the same page background on confirmation. */
html,
body.woocommerce-order-received,
body.woocommerce-order-received #outer-wrap,
body.woocommerce-order-received #wrap,
body.woocommerce-order-received #main,
body.woocommerce-order-received #content-wrap,
body.woocommerce-order-received #primary {
    background: var(--iwa-bg, #fff) !important;
}

body.woocommerce-order-received #footer,
body.woocommerce-order-received #footer-widgets,
body.woocommerce-order-received #footer-bottom {
    display: none !important;
}

/* Hero image band */
.iwa-confirmed-hero {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 28vh;
    overflow: visible;
}

.iwa-confirmed-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    overflow: hidden;
}

/* Green check â€” overlapping bottom of hero */
.iwa-confirmed-hero .iwa-confirmed-check {
    position: absolute;
    bottom: -28px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    background: #fff;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(0,0,0,.10);
}

.iwa-confirmed-hero .iwa-confirmed-check svg {
    width: 56px;
    height: 56px;
}

/* Check only (no image) */
.iwa-confirmed-check-only {
    text-align: center;
    padding: 48px 0 0;
}

.iwa-confirmed-check-only svg {
    width: 64px;
    height: 64px;
}

/* Content */
.iwa-confirmed-content {
    position: relative;
    z-index: 1;
    flex: 1;
    text-align: center;
    padding: 40px 24px 24px;
    background: var(--iwa-bg);
}

.iwa-confirmed-hero + .iwa-confirmed-content {
    padding-top: 44px; /* extra room for overlapping check */
}

.iwa-confirmed-title {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 20px;
    color: var(--iwa-text);
}

.iwa-confirmed-subtitle {
    font-size: 15px;
    color: var(--iwa-text-secondary);
    margin: 0 0 28px;
    line-height: 1.5;
}

/* Action buttons (View Order, Call) */
.iwa-confirmed-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 320px;
    margin: 0 auto 12px;
    padding: 14px 20px;
    background: var(--iwa-bg);
    border: 1.5px solid var(--iwa-border);
    border-radius: var(--iwa-btn-radius);
    color: var(--iwa-text);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s;
}

.iwa-confirmed-btn:hover,
.iwa-confirmed-btn:active {
    background: var(--iwa-bg-alt);
}

.iwa-confirmed-btn svg {
    flex-shrink: 0;
    color: var(--iwa-text-secondary);
}

/* Footer text */
.iwa-confirmed-footer-text {
    font-size: 13px;
    color: var(--iwa-text-secondary);
    margin: 16px auto 0;
    max-width: 280px;
    line-height: 1.5;
    text-align: center;
}

/* Bottom sticky button */
.iwa-confirmed-bottom {
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    text-align: center;
    background: var(--iwa-bg, #fff);
}

/* â”€â”€ View Order page â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-page-view-order {
    padding-top: 0 !important;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 56px);
}

.iwa-page-view-order .iwa-container {
    flex: 1;
    padding: 16px;
}

.iwa-vo-card {
    background: var(--iwa-bg);
    border-bottom: 1px solid var(--iwa-border);
    padding: 20px 0;
}

.iwa-vo-card:first-child {
    padding-top: 12px;
}

.iwa-vo-section-title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 14px;
    color: var(--iwa-text);
}

.iwa-vo-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 4px 0;
    font-size: 14px;
    color: var(--iwa-text-secondary);
    gap: 12px;
}

.iwa-vo-row span:last-child {
    text-align: right;
    white-space: nowrap;
}

.iwa-vo-row-bold {
    font-weight: 700;
    color: var(--iwa-text);
    margin-top: 4px;
}

.iwa-vo-row-sub {
    padding-left: 16px;
    font-size: 13px;
    color: var(--iwa-text-secondary);
    opacity: .8;
}

.iwa-vo-separator {
    height: 1px;
    background: var(--iwa-border);
    margin: 14px 0;
}

.iwa-vo-customer-name {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--iwa-text);
}

.iwa-vo-customer-info {
    font-size: 14px;
    color: var(--iwa-text-secondary);
    margin: 2px 0;
}

.iwa-vo-receipt-note {
    font-size: 13px;
    color: var(--iwa-text-secondary);
    text-align: center;
    margin: 24px 0 16px;
    line-height: 1.5;
}

.iwa-vo-save-btn {
    margin: 0 auto 16px !important;
}

/* QR Code block */
.iwa-vo-qr {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 0;
    border-bottom: 1px solid var(--iwa-border);
}

.iwa-vo-qr-code {
    width: 72px;
    height: 72px;
    padding: 6px;
    border-radius: 10px;
    border: 2px solid;
}

.iwa-vo-qr--paid .iwa-vo-qr-code {
    border-color: #22c55e;
    background: #f0fdf4;
}

/* ===================================================================
   Order Tracking Page
   =================================================================== */

.iwa-page-tracking {
    padding: 24px 16px;
    min-height: calc(100vh - 56px);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.iwa-page-tracking .iwa-container {
    width: 100%;
    max-width: 480px;
}

/* Order info */
.iwa-track-info {
    text-align: center;
    margin-bottom: 40px;
}

.iwa-track-order-num {
    font-size: 15px;
    font-weight: 600;
    color: var(--iwa-text);
    margin: 0 0 4px;
}

.iwa-track-establishment {
    font-size: 13px;
    color: var(--iwa-text-light);
    margin: 0;
}

/* Progress tracker */
.iwa-track-progress {
    padding: 0 8px;
    margin-bottom: 40px;
}

.iwa-track-steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.iwa-track-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    width: 72px;
}

.iwa-track-dot {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--iwa-bg-card, #f3f4f6);
    color: #9ca3af;
    border: 2px solid #e5e7eb;
    transition: all .4s ease;
    position: relative;
    z-index: 1;
}

.iwa-track-step.active .iwa-track-dot {
    background: var(--iwa-accent, #22c55e);
    color: #fff;
    border-color: var(--iwa-accent, #22c55e);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, .15);
}

.iwa-track-step.current .iwa-track-dot {
    animation: iwa-pulse-dot 2s ease-in-out infinite;
}

@keyframes iwa-pulse-dot {
    0%, 100% { box-shadow: 0 0 0 4px rgba(34, 197, 94, .15); }
    50% { box-shadow: 0 0 0 8px rgba(34, 197, 94, .25); }
}

.iwa-track-label {
    font-size: 11px;
    font-weight: 500;
    color: #9ca3af;
    text-align: center;
    line-height: 1.2;
    transition: color .4s ease;
}

.iwa-track-step.active .iwa-track-label {
    color: var(--iwa-text);
    font-weight: 600;
}

/* Connector lines */
.iwa-track-line {
    flex: 1;
    height: 3px;
    background: #e5e7eb;
    border-radius: 2px;
    margin-top: 20px; /* center on dot (40px / 2) */
    position: relative;
    min-width: 24px;
}

.iwa-track-line-fill {
    height: 100%;
    width: 0%;
    background: var(--iwa-accent, #22c55e);
    border-radius: 2px;
    transition: width .6s ease;
}

/* Status message */
.iwa-track-message {
    text-align: center;
    margin-bottom: 40px;
    padding: 20px 16px;
    background: var(--iwa-bg-card, #fff);
    border-radius: 12px;
    border: 1px solid var(--iwa-border, #e5e7eb);
}

.iwa-track-message-icon {
    font-size: 36px;
    margin-bottom: 8px;
    line-height: 1;
}

.iwa-track-message-text {
    font-size: 15px;
    color: var(--iwa-text);
    margin: 0;
    font-weight: 500;
}

/* Buttons */
.iwa-track-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.iwa-spinning svg {
    animation: iwa-spin .8s linear infinite;
}
@keyframes iwa-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.iwa-vo-qr--unpaid .iwa-vo-qr-code {
    border-color: #ef4444;
    background: #fef2f2;
}

.iwa-vo-qr-code svg,
.iwa-vo-qr-code .qr-svg {
    width: 100%;
    height: 100%;
    display: block;
}

.iwa-vo-qr-status {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    margin-top: 12px;
}

.iwa-vo-qr--paid .iwa-vo-qr-status {
    color: #22c55e;
}

.iwa-vo-qr--unpaid .iwa-vo-qr-status {
    color: #ef4444;
}

.iwa-vo-qr-number {
    font-size: 13px;
    color: var(--iwa-text-secondary);
    margin-top: 4px;
}

/* â”€â”€ Toast â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-toast {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--iwa-text);
    color: var(--iwa-bg);
    padding: 10px 20px;
    border-radius: var(--iwa-btn-radius);
    font-size: 14px;
    font-weight: 500;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: all .3s ease;
    white-space: nowrap;
}

.iwa-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* â”€â”€ Unavailable items modal â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-modal-unavailable {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.iwa-modal-unavailable-overlay {
    position: absolute;
    inset: 0;
    background: var(--iwa-modal-overlay, rgba(0, 0, 0, .55));
}

.iwa-modal-unavailable-box {
    position: relative;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: var(--iwa-radius, 16px);
    padding: 28px 24px;
    max-width: 340px;
    width: 100%;
    text-align: center;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .2);
    animation: iwa-modal-pop .25s ease;
}

@keyframes iwa-modal-pop {
    from { transform: scale(.9); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.iwa-modal-unavailable-title {
    font-size: 18px;
    font-weight: 700;
    color: #ef4444;
    margin: 0 0 16px;
}

.iwa-modal-unavailable-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.iwa-modal-unavailable-list li {
    font-size: 15px;
    font-weight: 600;
    color: var(--iwa-modal-text, var(--iwa-text, #1a1a1a));
    padding: 6px 0;
    border-bottom: 1px solid var(--iwa-modal-border, #f0f0f0);
}

.iwa-modal-unavailable-list li:last-child {
    border-bottom: none;
}

.iwa-modal-unavailable-msg {
    font-size: 14px;
    color: var(--iwa-text-secondary, #666);
    margin: 0 0 20px;
    line-height: 1.5;
}

.iwa-modal-unavailable-close {
    width: 100%;
}

/* â”€â”€ Confirm modal (dashboard) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-confirm-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.iwa-confirm-modal[hidden] { display: none; }
.iwa-confirm-modal-overlay {
    position: absolute;
    inset: 0;
    background: var(--iwa-modal-overlay, rgba(0, 0, 0, .55));
}
.iwa-confirm-modal-box {
    position: relative;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: var(--iwa-radius, 16px);
    padding: 32px 24px 24px;
    max-width: 340px;
    width: 100%;
    text-align: center;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .2);
    animation: iwa-modal-pop .25s ease;
}
.iwa-confirm-modal-msg {
    font-size: 17px;
    font-weight: 600;
    color: var(--iwa-modal-text, var(--iwa-text, #1a1a1a));
    margin: 0 0 24px;
    line-height: 1.4;
}
.iwa-confirm-modal-actions {
    display: flex;
    gap: 12px;
}
.iwa-confirm-modal-actions .iwa-btn-secondary,
.iwa-confirm-modal-actions .iwa-btn-danger {
    flex: 1;
}

/* â”€â”€ Group help button â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-landing-cta-row {
    display: flex;
    align-items: stretch;
    gap: 10px;
    width: 100%;
}
.iwa-landing-cta-row .iwa-landing-cta {
    flex: 1;
    min-width: 0;
}
.iwa-group-help-btn {
    width: 48px;
    min-width: 48px;
    border: 2px solid var(--iwa-accent, #e74c3c);
    background: transparent;
    color: var(--iwa-accent, #e74c3c);
    border-radius: 14px;
    font-size: 22px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, color .2s;
}
.iwa-group-help-btn:hover,
.iwa-group-help-btn:focus-visible {
    background: var(--iwa-accent, #e74c3c);
    color: #fff;
}

/* â”€â”€ Group help modal â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
#iwa-group-help-modal {
    align-items: flex-start;
    padding: 100px 16px 24px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.iwa-group-help-box {
    max-width: 400px;
    text-align: left;
    flex-shrink: 0;
}
.iwa-group-help-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--iwa-text, #1a1a1a);
    margin: 0 0 4px;
    text-align: center;
    line-height: 1.3;
}
.iwa-group-help-subtitle {
    font-size: 15px;
    font-weight: 600;
    color: #888;
    margin: 0 0 12px;
    text-align: center;
}
.iwa-group-help-principle {
    font-size: 14px;
    color: #555;
    line-height: 1.5;
    margin: 0 0 0;
    text-align: center;
}
.iwa-group-help-sep {
    border: none;
    border-top: 1px solid #f0f0f0;
    margin: 16px 0;
}
.iwa-group-help-steps {
    list-style: none;
    counter-reset: help-step;
    padding: 0;
    margin: 0 0 24px;
}
.iwa-group-help-steps li {
    counter-increment: help-step;
    display: flex;
    flex-direction: column;
    padding: 10px 0 10px 40px;
    position: relative;
    border-bottom: 1px solid #f0f0f0;
}
.iwa-group-help-steps li:last-child {
    border-bottom: none;
}
.iwa-group-help-steps li::before {
    content: counter(help-step);
    position: absolute;
    left: 0;
    top: 10px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--iwa-accent, #e74c3c);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.iwa-group-help-steps li strong {
    font-size: 15px;
    font-weight: 600;
    color: var(--iwa-text, #1a1a1a);
    margin-bottom: 2px;
}
.iwa-group-help-steps li span {
    font-size: 13px;
    color: #666;
    line-height: 1.4;
}
.iwa-group-help-box .iwa-confirm-modal-actions {
    justify-content: center;
}
.iwa-group-help-box .iwa-btn-primary {
    min-width: 140px;
}

/* â”€â”€ Added-to-cart modal â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
#iwa-added-modal {
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

#iwa-added-modal .iwa-modal-overlay {
    display: none;
}

#iwa-added-modal .iwa-added-modal-content {
    position: relative;
    z-index: 1;
    background: var(--iwa-bg);
    border-radius: var(--iwa-radius);
    padding: 40px 32px;
    text-align: center;
    max-width: 280px;
    width: 85%;
    margin: 0;
    flex: none;
    display: block;
    overflow: visible;
    pointer-events: auto;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .15);
    animation: iwa-modal-pop .3s ease;
    margin-top: 0;
}

@keyframes iwa-modal-pop {
    from { transform: scale(.85); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.iwa-added-icon {
    margin-bottom: 16px;
}

.iwa-added-icon svg {
    width: 64px;
    height: 64px;
}

.iwa-added-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.iwa-added-text strong {
    font-size: 18px;
    font-weight: 700;
    color: var(--iwa-text);
}

.iwa-added-text span {
    font-size: 15px;
    color: var(--iwa-text-secondary);
}

/* â”€â”€ Search modal â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    flex-direction: column;
}

.iwa-modal[hidden] {
    display: none;
}

.iwa-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
}

.iwa-modal-content {
    position: relative;
    z-index: 1;
    background: var(--iwa-bg);
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-top: 56px;
    border-radius: var(--iwa-radius) var(--iwa-radius) 0 0;
    overflow: hidden;
}

.iwa-search-bar {
    display: flex;
    padding: 12px 16px;
    gap: 8px;
    border-bottom: 1px solid var(--iwa-border);
}

.iwa-search-bar input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 16px;
    background: transparent;
    color: var(--iwa-text);
}

.iwa-search-close {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--iwa-bg-alt);
    border-radius: 50%;
    font-size: 20px;
    color: var(--iwa-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iwa-search-results {
    flex: 1;
    overflow-y: auto;
    padding: 12px 16px;
}

/* â”€â”€ Empty state â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-empty {
    text-align: center;
    padding: 60px 24px;
    color: var(--iwa-text-secondary);
}

.iwa-empty-icon {
    font-size: 48px;
    margin-bottom: 16px;
    opacity: .5;
}

.iwa-empty-text {
    font-size: 16px;
}

/* ── Slide-in-right page animation ─────────────────────────────── */
@keyframes iwa-slide-in-right {
    from { transform: translateX(100%); opacity: 0.85; }
    to   { transform: translateX(0);    opacity: 1; }
}

html:has(body.iwa-anim-slide),
body.iwa-anim-slide {
    /* clip plutôt que hidden : évite de créer un contexte de défilement
       qui casserait `position: sticky` (header + barre catégories). */
    overflow-x: clip;
}

/* On anime les enfants directs du body (pas le body lui-même : peu fiable
   car body est le conteneur de défilement racine). Tous les enfants démarrent
   à la même position décalée et glissent ensemble — visuellement c'est une
   seule page qui entre depuis la droite. */
body.iwa-anim-slide > header,
body.iwa-anim-slide > .iwa-page,
body.iwa-anim-slide > .iwa-landing,
body.iwa-anim-slide > .iwa-sticky-bar,
body.iwa-anim-slide > .iwa-cat-bar-wrap,
body.iwa-anim-slide > .iwa-subcat-panel,
body.iwa-anim-slide > .iwa-bottom-nav {
    animation: iwa-slide-in-right .33s ease-out both;
    will-change: transform, opacity;
}

/* Modal / dialog slide-in override when animation enabled */
body.iwa-anim-slide .iwa-modal-unavailable-box,
body.iwa-anim-slide .iwa-confirm-modal-box,
body.iwa-anim-slide #iwa-added-modal .iwa-added-modal-content,
body.iwa-anim-slide .iwa-group-share-modal-box {
    animation: iwa-slide-in-right .33s ease-out;
}

/* â”€â”€ Fly-to-cart animation â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-fly-clone {
    box-shadow: 0 8px 32px rgba(0, 0, 0, .25);
    will-change: transform, opacity, border-radius;
}

@keyframes iwa-cart-bump {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.35); }
    70%  { transform: scale(.9); }
    100% { transform: scale(1); }
}

.iwa-cart-bump {
    animation: iwa-cart-bump .35s ease;
}

/* â”€â”€ Utility â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* â”€â”€ Responsive tweaks (tablet+) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (min-width: 600px) {
    .iwa-categories {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .iwa-products {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .iwa-product-hero {
        max-height: 400px;
    }
}

/* â”€â”€ Group Dashboard â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.iwa-page-dashboard {
    padding: 16px;
    padding-bottom: 120px;
}

.iwa-dash-status {
    text-align: center;
    margin-bottom: 12px;
}

.iwa-dash-status-badge {
    display: inline-block;
    padding: 4px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.iwa-dash-status-open {
    background: #dcfce7;
    color: #166534;
}

.iwa-dash-status-completed {
    background: #f3f4f6;
    color: #6b7280;
}

.iwa-dash-table {
    text-align: center;
    font-size: 14px;
    color: var(--iwa-text-secondary);
    margin-bottom: 20px;
}

.iwa-dash-section {
    margin-bottom: 24px;
}

.iwa-dash-section-title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--iwa-border, #e5e7eb);
}

/* Members list */
.iwa-dash-member {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    background: var(--iwa-bg-alt, #f9fafb);
    border-radius: var(--iwa-radius, 10px);
    margin-bottom: 8px;
}

.iwa-dash-member-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.iwa-dash-member-name {
    font-weight: 600;
    font-size: 15px;
}

.iwa-dash-member-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.iwa-dash-tag {
    display: inline-block;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
}

.iwa-dash-tag-me {
    background: #e0e7ff;
    color: #3730a3;
}

.iwa-dash-tag-owner {
    background: #fef3c7;
    color: #92400e;
}

.iwa-dash-tag-paid {
    background: #dcfce7;
    color: #166534;
}

.iwa-dash-member-order {
    font-size: 12px;
    color: var(--iwa-text-secondary);
    white-space: nowrap;
}

.iwa-dash-member-no-order {
    color: #9ca3af;
    font-style: italic;
}

/* Rounds */
.iwa-dash-round {
    padding: 12px;
    background: var(--iwa-bg-alt, #f9fafb);
    border-radius: var(--iwa-radius, 10px);
    margin-bottom: 8px;
    border-left: 4px solid var(--iwa-border, #e5e7eb);
}

.iwa-dash-round-sent {
    border-left-color: var(--iwa-success, #22c55e);
}

.iwa-dash-round-pending {
    border-left-color: var(--iwa-accent, #e91e90);
}

.iwa-dash-round-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.iwa-dash-round-label {
    font-weight: 700;
    font-size: 14px;
}

.iwa-dash-round-status {
    font-size: 12px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 10px;
}

.iwa-dash-round-sent .iwa-dash-round-status {
    background: #dcfce7;
    color: #166534;
}

.iwa-dash-round-pending .iwa-dash-round-status {
    background: #fef3c7;
    color: #92400e;
}

.iwa-dash-round-details {
    font-size: 13px;
    color: var(--iwa-text-secondary);
}

/* Owner actions */
.iwa-dash-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

.iwa-btn-secondary {
    display: block;
    width: 100%;
    padding: 14px;
    border: 2px solid var(--iwa-accent, #e91e90);
    background: transparent;
    color: var(--iwa-accent, #e91e90);
    border-radius: var(--iwa-btn-radius, 25px);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    transition: background .2s, color .2s;
}

.iwa-btn-secondary:hover {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
}

.iwa-btn-danger {
    display: block;
    width: 100%;
    padding: 14px;
    border: 2px solid #ef4444;
    background: transparent;
    color: #ef4444;
    border-radius: var(--iwa-btn-radius, 25px);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    transition: background .2s, color .2s;
}

.iwa-btn-danger:hover {
    background: #ef4444;
    color: #fff;
}

.iwa-dash-order-btn {
    margin-top: 8px;
}

/* Round choice on landing (returning group member) */
.iwa-group-dashboard-link {
    display: block;
    text-align: center;
    margin-top: 20px;
    color: var(--iwa-accent, #e91e90);
    font-weight: 600;
    font-size: 14px;
    text-decoration: underline;
}

/* â”€â”€ Filter bottom-sheet â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.iwa-filter-trigger {
    position: relative;
}

.iwa-filter-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    pointer-events: none;
}

.iwa-filter-sheet {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.iwa-filter-sheet[hidden] {
    display: none;
}

.iwa-filter-sheet-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .4);
    opacity: 0;
    transition: opacity .3s ease;
}

.iwa-filter-sheet.open .iwa-filter-sheet-overlay {
    opacity: 1;
}

.iwa-filter-sheet-panel {
    position: relative;
    background: var(--iwa-bg, #fff);
    border-radius: var(--iwa-radius, 16px) var(--iwa-radius, 16px) 0 0;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    transition: transform .3s ease;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, .12);
}

.iwa-filter-sheet.open .iwa-filter-sheet-panel {
    transform: translateY(0);
}

.iwa-filter-sheet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px 12px;
    border-bottom: 1px solid var(--iwa-border, #eee);
}

.iwa-filter-sheet-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--iwa-text, #1a1a1a);
}

.iwa-filter-sheet-close {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--iwa-bg-alt, #f5f5f5);
    border-radius: 50%;
    font-size: 22px;
    color: var(--iwa-text, #1a1a1a);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iwa-filter-sheet-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
}

.iwa-filter-section {
    margin-bottom: 20px;
}

.iwa-filter-section-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--iwa-text, #1a1a1a);
    margin: 0 0 4px;
}

.iwa-filter-section-desc {
    font-size: 12px;
    color: var(--iwa-text-secondary, #888);
    margin: 0 0 10px;
}

.iwa-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.iwa-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    border: 1.5px solid var(--iwa-border, #ddd);
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #1a1a1a);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all .2s ease;
    -webkit-tap-highlight-color: transparent;
}

.iwa-filter-pill-icon {
    display: flex;
    align-items: center;
}

.iwa-filter-pill-icon img,
.iwa-filter-pill-icon svg {
    width: 20px;
    height: 20px;
}

/* Dietary pills â€” green when active */
.iwa-filter-pill--dietary.active {
    background: #dcfce7;
    border-color: #22c55e;
    color: #166534;
}

/* Allergen pills â€” red when active */
.iwa-filter-pill--allergen.active {
    background: #fee2e2;
    border-color: #ef4444;
    color: #991b1b;
}

.iwa-filter-sheet-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-top: 1px solid var(--iwa-border, #eee);
    gap: 12px;
}

.iwa-filter-clear {
    background: none;
    border: none;
    color: var(--iwa-text-secondary, #888);
    font-size: 14px;
    cursor: pointer;
    padding: 8px 4px;
    text-decoration: underline;
}

.iwa-filter-apply {
    flex: 1;
    max-width: 200px;
    padding: 12px 24px;
    border: none;
    border-radius: var(--iwa-radius, 12px);
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
}

/* =============================================
   VISU 2 â€” Styles
   ============================================= */

/* Force all gradient buttons to use the single accent colour */
.iwa-visu2 {
    --iwa-gradient: var(--iwa-accent);
}

.iwa-visu2 .iwa-page--has-bottomnav {
    padding-bottom: 80px;
}

/* ---- Category Bar ---- */
/* Sticky nav wrapper: catbar + subcategories stay visible */
.iwa-sticky-nav {
    position: sticky;
    top: 56px;
    z-index: 90;
    background: var(--iwa-bg, #fff);
}
.iwa-catbar {
    z-index: 90;
    background: var(--iwa-bg, #fff);
    border-bottom: 1px solid rgba(0,0,0,.08);
    overflow: hidden;
}
.iwa-catbar-scroll {
    display: flex;
    gap: 6px;
    padding: 10px 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.iwa-catbar-scroll::-webkit-scrollbar {
    display: none;
}
/* V1 â€” image top, name bottom */
.iwa-catbar--v1 .iwa-catbar-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 64px;
    padding: 6px 8px;
    border-radius: 12px;
    text-decoration: none;
    color: var(--iwa-text, #333);
    font-size: 11px;
    font-weight: 500;
    text-align: center;
    transition: background .2s, color .2s;
    flex-shrink: 0;
}
.iwa-catbar--v1 .iwa-catbar-item.active {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
}
.iwa-catbar--v1 .iwa-catbar-img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}
/* V2 â€” image left, name right (pill/chip) */
.iwa-catbar--v2 .iwa-catbar-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 6px 14px 6px 6px;
    border-radius: 50px;
    border: 1.5px solid rgba(0,0,0,.12);
    text-decoration: none;
    color: var(--iwa-text, #333);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    transition: background .2s, color .2s, border-color .2s;
    flex-shrink: 0;
}
.iwa-catbar--v2 .iwa-catbar-item.active {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border-color: var(--iwa-accent, #e91e90);
}
.iwa-catbar--v2 .iwa-catbar-img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}

/* Category count badge in catbar */
.iwa-catbar-count {
    font-size: 9px;
    font-weight: 700;
    opacity: .6;
    white-space: nowrap;
}
.iwa-catbar--v1 .iwa-catbar-count {
    display: block;
    line-height: 1;
}
.iwa-catbar--v2 .iwa-catbar-count {
    margin-left: 2px;
}
.iwa-catbar-item.active .iwa-catbar-count {
    opacity: .85;
}


/* Active category description (below catbar) */
.iwa-catbar-desc {
    padding: 4px 16px 6px;
    border-bottom: 1px solid rgba(0,0,0,.08);
}
.iwa-catbar-desc p {
    margin: 0;
    font-size: 13px;
    font-style: italic;
    color: #888;
    line-height: 1.3;
}

/* ---- Product Cards â€” V1 (Horizontal) ---- */
.iwa-products--v1,
.iwa-products--v2 {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 0;
}
.iwa-product-card--v1 {
    display: flex;
    flex-direction: column;
    background: var(--iwa-card-bg, #fff);
    border-radius: var(--iwa-radius, 12px);
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
}
.iwa-visu2 .iwa-container {
    padding: 5px;
}
.iwa-product-card-main {
    display: flex;
    gap: 5px;
    padding: 5px 0 5px 5px;
    min-height: 0;
}
.iwa-product-card--v1 .iwa-product-img-col {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 120px;
}
.iwa-product-card--v1 .iwa-product-img-link {
    flex-shrink: 0;
    display: block;
    line-height: 0;
}
.iwa-product-card--v1 .iwa-product-img {
    width: 120px;
    height: 120px;
    border-radius: 10px;
    object-fit: cover;
}
.iwa-product-allergens-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 3px;
    padding: 0 5px 5px;
    overflow: hidden;
}
.iwa-product-allergens-row > *:nth-child(n+9) {
    display: none;
}
.iwa-product-card--v1 .iwa-product-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-width: 0;
    padding: 0;
}
.iwa-product-card--v1 .iwa-product-name {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
    line-height: 1.2;
}
.iwa-product-card--v1 .iwa-product-name a {
    color: inherit;
    text-decoration: none;
}
.iwa-product-card--v1 .iwa-product-desc {
    font-size: 12px;
    color: #777;
    margin: 2px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-decoration: none;
}
.iwa-product-card--v1 .iwa-product-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    gap: 4px;
}
.iwa-product-card--v1 .iwa-inline-cart {
    margin-left: -5px;
}
.iwa-product-card--v1 .iwa-product-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--iwa-accent, #e91e90);
}

/* V1 â€” Vertical ORDER button (right strip, bottom-to-top) */
.iwa-v1-order-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    writing-mode: vertical-lr;
    text-orientation: mixed;
    transform: rotate(180deg);
    padding: 12px 6px;
    border: none;
    border-radius: 10px 0 0 10px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 4px;
    cursor: pointer;
    text-decoration: none;
    min-width: 36px;
    flex-shrink: 0;
    transition: opacity .2s;
    -webkit-tap-highlight-color: transparent;
}
.iwa-v1-order-btn:hover {
    opacity: .85;
}
.iwa-v1-order-btn--link {
    background: var(--iwa-card-bg, #f5f5f5);
    color: var(--iwa-text, #333);
    border-left: 1.5px solid rgba(0,0,0,.08);
}

/* ---- Product Cards â€” V2 (Compact) ---- */
.iwa-product-card--v2 {
    display: flex;
    gap: 10px;
    background: var(--iwa-card-bg, #fff);
    border-radius: var(--iwa-radius, 12px);
    padding: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    text-decoration: none;
    color: inherit;
}
.iwa-product-card--v2 .iwa-product-img-link {
    flex-shrink: 0;
}
.iwa-product-card--v2 .iwa-product-img {
    width: 80px;
    height: 80px;
    border-radius: 10px;
    object-fit: cover;
}
.iwa-product-card--v2 .iwa-product-info {
    flex: 1;
    min-width: 0;
}
.iwa-product-card--v2 .iwa-product-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}
.iwa-product-card--v2 .iwa-product-price {
    font-size: var(--iwa-size-price, 16px);
    font-weight: 700;
    color: var(--iwa-accent, #e91e90);
}
.iwa-product-card--v2 .iwa-product-desc {
    font-size: calc(var(--iwa-size-text, 15px) - 2px);
    color: var(--iwa-product-desc, #666);
    margin: 4px 0 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.iwa-inline-order-btn--v2 {
    display: block;
    width: 100%;
}

/* ---- VISU 1 + V2 : carte verticale 310px (image 310x180 pleine largeur,
       info au milieu, bouton ORDER pleine largeur en bas) ---- */
.iwa-products--grid3.iwa-products--v2 {
    padding-top: 0;
    padding-bottom: 0;
}
.iwa-products--grid3 .iwa-product-card--v2 {
    display: flex;
    flex-direction: column;
    width: 310px;
    padding: 0;
    gap: 0;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-img-link {
    flex-shrink: 0;
    display: block;
    width: 100%;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-img {
    width: 310px;
    height: 180px;
    border-radius: 0;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-info {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 10px 12px 12px;
    min-width: 0;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-name {
    margin: 0 0 6px;
    font-size: var(--iwa-size-text, 15px);
    font-weight: 700;
    text-align: left;
    line-height: 1.25;
    color: var(--iwa-product-name, #1f2329);
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin: 0 0 6px;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-price {
    text-align: left;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-product-desc {
    flex: 1 1 auto;
    margin: 6px 0 10px;
}
.iwa-products--grid3 .iwa-product-card--v2 .iwa-inline-order-btn--v2,
.iwa-products--grid3 .iwa-product-card--v2 .iwa-inline-order-link {
    display: block;
    width: auto;
    margin: auto -12px -12px;
    padding: 14px 12px;
    text-align: center;
    box-sizing: border-box;
    border-radius: 0;
}

/* Sous 1080px : carte = 100% de la cellule */
@media (max-width: 1079px) {
    .iwa-products--grid3 .iwa-product-card--v2,
    .iwa-products--grid3 .iwa-product-card--v2 .iwa-product-img {
        width: 100%;
    }
    .iwa-products--grid3 .iwa-product-card--v2 .iwa-product-img {
        height: auto;
        aspect-ratio: 310 / 180;
    }
}

/* ---- Product Cards â€” V3 (Classic) ---- */
.iwa-products--v3 {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 0;
}
.iwa-product-card--v3 {
    display: flex;
    gap: 12px;
    background: var(--iwa-card-bg, #fff);
    border-radius: var(--iwa-radius, 12px);
    padding: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    text-decoration: none;
    color: inherit;
}
.iwa-product-card--v3 .iwa-product-img {
    width: 70px;
    height: 70px;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
}
.iwa-product-card--v3 .iwa-product-info {
    flex: 1;
    min-width: 0;
}
.iwa-product-card--v3 .iwa-product-name {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
}
.iwa-product-card--v3 .iwa-product-qty-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    margin-left: 6px;
    padding: 0 5px;
}
.iwa-product-card--v3 .iwa-product-desc {
    font-size: 12px;
    color: var(--iwa-product-desc, #777);
    margin: 3px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.iwa-product-card--v3 .iwa-product-bottom {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}
.iwa-product-card--v3 .iwa-product-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--iwa-accent, #e91e90);
}

/* ---- VISU 1 + V3 : carte verticale 310px (image 310x180, nom centré,
       description, puis prix bas-gauche / allergènes bas-droite) ---- */
.iwa-products--grid3.iwa-products--v3 {
    /* On conserve la grille 3×310 définie par .iwa-products--grid3
       (display:grid l’emporte sur le flex column hérité de --v3). */
    padding-top: 0;
    padding-bottom: 0;
}
.iwa-products--grid3 .iwa-product-card--v3 {
    display: flex;
    flex-direction: column;
    width: 310px;
    padding: 0;
    gap: 0;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-img {
    width: 310px;
    height: 180px;
    border-radius: 0;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-info {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 10px 12px 12px;
    min-width: 0;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-name {
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 6px;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-desc {
    margin: 0 0 10px;
    text-align: left;
    flex: 1 1 auto;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-product-price {
    text-align: left;
}
.iwa-products--grid3 .iwa-product-card--v3 .iwa-allergens,
.iwa-products--grid3 .iwa-product-card--v3 .dm-wcti-icons {
    margin: 0 0 0 auto;
    padding: 0;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* Sous 1080px : carte = 100% de la cellule */
@media (max-width: 1079px) {
    .iwa-products--grid3 .iwa-product-card--v3,
    .iwa-products--grid3 .iwa-product-card--v3 .iwa-product-img {
        width: 100%;
    }
    .iwa-products--grid3 .iwa-product-card--v3 .iwa-product-img {
        height: auto;
        aspect-ratio: 310 / 180;
    }
}

/* ---- Overlay fiche produit (VISU 1 + V3) ----
   Affiche la page produit dans un iframe sous les barres sticky
   (header 168px + barre cat + sous-cat) qui restent visibles.
   La barre du bas (.iwa-bottom-nav, 60px) reste également visible. */
.iwa-product-overlay {
    position: fixed;
    top: 168px;       /* sous le header VISU 1 (168px) — les sticky bars restent au-dessus */
    left: 0;
    right: 0;
    bottom: calc(60px + env(safe-area-inset-bottom, 0px)); /* laisse la place à la bottom-nav */
    z-index: 1500;
    background: rgba(0,0,0,0);
    display: flex;
    pointer-events: none;
    transition: background-color .2s ease;
}
.iwa-product-overlay.is-open {
    pointer-events: auto;
    background: rgba(0,0,0,.45);
}
.iwa-product-overlay[hidden] { display: none !important; }
.iwa-product-overlay-frame {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    box-shadow: 0 -8px 24px rgba(0,0,0,.18);
    /* Slide-in immediat depuis la droite (sans attendre le chargement iframe).
       L'iframe a un fond transparent : tant que rien n'est charge, on voit
       le voile gris derriere, pas de flash blanc. */
    transform: translateX(100%);
    transition: transform .25s cubic-bezier(.2,.7,.2,1);
    will-change: transform;
}
.iwa-product-overlay.is-open .iwa-product-overlay-frame {
    transform: translateX(0);
}
.iwa-product-overlay-close {
    position: absolute;
    top: 12px;
    right: 16px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 0;
    background: #fff;
    color: #222;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
.iwa-product-overlay-close:hover { background: #f3f3f3; }

/* Quand l'overlay est ouvert, on bloque le scroll de fond. */
body.iwa-has-product-overlay { overflow: hidden; }

/* ---- Inline Cart Controls ---- */
.iwa-inline-qty-btn {
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(0,0,0,.06);
    font-size: 28px;
    font-weight: 700;
    cursor: pointer;
    color: var(--iwa-text, #333);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 8px;
    -webkit-tap-highlight-color: transparent;
}
.iwa-inline-qty-val {
    min-width: 24px;
    text-align: center;
    font-size: 22px;
    font-weight: 700;
}
.iwa-inline-cart {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    border: none;
    border-radius: 0;
    overflow: visible;
}
.iwa-inline-order-btn {
    padding: 8px 14px;
    border: none;
    border-radius: 8px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: opacity .2s;
    margin-left: 8px;
    min-height: 40px;
}
.iwa-inline-order-btn:hover {
    opacity: .85;
}
/* Variante lien (produit avec global addons : redirige vers la fiche produit).
   Conserve le meme rendu que le bouton ORDER pour rester coherent
   avec les couleurs de l'admin (--iwa-accent). On ne redefinit PAS le padding
   ni la hauteur ici : ils viennent de .iwa-inline-order-btn (et de la regle V2
   grid qui s'applique aux deux variantes). */
.iwa-inline-order-link {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border: none;
    text-decoration: none;
}
/* Filet de securite pour la carte V2 sur VISU 1 : aligne explicitement la
   hauteur du lien CONFIGURE sur celle du bouton ORDER --v2 (meme padding,
   meme min-height). Specificite plus elevee que les regles ci-dessus. */
.iwa-products--grid3 .iwa-product-card--v2 .iwa-inline-order-link,
.iwa-product-card--v2 .iwa-inline-order-link {
    padding: 14px 12px;
    min-height: 40px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    box-sizing: border-box;
}
.iwa-inline-order-arrow {
    display: inline-block;
    margin-left: 4px;
    font-weight: 700;
}

/* ============================================================
   VISU 1 + V1 : carte 310x310 (image 210x210 top-left,
   prix + qty + ORDER en colonne droite, nom/desc/allergenes
   sous l'image). Sans coins arrondis.
   Layout en CSS Grid : 2 colonnes (210, 100), 2 rangees (210, 100).
   ============================================================ */
.iwa-products--grid3 .iwa-product-card--v1 {
    width: 310px;
    height: 310px;
    border-radius: 0;
    overflow: hidden;
    position: relative;
    display: block;
    background: var(--iwa-card-bg, #fff);
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    padding: 0;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-card-main {
    display: grid;
    grid-template-columns: 210px 100px;
    grid-template-rows: 210px 1fr;
    width: 310px;
    height: 310px;
    padding: 0;
    gap: 0;
    min-height: 0;
    position: relative;
}
/* Image 210x210, cellule (1,1) */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-img-link {
    grid-column: 1;
    grid-row: 1;
    width: 210px;
    height: 210px;
    line-height: 0;
    display: block;
    position: static;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-img {
    width: 210px;
    height: 210px;
    border-radius: 0;
    object-fit: cover;
    display: block;
}
/* Colonne droite : prix (top, droite) + qty (vertical, centre).
   .iwa-product-bottom est un descendant de .iwa-product-info (markup fige).
   On le sort visuellement avec position:absolute calcule par rapport a
   .iwa-product-card-main (qui est position:relative). Pour cela
   .iwa-product-info ne doit PAS etre positioned (sinon elle capture
   l'offset parent). */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-bottom {
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 210px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;  /* prix en haut, cart en bas */
    margin: 0;
    padding: 8px 6px 0;              /* padding-bottom: 0 -> cart cole au bas */
    box-sizing: border-box;
    z-index: 2;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-bottom .iwa-product-price {
    text-align: center;
    width: 100%;
    font-size: var(--iwa-size-price, 16px);
    margin: 0;
    padding: 0;
}
/* Boutons - 1 + en colonne verticale, agrandis a 55px ; le bas du bouton +
   doit etre aligne sur le bas de l'image (y = 210px du haut du cadre). */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-inline-cart {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin: 0;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-inline-qty-btn {
    width: 55px;
    height: 55px;
    border-radius: 6px;
    font-size: 22px;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-inline-qty-val {
    font-size: 20px;
    min-width: 55px;
    text-align: center;
}
/* Bouton ORDER / CONFIGURE en bas a droite du cadre (absolute pour pouvoir
   chevaucher la rangee 2 sans bousculer la grille) */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-v1-order-btn {
    position: absolute;
    right: 6px;
    bottom: 6px;
    width: 88px;
    height: 40px;
    /* Reset de la rotation verticale du V1 horizontal */
    writing-mode: horizontal-tb;
    text-orientation: initial;
    transform: none;
    border-radius: 4px;
    letter-spacing: 0;
    padding: 8px 4px;
    font-size: 12px;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    z-index: 3;
}
/* Variante CONFIGURE (lien) : meme rendu que ORDER */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-v1-order-btn--link {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border: none;
    text-decoration: none;
}
/* Zone info sous l'image (cellule 2,1-2) : nom + description (max 2 lignes).
   On occupe les deux colonnes pour avoir toute la largeur disponible mais on
   limite par padding-right pour ne pas passer sous le bouton ORDER. */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-info {
    grid-column: 1 / span 2;
    grid-row: 2;
    position: static;
    top: auto; left: auto; right: auto; bottom: auto;
    width: auto;
    padding: 6px 100px 6px 8px;  /* right = bouton ORDER (88+12) */
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-name {
    font-size: var(--iwa-size-text, 15px);
    font-weight: 700;
    text-align: left;
    margin: 0;
    line-height: 1.15;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-desc {
    font-size: calc(var(--iwa-size-text, 15px) - 2px);
    color: var(--iwa-product-desc, #777);
    margin: 0;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* Allergenes en bas a gauche du cadre */
.iwa-products--grid3 .iwa-product-card--v1 .iwa-product-allergens-row {
    position: absolute;
    bottom: 14px;
    left: 8px;
    right: 108px;        /* laisse la place au bouton ORDER (88 + marges) */
    width: auto;
    padding: 0;
    justify-content: flex-start;
    z-index: 2;
}

/* Sous 1080px : carte = 100% de la cellule (mais on garde 310px de hauteur) */
@media (max-width: 1079px) {
    .iwa-products--grid3 .iwa-product-card--v1 {
        width: 100%;
        max-width: 310px;
    }
}

/* ---- Bottom Navigation Bar ---- */
.iwa-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    /* Toujours au-dessus de tout (cart panel, modales, overlays...) */
    z-index: 2147483000;
    display: flex;
    justify-content: space-around;
    align-items: center;
    height: 60px;
    background: var(--iwa-bg, #fff);
    border-top: 1px solid rgba(0,0,0,.08);
    padding-bottom: env(safe-area-inset-bottom, 0);
    max-width: 600px;
    margin: 0 auto;
    pointer-events: auto;
}
.iwa-bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-decoration: none;
    color: #999;
    font-size: 10px;
    font-weight: 500;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 12px;
    position: relative;
    transition: color .2s;
}
.iwa-bottom-nav-item.active,
.iwa-bottom-nav-item:hover {
    color: var(--iwa-accent, #e91e90);
}
.iwa-bottom-nav-badge {
    position: absolute;
    /* Positionnee en haut a droite de l'item Panier, decalee a droite de l'icone
       (icone SVG 22px, item flex column centre) pour ne pas se superposer dessus. */
    top: 2px;
    left: calc(50% + 14px);
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
    border: 2px solid var(--iwa-bg, #fff);
    line-height: 1;
    transform-origin: center;
    transition: transform .25s cubic-bezier(.34,1.56,.64,1);
    /* Toujours visible (meme si le contenu est "0" ou vide) */
    visibility: visible !important;
    opacity: 1 !important;
}
/* Le span .iwa-cart-count interne (remplace par les fragments WC) ne doit pas
   casser le layout de la bulle. */
.iwa-bottom-nav-badge .iwa-cart-count {
    display: inline;
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 0;
    margin: 0;
    min-width: 0;
}
.iwa-bottom-nav-badge.iwa-cart-bump-badge {
    animation: iwa-cart-badge-pop .45s cubic-bezier(.34,1.56,.64,1);
}
@keyframes iwa-cart-badge-pop {
    0%   { transform: scale(1); }
    35%  { transform: scale(1.45); }
    100% { transform: scale(1); }
}
/* Position relative pour que le badge se positionne par rapport a l'item du panier */
.iwa-bottom-nav-cart { position: relative; }

/* ---- Menu Modal ---- */
.iwa-menu-modal-content {
    max-height: 80vh;
    border-radius: 16px 16px 0 0;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: 600px;
    margin: 0 auto;
    background: var(--iwa-bg, #fff);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    animation: iwa-slide-up .25s ease-out;
}
@keyframes iwa-slide-up {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}
.iwa-menu-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(0,0,0,.08);
}
.iwa-menu-modal-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}
.iwa-menu-modal-close {
    border: none;
    background: none;
    font-size: 26px;
    cursor: pointer;
    color: #999;
    padding: 0;
    line-height: 1;
}
.iwa-menu-modal-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 20px;
    text-decoration: none;
    color: var(--iwa-text, #333);
    font-size: 15px;
    font-weight: 500;
    border-bottom: 1px solid rgba(0,0,0,.04);
    transition: background .15s;
}
.iwa-menu-modal-item:hover {
    background: rgba(0,0,0,.03);
}
.iwa-menu-modal-item.active {
    color: var(--iwa-accent, #e91e90);
    font-weight: 700;
}
.iwa-menu-modal-child {
    padding-left: 40px;
    font-size: 14px;
}
.iwa-menu-modal-desc {
    font-size: 12px;
    color: #888;
    margin-left: 8px;
}
.iwa-menu-modal-count {
    margin-left: auto;
    font-size: 12px;
    font-weight: 600;
    color: var(--iwa-text-secondary, #888);
    white-space: nowrap;
}
.iwa-menu-modal-item.active .iwa-menu-modal-count {
    color: var(--iwa-accent, #e91e90);
}

/* ---- Product Detail â€” V2 ---- */
.iwa-product-detail--v2 {
    padding-top: 0 !important;
}
.iwa-product-hero-wrap {
    position: relative;
    width: 100%;
    max-height: 300px;
    overflow: hidden;
}
.iwa-product-hero-wrap .iwa-product-hero {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
}
.iwa-product-hero-wrap--empty {
    height: 60px;
    background: var(--iwa-header-bg, #333);
}
.iwa-product-hero-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(0,0,0,.45);
    color: #fff;
    font-size: 22px;
    line-height: 36px;
    text-align: center;
    text-decoration: none;
    z-index: 10;
    transition: background .2s;
}
.iwa-product-hero-close:hover {
    background: rgba(0,0,0,.65);
}
.iwa-product-detail--v2 .iwa-product-detail-body {
    padding: 16px;
}
.iwa-product-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.iwa-product-detail-price-badge {
    flex-shrink: 0;
    padding: 4px 12px;
    border-radius: 20px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

/* ---- Cart â€” V2 qty controls ---- */
.iwa-visu2 .iwa-cart-item {
    display: flex;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
    align-items: flex-start;
}
.iwa-visu2 .iwa-cart-item-img {
    width: 56px;
    height: 56px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
}
.iwa-visu2 .iwa-cart-item-info {
    flex: 1;
    min-width: 0;
}
.iwa-visu2 .iwa-cart-item-name {
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 2px;
}
.iwa-visu2 .iwa-cart-item-addon {
    margin: 0 0 4px;
    color: #888;
}
.iwa-cart-item-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 6px;
}
.iwa-cart-qty-ctrl {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid rgba(0,0,0,.12);
    border-radius: 8px;
    overflow: hidden;
}
.iwa-cart-qty-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--iwa-text, #333);
    padding: 0;
}
.iwa-cart-qty-val {
    width: 28px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
}
.iwa-visu2 .iwa-cart-item-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--iwa-accent, #e91e90);
    white-space: nowrap;
}

/* ---- Coupon Section ---- */
.iwa-coupon-section {
    margin: 16px 0;
    padding: 12px 0;
    border-top: 1px solid rgba(0,0,0,.06);
}
.iwa-coupon-title {
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 8px;
}
.iwa-coupon-form {
    display: flex;
    gap: 8px;
}
.iwa-coupon-input {
    flex: 1;
    padding: 10px 14px;
    border: 1.5px solid rgba(0,0,0,.12);
    border-radius: 8px;
    font-size: 14px;
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #333);
}
.iwa-coupon-input:focus {
    outline: none;
    border-color: var(--iwa-accent, #e91e90);
}
.iwa-coupon-apply {
    padding: 10px 18px;
    border: none;
    border-radius: 8px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.iwa-coupon-applied {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.iwa-coupon-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 20px;
    background: rgba(0,0,0,.06);
    font-size: 12px;
    font-weight: 600;
}
.iwa-coupon-remove {
    color: #999;
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
}

/* ---- Cart Discount Row ---- */
.iwa-cart-discount span:last-child {
    color: #27ae60;
}

/* ---- Empty Cart Illustration ---- */
.iwa-empty--cart {
    padding: 60px 20px;
    text-align: center;
}
.iwa-empty-illustration {
    margin-bottom: 20px;
}
.iwa-empty-btn {
    display: inline-flex;
    margin-top: 16px;
}

/* ---- Sticky Bar V2 ---- */
.iwa-sticky-bar--v2 {
    bottom: 60px;
    padding-bottom: 0;
}
.iwa-btn-checkout {
    width: 100%;
    text-align: center;
    justify-content: center;
}

/* ---- Responsive (min 600px) ---- */
@media (min-width: 600px) {
    .iwa-bottom-nav {
        max-width: 600px;
    }
    .iwa-menu-modal-content {
        max-width: 600px;
    }
    .iwa-product-card--v1 .iwa-product-img {
        width: 120px;
        height: 120px;
    }
}

/* ==========================================================================
   K2 KIOSK â€” VISU 2
   Full-screen kiosk with SPA flow: landing â†’ mode â†’ actor â†’ shop
   ========================================================================== */

/* â”€â”€ K2 Root â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-k2 {
    position: fixed;
    inset: 0;
    overflow: hidden;
    background: var(--iwa-bg, #fff);
    font-family: var(--iwa-font);
}

/* â”€â”€ K2 Screens (SPA) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iwa-k2-screen {
    display: none;
    position: absolute;
    inset: 0;
    flex-direction: column;
    overflow: hidden;
}
.iwa-k2-screen--active { display: flex; }

/* ==========================================================================
   K2 LANDING SCREEN
   ========================================================================== */
.iwa-k2-hero {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #111;
}
.iwa-k2-hero-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.iwa-k2-hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Logo: 1/3 from top, centered */
.iwa-k2-logo-wrap {
    position: absolute;
    top: 26%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}
.iwa-k2-logo {
    display: block;
    width: clamp(90px, 12vw, 150px);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,.9);
    background: rgba(255,255,255,.15);
    object-fit: contain;
    box-shadow: 0 6px 32px rgba(0,0,0,.35);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
/* CTA button: 200px from bottom */
.iwa-k2-cta {
    position: absolute;
    bottom: 200px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 18px 52px;
    min-width: 260px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: clamp(18px, 2.5vw, 26px);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    border: none;
    border-radius: 60px;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 8px 32px rgba(0,0,0,.3);
    transition: transform .15s, box-shadow .15s;
}
.iwa-k2-cta:active { transform: translateX(-50%) scale(.97); }
/* Language flags bar: fixed to bottom */
.iwa-k2-lang-bar {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    z-index: 3;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 20px;
    min-height: 54px;
}
.iwa-k2-lang-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 30px;
    border: 2px solid transparent;
    background: #efefef;
    color: var(--iwa-text, #222);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    line-height: 1;
    transition: background .15s, border-color .15s;
}
.iwa-k2-lang-btn img {
    width: 22px;
    height: auto;
    border-radius: 2px;
    display: block;
}
.iwa-k2-lang-btn.current-lang {
    border-color: var(--iwa-accent, #e91e90);
    background: #fff;
}

/* ==========================================================================
   K2 MODE / ACTOR SCREENS
   ========================================================================== */
/* Top banner: ~25% of screen height */
.iwa-k2-top-banner {
    flex: 0 0 25vh;
    background-size: cover;
    background-position: center;
    background-color: var(--iwa-header-bg, #222);
    background-repeat: no-repeat;
    position: relative;
}
.iwa-k2-top-banner::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 60px;
    background: linear-gradient(to bottom, transparent, rgba(0,0,0,.2));
    pointer-events: none;
}
/* Main content area between banner and bottom bar */
.iwa-k2-content {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 28px 24px 130px;
    overflow-y: auto;
    background: var(--iwa-bg, #fff);
}
.iwa-k2-title {
    font-size: clamp(20px, 3vw, 34px);
    font-weight: 800;
    text-align: center;
    color: var(--iwa-text, #222);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.2;
}
/* Choice buttons grid */
.iwa-k2-choice-grid {
    display: flex;
    gap: 24px;
    justify-content: center;
    flex-wrap: wrap;
}
.iwa-k2-choice {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: clamp(140px, 18vw, 190px);
    height: clamp(155px, 20vw, 205px);
    background: #222;
    color: #fff;
    border: none;
    border-radius: 18px;
    cursor: pointer;
    padding: 18px 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
    transition: transform .15s, background .15s;
}
.iwa-k2-choice:active { transform: scale(.96); background: #333; }
.iwa-k2-choice-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(52px, 8vw, 72px);
    height: clamp(52px, 8vw, 72px);
}
.iwa-k2-choice-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}
/* Actor: label above icon */
.iwa-k2-choice-grid--actor .iwa-k2-choice { flex-direction: column-reverse; }
.iwa-k2-choice-label {
    font-size: clamp(14px, 2vw, 18px);
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #fff;
    text-align: center;
    line-height: 1.1;
}
/* ANNULER button */
.iwa-k2-cancel {
    background: transparent;
    border: 2px solid var(--iwa-accent, #e91e90);
    color: var(--iwa-accent, #e91e90);
    font-size: clamp(13px, 1.8vw, 17px);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 13px 40px;
    border-radius: 40px;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.iwa-k2-cancel:active,
.iwa-k2-cancel:hover { background: var(--iwa-accent, #e91e90); color: #fff; }
/* Lang row on mode/actor screens */
.iwa-k2-lang-row {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 16px;
}
.iwa-k2-lang-row--fixed {
    position: absolute;
    bottom: 52px; left: 0; right: 0;
    background: var(--iwa-bg, #fff);
    border-top: 1px solid rgba(0,0,0,.06);
    padding: 8px 16px;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}
/* Bottom tools bar */
.iwa-k2-bottom-tools {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 52px;
    background: #1a1a1a;
    display: flex;
    align-items: center;
    padding: 0 14px;
    gap: 10px;
    z-index: 5;
}
.iwa-k2-bottom-tools-title {
    flex: 1;
    font-size: 11px;
    font-weight: 700;
    color: rgba(255,255,255,.65);
    text-transform: uppercase;
    letter-spacing: .08em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.iwa-k2-display-switches { display: flex; gap: 8px; flex-shrink: 0; }
.iwa-k2-display-btn {
    width: 40px;
    height: 40px;
    background: #333;
    border: 2px solid #444;
    border-radius: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
}
.iwa-k2-display-btn svg { width: 22px; height: 22px; display: block; }
.iwa-k2-display-btn span { display: none; }
.iwa-k2-display-btn.is-active { background: var(--iwa-accent, #e91e90); border-color: var(--iwa-accent, #e91e90); }

/* ==========================================================================
   K2 SHOP PAGES â€” common page scaffold
   ========================================================================== */
body.iwa-k2-shop-page {
    overflow: hidden;
    height: 100vh;
    position: fixed;
    inset: 0;
}
.iwa-k2-page-layout {
    display: flex;
    flex-direction: column;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    position: relative;
}
/* Top banner: 12.5vh strip with bg image */
.iwa-k2-page-banner {
    flex: 0 0 400px;
    background-size: cover;
    background-position: center;
    background-color: var(--iwa-header-bg, #222);
    display: flex;
    align-items: center;
    padding: 0 14px;
    gap: 10px;
    position: relative;
    z-index: 10;
    flex-shrink: 0;
}
.iwa-k2-page-banner-logo {
    height: clamp(32px, 5vh, 44px);
    width: auto;
    object-fit: contain;
    border-radius: 50%;
    flex-shrink: 0;
}
/* â”€â”€ Greeting / mode text: use CSS var for colour + bigger size â”€â”€ */
.iwa-k2-page-banner-greeting {
    flex: 1;
    font-size: clamp(14px, 2vw, 20px);
    color: var(--iwa-k2-banner-text-color, #fff);
    text-shadow: var(--iwa-k2-banner-text-shadow, 0 1px 4px rgba(0,0,0,.5));
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.iwa-k2-page-banner-cartbtn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: clamp(12px, 1.6vw, 15px);
    font-weight: 800;
    padding: 9px 16px;
    border-radius: 28px;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: transform .15s;
    text-decoration: none;
}
.iwa-k2-page-banner-cartbtn:active { transform: scale(.96); }

/* Le panier est désormais dans la barre du bas (.iwa-bottom-nav) — on masque celui du bandeau. */
body.iwa-visu2 .iwa-k2-page-banner-cartbtn { display: none !important; }
.iwa-k2-cart-badge-count {
    background: rgba(255,255,255,.25);
    font-size: 11px;
    font-weight: 800;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

/* â”€â”€ K2 Shop Layout: sidebar + main â”€â”€ */
.iwa-k2-shop-layout {
    flex: 1 1 0;
    display: flex;
    overflow: hidden;
    min-height: 0;
}

/* â”€â”€ K2 Category Sidebar â”€â”€ */
.iwa-k2-sidebar {
    width: clamp(140px, 18vw, 220px);
    background: var(--iwa-k2-cat-sidebar-bg, var(--iwa-header-bg, #1a1a1a));
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    flex-shrink: 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.15) transparent;
    transition: width .3s, opacity .3s;
    padding: 6px 0;
}
body.iwa-k2-product-open .iwa-k2-sidebar {
    width: 0;
    overflow: hidden;
    padding: 0;
    opacity: 0;
}
.iwa-k2-sidebar-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 6px;
    text-decoration: none;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: background .15s, border-color .15s;
    color: rgba(255,255,255,.65);
}
.iwa-k2-sidebar-item:hover,
.iwa-k2-sidebar-item.active {
    background: rgba(255,255,255,.1);
    border-left-color: var(--iwa-accent, #e91e90);
    color: #fff;
}
.iwa-k2-sidebar-img {
    width: clamp(90px, 13vw, 130px);
    aspect-ratio: 1;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
}
.iwa-k2-sidebar-name {
    font-size: clamp(12px, 1.2vw, 14px);
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.2;
    max-width: 95%;
    color: var(--iwa-category-name, inherit);
    font-family: var(--iwa-font-categories, var(--iwa-font, system-ui, sans-serif));
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ── Mode V2 (pilule horizontale : image à gauche, nom à droite) ── */
.iwa-k2-sidebar--v2 {
    width: clamp(180px, 22vw, 260px);
}
.iwa-k2-sidebar--v2 .iwa-k2-sidebar-item {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 10px;
}
.iwa-k2-sidebar--v2 .iwa-k2-sidebar-img {
    width: clamp(48px, 7vw, 64px);
}
.iwa-k2-sidebar--v2 .iwa-k2-sidebar-name {
    text-align: left;
    max-width: none;
    flex: 1 1 auto;
}

/* â”€â”€ K2 Main Content â”€â”€ */
.iwa-k2-main {
    flex: 1 1 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px;
    -webkit-overflow-scrolling: touch;
    min-width: 0;
    background: var(--iwa-bg, #f5f5f5);
}

/* Strip Promo + Meilleures ventes intégré dans .iwa-k2-main : adapte les hauteurs/paddings */
.iwa-k2-main .iwa-k2-home-strip {
    height: clamp(160px, 22vh, 220px);
    margin: -12px -12px 14px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--iwa-divider, #e5e5e5);
}
.iwa-k2-main .iwa-k2-suggestions {
    margin-top: 18px;
}
.iwa-k2-section-title {
    font-size: clamp(11px, 1.3vw, 13px);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--iwa-bestsellers-title, var(--iwa-text-secondary, #888));
    font-family: var(--iwa-font, system-ui, sans-serif);
    margin: 0 0 10px;
}

/* ── Sous-categories : barre de pills horizontale (VISU 2) ─────────────── */
.iwa-k2-subcat-bar {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 2px 12px;
    margin: -4px -4px 14px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,.2) transparent;
}
.iwa-k2-subcat-bar::-webkit-scrollbar { height: 6px; }
.iwa-k2-subcat-bar::-webkit-scrollbar-track { background: transparent; }
.iwa-k2-subcat-bar::-webkit-scrollbar-thumb { background: rgba(0,0,0,.18); border-radius: 3px; }

.iwa-k2-subcat-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--iwa-card-bg, #fff);
    color: var(--iwa-text, #333);
    font-size: clamp(12px, 1.3vw, 14px);
    font-weight: 600;
    font-family: var(--iwa-font-categories, var(--iwa-font, system-ui, sans-serif));
    text-decoration: none;
    border: 1.5px solid transparent;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    white-space: nowrap;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.iwa-k2-subcat-pill:hover { transform: translateY(-1px); }
.iwa-k2-subcat-pill:active { transform: scale(.97); }
.iwa-k2-subcat-pill.is-active {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border-color: var(--iwa-accent, #e91e90);
    box-shadow: 0 2px 6px rgba(233,30,144,.25);
}
.iwa-k2-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 22px;
}
.iwa-k2-products-grid--2col { grid-template-columns: repeat(2, 1fr); }
.iwa-k2-product-card {
    display: flex;
    flex-direction: column;
    background: var(--iwa-card-bg, #fff);
    border-radius: var(--iwa-radius, 12px);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: transform .15s;
    position: relative;
}
.iwa-k2-product-card:active { transform: scale(.97); }
.iwa-k2-product-card-img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}
.iwa-k2-product-card-body {
    padding: 7px 8px 8px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
}
.iwa-k2-product-card-name {
    font-size: var(--iwa-size-text, clamp(10px, 1.3vw, 13px));
    font-weight: 700;
    color: var(--iwa-product-name, inherit);
    font-family: var(--iwa-font-products, system-ui, sans-serif);
    margin: 0;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.iwa-k2-product-card-price {
    font-size: var(--iwa-size-price, clamp(11px, 1.4vw, 14px));
    font-weight: 800;
    color: var(--iwa-accent, #e91e90);
    font-family: var(--iwa-font-prices, var(--iwa-font, system-ui, sans-serif));
}
.iwa-k2-product-card-qty-badge {
    position: absolute;
    top: 6px; right: 6px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    width: 22px; height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.iwa-k2-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    gap: 10px;
    color: var(--iwa-text-secondary, #888);
    text-align: center;
}
.iwa-k2-empty-icon { font-size: 36px; }
.iwa-k2-empty-text { font-size: 14px; font-weight: 500; }

/* ==========================================================================
   K2 PRODUCT DETAIL â€” Modal card
   ========================================================================== */
body.iwa-k2-product-page {
    overflow: hidden;
    height: 100vh;
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
}
.iwa-k2-product-page-layout {
    display: flex;
    flex-direction: column;
    height: 100vh;
}
/* Sur la fiche produit V2, la barre du bas (60px) reste visible :
   on réduit la hauteur du layout d'autant pour que la modale slide-up
   ne la recouvre pas. */
body.iwa-k2-product-page .iwa-k2-product-page-layout {
    height: calc(100vh - 60px - env(safe-area-inset-bottom, 0px));
}
.iwa-k2-product-card-modal {
    flex: 1 1 0;
    background: var(--iwa-card-bg, #fff);
    border-radius: 20px 20px 0 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: iwa-k2-slide-up .35s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes iwa-k2-slide-up {
    from { transform: translateY(30px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}
.iwa-k2-product-photo-wrap {
    position: relative;
    flex: 0 0 38%;
    overflow: hidden;
    flex-shrink: 0;
}
.iwa-k2-product-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.iwa-k2-product-close {
    position: absolute;
    top: 12px; right: 12px;
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(0,0,0,.5);
    color: #fff;
    font-size: 22px;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    line-height: 1;
    z-index: 2;
    text-decoration: none;
    transition: background .15s;
}
.iwa-k2-product-close:active { background: rgba(0,0,0,.7); }
.iwa-k2-product-body {
    flex: 1 1 0;
    overflow-y: auto;
    padding: 16px;
    -webkit-overflow-scrolling: touch;
}
.iwa-k2-product-title-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}
.iwa-k2-product-name {
    flex: 1;
    font-size: clamp(17px, 2.5vw, 24px);
    font-weight: 800;
    margin: 0;
    line-height: 1.2;
}
.iwa-k2-product-price-badge {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    font-size: clamp(14px, 1.8vw, 17px);
    font-weight: 800;
    padding: 6px 16px;
    border-radius: 30px;
    white-space: nowrap;
    flex-shrink: 0;
    align-self: flex-start;
}
.iwa-k2-product-desc {
    font-size: 14px;
    color: var(--iwa-text-secondary, #666);
    line-height: 1.5;
    margin-bottom: 14px;
}

/* ── VISU 2 page produit : nom, description, allergènes centrés et agrandis ── */
body.iwa-k2-product-page .iwa-k2-product-title-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
}
body.iwa-k2-product-page .iwa-k2-product-name {
    flex: 0 0 auto;
    text-align: center;
    font-size: clamp(34px, 5vw, 48px);
    line-height: 1.15;
}
body.iwa-k2-product-page .iwa-k2-product-price-badge {
    align-self: center;
}
body.iwa-k2-product-page .iwa-k2-product-desc {
    text-align: center;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.45;
    margin-bottom: 18px;
}
body.iwa-k2-product-page ul.iwa-allergens {
    justify-content: center;
    gap: 10px;
    margin: 56px 0 14px;
}
body.iwa-k2-product-page ul.iwa-allergens li svg,
body.iwa-k2-product-page ul.iwa-allergens li img {
    width: 44px;
    height: 44px;
}
.iwa-k2-product-footer {
    flex: 0 0 auto;
    padding: 12px 16px;
    border-top: 1px solid rgba(0,0,0,.07);
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--iwa-card-bg, #fff);
    flex-shrink: 0;
}
.iwa-k2-qty-wrap { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.iwa-k2-qty-btn {
    width: 42px; height: 42px;
    border-radius: 50%;
    border: 2px solid var(--iwa-accent, #e91e90);
    background: transparent;
    color: var(--iwa-accent, #e91e90);
    font-size: 22px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: background .15s, color .15s;
}
.iwa-k2-qty-btn:active { background: var(--iwa-accent, #e91e90); color: #fff; }
.iwa-k2-qty-val { font-size: 22px; font-weight: 800; min-width: 28px; text-align: center; }
.iwa-k2-add-cart-btn {
    flex: 1;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border: none;
    border-radius: 30px;
    font-size: clamp(14px, 1.8vw, 17px);
    font-weight: 800;
    padding: 14px 16px;
    cursor: pointer;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .05em;
    transition: transform .15s;
}
.iwa-k2-add-cart-btn:active { transform: scale(.97); }

/* ── VISU 2 page produit : extras PEWC inline (mêmes règles que VISU 1 iframe) ── */
body.iwa-k2-product-page .pewc-group-heading-wrapper,
body.iwa-k2-product-page .pewc-group-title,
body.iwa-k2-product-page .pewc-group-name {
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    margin: 18px 0 12px;
}
body.iwa-k2-product-page .pewc-group-content-wrapper,
body.iwa-k2-product-page .pewc-group-description,
body.iwa-k2-product-page .pewc-field-label,
body.iwa-k2-product-page .pewc-item label,
body.iwa-k2-product-page .pewc-product-item label,
body.iwa-k2-product-page .pewc-product-item .pewc-product-title,
body.iwa-k2-product-page .pewc-product-item .pewc-product-name {
    font-size: clamp(18px, 2vw, 26px);
    line-height: 1.4;
    font-weight: 600;
}
body.iwa-k2-product-page .pewc-field-price,
body.iwa-k2-product-page .pewc-product-item .pewc-product-price,
body.iwa-k2-product-page .pewc-item .pewc-price {
    font-size: clamp(16px, 1.8vw, 24px);
    font-weight: 700;
}
body.iwa-k2-product-page .pewc-product-item img,
body.iwa-k2-product-page .pewc-item img {
    width: 96px;
    height: 96px;
    object-fit: contain;
}
body.iwa-k2-product-page .pewc-checkbox-desc-wrapper,
body.iwa-k2-product-page .pewc-radio-image-desc,
body.iwa-k2-product-page .pewc-item .pewc-checkbox-label,
body.iwa-k2-product-page .pewc-item .pewc-radio-label {
    font-size: clamp(20px, 2.2vw, 28px) !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
}
body.iwa-k2-product-page .pewc-checkbox-desc-wrapper .woocommerce-Price-amount,
body.iwa-k2-product-page .pewc-radio-image-desc .woocommerce-Price-amount,
body.iwa-k2-product-page .pewc-item .woocommerce-Price-amount {
    font-size: clamp(15px, 1.6vw, 20px) !important;
    font-weight: 600 !important;
}
body.iwa-k2-product-page .pewc-item input[type="checkbox"],
body.iwa-k2-product-page .pewc-item input[type="radio"] {
    width: 24px;
    height: 24px;
    accent-color: var(--iwa-accent, #e91e90);
}
/* Message d'erreur champs obligatoires */
body.iwa-k2-product-page .iwa-pewc-error {
    color: #c0392b;
    font-size: clamp(15px, 1.6vw, 20px);
    font-weight: 700;
    margin: 8px 0 16px;
    padding: 10px 14px;
    background: #fdecea;
    border-left: 4px solid #c0392b;
    border-radius: 4px;
}
body.iwa-k2-product-page .pewc-item.iwa-pewc-required-missing {
    outline: 3px solid #c0392b;
    outline-offset: 6px;
    border-radius: 4px;
}
/* Masquer le bouton WC d'origine — V2 utilise son propre footer + bouton */
body.iwa-k2-product-page .iwa-k2-wc-form-wrap form.cart .single_add_to_cart_button,
body.iwa-k2-product-page .iwa-k2-wc-form-wrap form.cart .quantity {
    display: none !important;
}

/* ── VISU 2 page produit : récap des extras (après stepper) ── */
.iwa-k2-extras-recap {
    background: var(--iwa-card-bg, #fff);
    border: 1.5px solid var(--iwa-accent, #e91e90);
    border-radius: 14px;
    padding: 14px 18px;
    margin: 14px 0 18px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.iwa-k2-extras-recap-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.iwa-k2-extras-recap-label {
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 800;
    color: var(--iwa-accent, #e91e90);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.iwa-k2-extras-recap-edit {
    background: transparent;
    border: 1.5px solid var(--iwa-accent, #e91e90);
    color: var(--iwa-accent, #e91e90);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: clamp(12px, 1.3vw, 14px);
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.iwa-k2-extras-recap-edit:active,
.iwa-k2-extras-recap-edit:hover {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
}
.iwa-k2-extras-recap-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.iwa-k2-extras-recap-list li {
    padding: 6px 0;
    font-size: clamp(15px, 1.7vw, 19px);
    line-height: 1.45;
    color: var(--iwa-text, #222);
    border-bottom: 1px dashed rgba(0,0,0,.08);
}
.iwa-k2-extras-recap-list li:last-child { border-bottom: none; }
.iwa-k2-extras-recap-list li strong {
    font-weight: 700;
    color: var(--iwa-text, #222);
}

/* PEWC addon accordion */
.iwa-k2-addon-group {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 12px;
    margin-bottom: 10px;
    overflow: hidden;
}
.iwa-k2-addon-group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    background: var(--iwa-bg-alt, #f8f8f8);
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    color: var(--iwa-text, #222);
    user-select: none;
}
.iwa-k2-chevron { transition: transform .25s; font-size: 14px; color: var(--iwa-text-secondary, #888); }
.iwa-k2-addon-group.is-open .iwa-k2-chevron { transform: rotate(180deg); }
.iwa-k2-addon-group-body {
    display: none;
    padding: 10px;
    gap: 8px;
    flex-wrap: wrap;
}
.iwa-k2-addon-group.is-open .iwa-k2-addon-group-body { display: flex; }

/* ==========================================================================
   K2 CART PANEL â€” right slide-in
   ========================================================================== */
.iwa-k2-cart-wrap {
    position: fixed;
    inset: 0;
    z-index: 800;
    pointer-events: none;
}
.iwa-k2-cart-wrap.is-open { pointer-events: all; }
.iwa-k2-cart-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    opacity: 0;
    transition: opacity .3s;
    cursor: pointer;
}
.iwa-k2-cart-wrap.is-open .iwa-k2-cart-overlay { opacity: 1; }
.iwa-k2-cart-panel {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: min(92vw, 520px);
    background: #fff;
    display: flex;
    flex-direction: column;
    transform: translateX(101%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    overflow: hidden;
    box-shadow: -4px 0 32px rgba(0,0,0,.15);
}
.iwa-k2-cart-wrap.is-open .iwa-k2-cart-panel { transform: translateX(0); }
/* Cart header */
.iwa-k2-cart-header {
    flex: 0 0 auto;
    padding: 18px 20px 14px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    display: flex;
    align-items: center;
    gap: 12px;
}
.iwa-k2-cart-title {
    font-size: 20px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0;
    flex: 1;
}
.iwa-k2-cart-close-btn {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: none;
    background: #f0f0f0;
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s;
    line-height: 1;
}
.iwa-k2-cart-close-btn:active { background: #e0e0e0; }
/* Points bar */
.iwa-k2-points-bar {
    flex: 0 0 auto;
    background: var(--iwa-gradient, var(--iwa-accent, #e91e90));
    color: #fff;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 700;
}
/* Order mode bar */
.iwa-k2-order-mode-row {
    flex: 0 0 auto;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--iwa-bg-alt, #fafafa);
    border-bottom: 1px solid rgba(0,0,0,.06);
    font-size: 13px;
}
.iwa-k2-order-mode-badge {
    background: #222;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    padding: 4px 14px;
    border-radius: 20px;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.iwa-k2-order-mode-change {
    font-size: 12px;
    color: var(--iwa-accent, #e91e90);
    background: none;
    border: none;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}
/* Cart items scroll */
.iwa-k2-cart-items-scroll {
    flex: 1 1 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 10px 20px;
    min-height: 0;
}
.iwa-k2-cart-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0,0,0,.05);
}
.iwa-k2-cart-item:last-child { border-bottom: none; }
.iwa-k2-cart-item-img {
    width: 56px; height: 56px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
}
.iwa-k2-cart-item-info { flex: 1; min-width: 0; }
.iwa-k2-cart-item-name { font-size: 14px; font-weight: 700; margin: 0 0 3px; line-height: 1.2; }
.iwa-k2-cart-item-addon { font-size: 11px; color: var(--iwa-text-secondary, #888); margin: 0 0 6px; line-height: 1.3; }
.iwa-k2-cart-item-controls { display: flex; align-items: center; gap: 7px; }
.iwa-k2-cart-qty-btn {
    width: 28px; height: 28px;
    border-radius: 50%;
    border: 1.5px solid var(--iwa-accent, #e91e90);
    background: transparent;
    color: var(--iwa-accent, #e91e90);
    font-size: 17px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, color .15s;
    line-height: 1;
}
.iwa-k2-cart-qty-btn:active { background: var(--iwa-accent, #e91e90); color: #fff; }
.iwa-k2-cart-qty-count { font-size: 15px; font-weight: 700; min-width: 22px; text-align: center; }
.iwa-k2-cart-item-price { font-size: 14px; font-weight: 800; color: var(--iwa-accent, #e91e90); flex-shrink: 0; align-self: center; }
/* Cart footer */
.iwa-k2-cart-footer {
    flex: 0 0 auto;
    padding: 12px 20px;
    border-top: 2px solid rgba(0,0,0,.08);
    background: #fff;
}
.iwa-k2-cart-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 12px;
}
.iwa-k2-validate-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 22px;
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border: none;
    border-radius: 40px;
    font-size: 16px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
    margin-bottom: 10px;
    text-decoration: none;
    transition: transform .15s;
}
.iwa-k2-validate-btn:active { transform: scale(.98); }
.iwa-k2-validate-total { font-size: 15px; font-weight: 700; opacity: .9; }
.iwa-k2-abandon-btn {
    display: block;
    width: 100%;
    padding: 13px;
    background: transparent;
    border: 2px solid rgba(0,0,0,.12);
    border-radius: 40px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    cursor: pointer;
    text-align: center;
    color: var(--iwa-text, #333);
    transition: background .15s;
}
.iwa-k2-abandon-btn:active { background: #f5f5f5; }
/* Upsell modal "ET AVEC Ã‡A?" */
.iwa-k2-upsell-wrap {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    z-index: 5;
    pointer-events: none;
}
.iwa-k2-upsell-wrap.is-visible { pointer-events: all; }
.iwa-k2-upsell-modal {
    background: var(--iwa-bg, #fff);
    color: var(--iwa-header-text, #fff);
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -6px 30px rgba(0,0,0,.14);
    transform: translateY(100%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    display: flex;
    flex-direction: column;
    max-height: 55vh;
    overflow: hidden;
}
.iwa-k2-upsell-modal.is-open { transform: translateY(0); }
.iwa-k2-upsell-handle {
    width: 40px; height: 4px;
    background: rgba(255,255,255,.35);
    border-radius: 2px;
    margin: 12px auto 8px;
    cursor: pointer;
    flex-shrink: 0;
}
.iwa-k2-upsell-header {
    padding: 0 16px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.iwa-k2-upsell-title { font-size: 16px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; margin: 0; }
.iwa-k2-upsell-title { color: var(--iwa-header-text, #fff); }
.iwa-k2-upsell-close {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,.15);
    font-size: 22px;
    cursor: pointer;
    color: var(--iwa-header-text, #fff);
    padding: 0;
    line-height: 1;
}
.iwa-k2-upsell-list {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding: 4px 16px 12px;
    -webkit-overflow-scrolling: touch;
    flex: 1;
}
.iwa-k2-upsell-item {
    flex-shrink: 0;
    width: 110px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    background: var(--iwa-bg-alt, #fafafa);
    border: 1px solid var(--iwa-border, #ececec);
    border-radius: 10px;
    padding: 8px;
}
.iwa-k2-upsell-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; }
.iwa-k2-upsell-item-name { font-size: 11px; font-weight: 700; text-align: center; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--iwa-header-text, #fff); }
.iwa-k2-upsell-item-price { font-size: 12px; font-weight: 800; color: var(--iwa-header-text, #fff); }
.iwa-k2-upsell-add-btn {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: none;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s;
    line-height: 1;
}
.iwa-k2-upsell-add-btn:active { transform: scale(.9); }
.iwa-k2-upsell-continue-btn {
    margin: 0 16px 12px;
    padding: 13px;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    border: none;
    border-radius: 28px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    cursor: pointer;
    text-align: center;
    flex-shrink: 0;
    transition: transform .15s;
}
.iwa-k2-upsell-continue-btn:active { transform: scale(.98); }

/* ==========================================================================
   K2 ACCESSIBILITY / HORIZONTAL MODE
   Top 60% = hero image, Bottom 40% = UI content
   ========================================================================== */
#iwa-k2-root.is-horizontal-access {
    background-image: var(--iwa-k2-hero-bg, none);
    background-size: cover;
    background-position: center;
}
#iwa-k2-root.is-horizontal-access .iwa-k2-screen--active {
    position: absolute;
    top: 60vh; bottom: 0;
    height: 40vh;
    overflow: auto;
    background: var(--iwa-bg, #fff);
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -6px 24px rgba(0,0,0,.15);
}
body.iwa-k2-horizontal-access .iwa-k2-page-layout {
    background-image: var(--iwa-k2-hero-bg, none);
    background-size: cover;
    background-position: center;
}
body.iwa-k2-horizontal-access .iwa-k2-page-banner {
    position: absolute;
    top: 60vh; left: 0; right: 0;
    z-index: 20;
    border-radius: 20px 20px 0 0;
}
body.iwa-k2-horizontal-access .iwa-k2-shop-layout {
    position: absolute;
    top: calc(60vh + 400px);
    bottom: 0; left: 0; right: 0;
    background: var(--iwa-bg, #f5f5f5);
}

/* ==========================================================================
   K1 LANDING â€” Split layout + Touch-to-order animation
   ========================================================================== */
/* Dark overlay only covers top portion, fades to white at ~65% */
body.iwa-landing-page .iwa-landing.has-bg-image::before {
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,.4)           0%,
        rgba(0,0,0,.3)           50%,
        rgba(0,0,0,.1)           62%,
        rgba(255,255,255,0)      65%,
        rgba(255,255,255,1)      68%
    );
    border-radius: 0;
}
/* Logo positioned at the 65% boundary */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-logo {
    position: relative;
    z-index: 2;
    margin-top: calc(65vh - 80px);
    margin-bottom: -60px;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,.9);
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
    background: rgba(255,255,255,.15);
}
/* Bottom section elements rendered on white */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-actions,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-footer-text,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-table,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-table-input {
    position: relative;
    z-index: 2;
    color: var(--iwa-text, #222) !important;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-title,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-subtitle {
    position: relative;
    z-index: 2;
}

/* K1 animation group: sits in top 65% of the landing */
.iwa-k1-anim-group {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 65%;
    pointer-events: none;
    z-index: 11;
}
/* Blue pulsing circle â€” center of image area */
.iwa-k1-touch-target {
    position: absolute;
    top: 52%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px; height: 80px;
}
/* Ripple rings */
.iwa-k1-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0, 200, 225, .4);
    animation: iwa-k1-ring-pulse 2.4s ease-out infinite;
}
.iwa-k1-ring:nth-child(2) { animation-delay: .8s; }
.iwa-k1-ring:nth-child(3) { animation-delay: 1.6s; }
@keyframes iwa-k1-ring-pulse {
    0%   { transform: scale(.4); opacity: .9; }
    100% { transform: scale(2.8); opacity: 0; }
}
/* Blue circle center */
.iwa-k1-circle {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0, 200, 225, .95);
    box-shadow: 0 0 0 6px rgba(0,200,225,.2), 0 0 40px rgba(0,200,225,.5);
    animation: iwa-k1-circle-beat 2s ease-in-out infinite;
}
@keyframes iwa-k1-circle-beat {
    0%, 100% { transform: scale(1);    box-shadow: 0 0 0 6px rgba(0,200,225,.2), 0 0 40px rgba(0,200,225,.5); }
    50%       { transform: scale(1.1); box-shadow: 0 0 0 12px rgba(0,200,225,.1), 0 0 60px rgba(0,200,225,.6); }
}
/* Hand cursor: sweeps from lower-right toward center */
.iwa-k1-hand {
    position: absolute;
    bottom: 6%;
    right: 25%;
    width: 52px; height: 66px;
    pointer-events: none;
    animation: iwa-k1-hand-sweep 3.6s ease-in-out infinite;
    transform-origin: bottom center;
    filter: drop-shadow(0 2px 5px rgba(0,0,0,.4));
}
@keyframes iwa-k1-hand-sweep {
    0%   { transform: translate(0,0) rotate(12deg);          opacity: 0; }
    10%  { opacity: 1; }
    45%  { transform: translate(-50%,-125%) rotate(-6deg);   opacity: 1; }
    55%  { transform: translate(-50%,-130%) scale(.95) rotate(-6deg); opacity: 1; }
    62%  { transform: translate(-50%,-125%) rotate(-6deg);   opacity: 1; }
    82%  { opacity: .6; }
    100% { transform: translate(0,0) rotate(12deg);          opacity: 0; }
}

/* ----------------------------------------------------------------
   K2 ï¿½ Product page: PEWC / WC form wrapper + PhotoSwipe hide
   ---------------------------------------------------------------- */

/* PhotoSwipe: completely hidden on K2 pages (no gallery needed) */
body.iwa-visu2 .pswp { display: none !important; }

/* WC add-to-cart form wrapper inside K2 product modal body */
.iwa-k2-product-page .iwa-k2-wc-form-wrap {
    padding: 0;
}
/* Hide WC's own qty input and submit button ï¿½ we use our K2 footer controls */
.iwa-k2-product-page .iwa-k2-wc-form-wrap .quantity,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .single_add_to_cart_button {
    position: absolute;
    left: -9999px;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
/* PEWC extra fields group styling inside K2 */
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-wrap {
    padding: 0;
    margin: 0;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-group {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 10px;
    margin-bottom: 10px;
    overflow: hidden;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-group-title,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-group-label {
    background: var(--iwa-bg-alt, #f8f8f8);
    font-weight: 600;
    font-size: 13px;
    padding: 10px 14px;
    margin: 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    font-size: 14px;
    cursor: pointer;
    border-bottom: 1px solid rgba(0,0,0,.04);
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item label:last-child {
    border-bottom: none;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item input[type=radio],
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item input[type=checkbox] {
    width: 18px;
    height: 18px;
    accent-color: var(--iwa-accent, #e91e63);
    cursor: pointer;
    flex-shrink: 0;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item .pewc-price {
    margin-left: auto;
    color: var(--iwa-accent, #e91e63);
    font-size: 13px;
}

/* ----------------------------------------------------------------
   K2 — PEWC extras: scroll mode uniform style (image cards)
   ---------------------------------------------------------------- */

/* In modal mode, hide the inline form entirely */
.iwa-k2-product-page .iwa-k2-extras-modal-mode .pewc-wrap,
.iwa-k2-product-page .iwa-k2-extras-modal-mode .pewc-group,
.iwa-k2-product-page .iwa-k2-extras-modal-mode .pewc-product-group,
.iwa-k2-product-page .iwa-k2-extras-modal-mode .pewc-extra-fields-wrapper,
.iwa-k2-product-page .iwa-k2-extras-modal-mode .pewc-products-wrapper { display: none !important; }
/* Keep the form itself visible (needed for submit) */
.iwa-k2-product-page .iwa-k2-extras-modal-mode form.cart { visibility: hidden; height: 0; overflow: hidden; }

/* PEWC image items — card style (scroll mode) */
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 6px;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item { position: relative; }
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item input[type=radio],
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item input[type=checkbox],
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item input[type=radio],
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item input[type=checkbox] {
    position: absolute;
    left: 8px; top: 8px;
    width: 20px; height: 20px;
    accent-color: var(--iwa-accent, #e91e63);
    cursor: pointer;
    z-index: 2;
    flex-shrink: 0;
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item label,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 2px solid var(--iwa-border, #e5e5e5);
    border-radius: var(--iwa-radius, 10px);
    padding: 10px 8px 8px;
    cursor: pointer;
    text-align: center;
    font-size: 12px;
    font-weight: 500;
    transition: border-color .15s, box-shadow .15s;
    background: var(--iwa-bg, #fff);
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item input:checked ~ label,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item input:checked ~ label,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item label:has(input:checked),
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item label:has(input:checked) {
    border-color: var(--iwa-accent, #e91e63);
    box-shadow: 0 0 0 2px rgba(233,30,99,.15);
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item img,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item img {
    width: 64px; height: 64px;
    object-fit: cover;
    border-radius: calc(var(--iwa-radius, 10px) - 2px);
}
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-product-item .pewc-product-price,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item .pewc-product-price,
.iwa-k2-product-page .iwa-k2-wc-form-wrap .pewc-item .pewc-price {
    color: var(--iwa-accent, #e91e63);
    font-size: 12px;
    font-weight: 700;
}

/* ----------------------------------------------------------------
   K2 — PEWC extras: step-modal overlay
   ---------------------------------------------------------------- */

.iwa-k2-extras-stepper {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.iwa-k2-extras-stepper[hidden] { display: none !important; }
.iwa-k2-extras-stepper-inner {
    background: var(--iwa-bg, #fff);
    border-radius: 20px 20px 0 0;
    width: 100%;
    max-width: 640px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 -8px 32px rgba(0,0,0,.25);
    animation: iwa-k2-slide-up .28s cubic-bezier(.32,1,.64,1);
}
.iwa-k2-extras-stepper-header {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid var(--iwa-border, #eee);
    gap: 8px;
    flex-shrink: 0;
}
.iwa-k2-extras-stepper-back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    color: var(--iwa-accent, #e91e63);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 8px;
}
.iwa-k2-extras-stepper-back[hidden] { display: none !important; }
.iwa-k2-extras-stepper-title {
    flex: 1;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    color: var(--iwa-text, #1a1a1a);
}
.iwa-k2-extras-stepper-close {
    background: rgba(0,0,0,.06);
    border: none;
    width: 32px; height: 32px;
    border-radius: 50%;
    font-size: 18px;
    cursor: pointer;
    color: var(--iwa-text, #1a1a1a);
    display: flex; align-items: center; justify-content: center;
}
.iwa-k2-extras-stepper-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 16px;
    border-bottom: 1px solid var(--iwa-border, #eee);
    flex-shrink: 0;
}
.iwa-k2-extras-stepper-step-label {
    font-size: 12px;
    color: var(--iwa-text-secondary, #888);
    font-weight: 600;
}
.iwa-k2-extras-stepper-dots {
    display: flex;
    gap: 6px;
    align-items: center;
}
.iwa-k2-extras-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--iwa-border, #ddd);
    transition: background .2s, transform .2s;
}
.iwa-k2-extras-dot.is-active {
    background: var(--iwa-accent, #e91e63);
    transform: scale(1.25);
}
.iwa-k2-extras-stepper-body {
    flex: 1 1 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
}
/* Stepper body: reuse card styles for PEWC groups */
.iwa-k2-extras-stepper-body .pewc-group-title,
.iwa-k2-extras-stepper-body h3 {
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 12px;
    display: none; /* Title already shown in header */
}
.iwa-k2-extras-stepper-body .pewc-product-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.iwa-k2-extras-stepper-body .pewc-product-item label,
.iwa-k2-extras-stepper-body .pewc-item label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    border: 2px solid var(--iwa-border, #e5e5e5);
    border-radius: var(--iwa-radius, 10px);
    padding: 12px 10px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    transition: border-color .15s, box-shadow .15s;
    background: var(--iwa-bg, #fff);
}
.iwa-k2-extras-stepper-body .pewc-product-item label:has(input:checked),
.iwa-k2-extras-stepper-body .pewc-item label:has(input:checked) {
    border-color: var(--iwa-accent, #e91e63);
    box-shadow: 0 0 0 3px rgba(233,30,99,.15);
}
.iwa-k2-extras-stepper-body .pewc-product-item img,
.iwa-k2-extras-stepper-body .pewc-item img {
    width: 80px; height: 80px;
    object-fit: cover;
    border-radius: calc(var(--iwa-radius, 10px) - 4px);
}
.iwa-k2-extras-stepper-body .pewc-product-item .pewc-product-price,
.iwa-k2-extras-stepper-body .pewc-item .pewc-price {
    color: var(--iwa-accent, #e91e63);
    font-size: 13px; font-weight: 700;
}
.iwa-k2-extras-stepper-body .pewc-product-item input[type=radio],
.iwa-k2-extras-stepper-body .pewc-product-item input[type=checkbox],
.iwa-k2-extras-stepper-body .pewc-item input[type=radio],
.iwa-k2-extras-stepper-body .pewc-item input[type=checkbox] { display: none; }
.iwa-k2-extras-stepper-footer {
    padding: 12px 16px max(12px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--iwa-border, #eee);
    flex-shrink: 0;
}
.iwa-k2-extras-stepper-footer .iwa-k2-add-cart-btn {
    width: 100%;
    display: flex; align-items: center; justify-content: center;
}


/* ──────────────────────────────────────────────────────────
   V1 Landing — kiosque vertical 1080 x 1920
   Schéma simple :
   - Partie 1 (haut)  : 70 % de l'écran -> image de fond
   - Partie 2 (bas)   : 30 % de l'écran -> blanc
   ────────────────────────────────────────────────────────── */
body.iwa-landing-page .iwa-landing.has-bg-image {
    min-height: 100vh;
    height: 100vh;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% 70vh;
}

/* On désactive l'overlay sombre hérité (couvrait toute la page) */
body.iwa-landing-page .iwa-landing.has-bg-image::before {
    display: none !important;
}

/* Logo : cercle de 250px, top à 1469px du haut (sur 1920) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-logo {
    position: absolute;
    left: 50%;
    top: 1219px;
    transform: translateX(-50%);
    width: 250px;
    height: 250px;
    margin: 0;
    padding: 0;
    background: transparent;
    border-radius: 50%;
    object-fit: contain;
    z-index: 3;
}

/* Partie 2 (bas d'écran) : on masque tout */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-table,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-table-input,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-actions,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-footer-text,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-group-inline,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-group-join,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-group-share,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-group-round-choice,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-group-badge {
    display: none !important;
}

/* Titre : 90px au-dessus du logo (logo top = 1219px => bord bas du titre @ 1129px) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-title {
    position: absolute;
    left: 0;
    right: 0;
    top: 1129px;
    transform: translateY(-100%);
    margin: 0;
    padding: 0 6vw;
    text-align: center;
    line-height: 1.15;
    z-index: 3;
}

/* Sous-titre : 80px sous le cercle (top cercle 1219 + 250 + 80 = 1549px) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-subtitle {
    position: absolute;
    left: 0;
    right: 0;
    top: 1549px;
    margin: 0;
    padding: 0 6vw;
    text-align: center;
    color: var(--iwa-text, #1a1a1a) !important;
    z-index: 3;
}

/* K1 - Vidéo de fond (zone haute 70vh, remplace l'image) */
body.iwa-landing-page .iwa-landing.has-bg-video { background-image: none !important; }
body.iwa-landing-page .iwa-landing.has-bg-video .iwa-landing-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70vh;
    object-fit: cover;
    object-position: center top;
    z-index: 0;
    pointer-events: none;
    background: #000;
}

/* ============================================================
   K1 (kiosque 1080x1920) - Cible qui rayonne + main animée
   ============================================================ */
/* Override : group d'animation absolu sur toute la zone du haut */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-anim-group {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 70vh;
    pointer-events: none;
    z-index: 11;
}

/* Cible : centre à top:710px, x=540px (centre horizontal sur 1080) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-touch-target {
    position: absolute;
    top: 710px;
    left: 540px;
    transform: translate(-50%, -50%);
    width: 140px;
    height: 140px;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0, 200, 225, .35);
    animation: iwa-k1-ring-pulse 2.4s ease-out infinite;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-circle {
    position: absolute;
    inset: 22%;
    border-radius: 50%;
    background: rgba(0, 200, 225, .95);
    box-shadow: 0 0 0 8px rgba(0,200,225,.25), 0 0 50px rgba(0,200,225,.55);
    animation: iwa-k1-circle-beat 2s ease-in-out infinite;
}

/* Main : départ bord droit @ top:1190px, va vers le centre cible (540,710).
   Delta horizontal : 540 - 1080 = -540px
   Delta vertical   : 710 - 1190 = -480px
   On ancre la main par le coin haut-gauche ; on translate sa pointe vers la cible. */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-hand {
    position: absolute;
    top: 1190px;
    left: 1080px;          /* hors champ à droite au départ */
    width: 180px;
    height: auto;
    pointer-events: none;
    transform-origin: top left;
    animation: iwa-k1-hand-move 3.6s ease-in-out infinite;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.45));
    z-index: 10;
}

@keyframes iwa-k1-hand-move {
    0%   { transform: translate(0, 0)            rotate(8deg);  opacity: 0; }
    12%  { opacity: 1; }
    /* la main pointe (centre du doigt index ≈ 50% largeur, 10% hauteur)
       on translate de (-540 - 90, -480 + 18) ≈ (-630px, -462px) pour amener la pointe sur (540,710) */
    50%  { transform: translate(-630px, -462px)  rotate(-10deg); opacity: 1; }
    60%  { transform: translate(-630px, -442px)  rotate(-10deg) scale(.92); opacity: 1; } /* tap */
    70%  { transform: translate(-630px, -462px)  rotate(-10deg); opacity: 1; }
    88%  { opacity: .4; }
    100% { transform: translate(0, 0)            rotate(8deg);  opacity: 0; }
}

/* ============================================================
   K1 (kiosque 1080x1920) - Cible qui rayonne + main animée
   ============================================================ */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-anim-group {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 70vh;
    pointer-events: none;
    z-index: 11;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-touch-target {
    position: absolute;
    top: 710px;
    left: 540px;
    transform: translate(-50%, -50%);
    width: 140px;
    height: 140px;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0, 200, 225, .35);
    animation: iwa-k1-ring-pulse 2.4s ease-out infinite;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-circle {
    position: absolute;
    inset: 22%;
    border-radius: 50%;
    background: rgba(0, 200, 225, .95);
    box-shadow: 0 0 0 8px rgba(0,200,225,.25), 0 0 50px rgba(0,200,225,.55);
    animation: iwa-k1-circle-beat 2s ease-in-out infinite;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-hand {
    position: absolute;
    top: 1190px;
    left: 1080px;
    width: 180px;
    height: auto;
    pointer-events: none;
    transform-origin: top left;
    animation: iwa-k1-hand-move 3.6s ease-in-out infinite;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.45));
    z-index: 10;
}
@keyframes iwa-k1-hand-move {
    0%   { transform: translate(0, 0)            rotate(8deg);  opacity: 0; }
    12%  { opacity: 1; }
    50%  { transform: translate(-630px, -462px)  rotate(-10deg); opacity: 1; }
    60%  { transform: translate(-630px, -442px)  rotate(-10deg) scale(.92); opacity: 1; }
    70%  { transform: translate(-630px, -462px)  rotate(-10deg); opacity: 1; }
    88%  { opacity: .4; }
    100% { transform: translate(0, 0)            rotate(8deg);  opacity: 0; }
}

/* ============================================================
   K1 - Sélecteur de langues en bas (style design / dégradé)
   ============================================================ */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 170px;
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 24px;
    padding: 0 6vw;
    z-index: 4;
    border: none;
    margin: 0;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    padding: 18px 36px;
    border-radius: 999px;
    background: var(--iwa-gradient);
    color: #fff !important;
    border: none !important;
    font-size: 28px;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: .5px;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
    opacity: .85;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang a:hover,
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang a.current-lang {
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0,0,0,.25);
    color: #fff !important;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-landing-lang a.current-lang {
    outline: 3px solid rgba(255,255,255,.9);
    outline-offset: -3px;
}

/* ============================================================
   K1 - Icônes accessibilité (coin inférieur droit)
   ============================================================ */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-access {
    position: absolute;
    right: 30px;
    bottom: 30px;
    display: flex;
    flex-direction: row;
    gap: 16px;
    z-index: 5;
    pointer-events: none;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-access-icon {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0,0,0,.35);
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-access-icon svg {
    width: 60%;
    height: 60%;
    display: block;
}

/* ============================================================
   K1 - Zone tactile partie 1 (haute) : ouvre la page menu
   ============================================================ */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-touch-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70vh;
    z-index: 6;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
}

/* ============================================================
   K1 - Promos (zone d'animation 70% de la partie 1)
   ============================================================ */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-stage {
    position: absolute;
    /* Modal centré occupant ~70% de la partie 1 (70vh) */
    top: 10.5vh;     /* (70vh - 49vh) / 2 ≈ 10.5vh → centre vertical de partie 1 */
    left: 15%;       /* 70% de largeur, centré */
    right: 15%;
    height: 49vh;    /* 70% de 70vh */
    z-index: 7;      /* au-dessus du touch-overlay (6) pour capter le clic, sous la main (10) */
    pointer-events: none;
    overflow: visible;
    border-radius: 18px;
    perspective: 1200px; /* pour flip-x / flip-y */
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-color: #000;
    opacity: 0;
    transform: translateX(100%);
    transition: opacity .6s ease, transform .6s ease, clip-path .6s ease, filter .6s ease;
    pointer-events: auto;
    cursor: pointer;
    box-shadow: 0 16px 40px rgba(0,0,0,.45);
    border-radius: 18px;
    overflow: hidden;
    will-change: transform, opacity, clip-path, filter;
    backface-visibility: hidden;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item video {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-cta {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 18px 24px;
    background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.45) 60%, rgba(0,0,0,0) 100%);
    color: #fff;
    font-size: 26px;
    font-weight: 700;
    text-align: center;
    letter-spacing: .3px;
    text-shadow: 0 2px 6px rgba(0,0,0,.6);
    pointer-events: none;
    line-height: 1.25;
    white-space: pre-line; /* respecte les retours \u00e0 la ligne */
    max-height: 60%;
    overflow: hidden;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-title {
    position: absolute;
    left: 0; right: 0; top: 0;
    padding: 18px 24px;
    background: linear-gradient(to bottom, rgba(0,0,0,.78) 0%, rgba(0,0,0,.45) 60%, rgba(0,0,0,0) 100%);
    color: #fff;
    font-size: 36px;
    font-weight: 800;
    text-align: center;
    letter-spacing: .3px;
    text-shadow: 0 2px 6px rgba(0,0,0,.6);
    pointer-events: none;
    line-height: 1.2;
    white-space: pre-line; /* respecte les retours \u00e0 la ligne */
    max-height: 60%;
    overflow: hidden;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="fade"] { transform: none; }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide"].is-in { opacity: 1; transform: translateX(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide"].is-out { opacity: 0; transform: translateX(-100%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="fade"].is-in { opacity: 1; }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="fade"].is-out { opacity: 0; }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="carousel"] { transform: translateY(100%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="carousel"].is-in { opacity: 1; transform: translateY(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="carousel"].is-out { opacity: 0; transform: translateY(-100%); }

/* slide-left : entrée gauche, sortie droite */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-left"] { transform: translateX(-100%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-left"].is-in { opacity: 1; transform: translateX(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-left"].is-out { opacity: 0; transform: translateX(100%); }

/* slide-down : entrée haut, sortie bas */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-down"] { transform: translateY(-100%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-down"].is-in { opacity: 1; transform: translateY(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="slide-down"].is-out { opacity: 0; transform: translateY(100%); }

/* zoom-in : grossit depuis 0.5 */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-in"] { transform: scale(.5); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-in"].is-in { opacity: 1; transform: scale(1); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-in"].is-out { opacity: 0; transform: scale(.5); }

/* zoom-out : rétrécit depuis 1.5 */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-out"] { transform: scale(1.5); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-out"].is-in { opacity: 1; transform: scale(1); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="zoom-out"].is-out { opacity: 0; transform: scale(1.5); }

/* pop : rebond élastique */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="pop"] {
    transform: scale(.3);
    transition: opacity .5s ease, transform .55s cubic-bezier(.34, 1.7, .64, 1);
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="pop"].is-in { opacity: 1; transform: scale(1); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="pop"].is-out { opacity: 0; transform: scale(.3); transition: opacity .35s ease, transform .35s ease-in; }

/* flip-x : bascule sur l'axe Y (carte qu'on retourne) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-x"] { transform: perspective(1200px) rotateY(90deg); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-x"].is-in { opacity: 1; transform: perspective(1200px) rotateY(0deg); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-x"].is-out { opacity: 0; transform: perspective(1200px) rotateY(-90deg); }

/* flip-y : bascule sur l'axe X */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-y"] { transform: perspective(1200px) rotateX(90deg); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-y"].is-in { opacity: 1; transform: perspective(1200px) rotateX(0deg); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="flip-y"].is-out { opacity: 0; transform: perspective(1200px) rotateX(-90deg); }

/* rotate-in : rotation -180° → 0 → 180° */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="rotate-in"] { transform: rotate(-180deg) scale(.5); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="rotate-in"].is-in { opacity: 1; transform: rotate(0deg) scale(1); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="rotate-in"].is-out { opacity: 0; transform: rotate(180deg) scale(.5); }

/* swing : balance depuis le haut */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="swing"] {
    transform: translateY(-60%) rotate(-25deg);
    transform-origin: top center;
    transition: opacity .5s ease, transform .7s cubic-bezier(.5, 1.6, .5, 1);
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="swing"].is-in { opacity: 1; transform: translateY(0) rotate(0deg); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="swing"].is-out { opacity: 0; transform: translateY(-60%) rotate(25deg); }

/* reveal-iris : révélation circulaire centre */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="reveal-iris"] {
    opacity: 1;
    transform: none;
    clip-path: circle(0% at 50% 50%);
    transition: clip-path .7s ease, opacity .3s ease;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="reveal-iris"].is-in { clip-path: circle(75% at 50% 50%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="reveal-iris"].is-out { clip-path: circle(0% at 50% 50%); }

/* wipe : balayage horizontal gauche→droite */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="wipe"] {
    opacity: 1;
    transform: none;
    clip-path: inset(0 100% 0 0);
    transition: clip-path .7s ease;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="wipe"].is-in { clip-path: inset(0 0 0 0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="wipe"].is-out { clip-path: inset(0 0 0 100%); }

/* blinds : effet store vénitien (scaleY depuis le haut) */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blinds"] {
    transform: scaleY(0);
    transform-origin: top center;
    transition: opacity .4s ease, transform .65s cubic-bezier(.5, 0, .2, 1.05);
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blinds"].is-in { opacity: 1; transform: scaleY(1); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blinds"].is-out { opacity: 0; transform: scaleY(0); transform-origin: bottom center; }

/* bounce : entrée par le haut avec rebond */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="bounce"] {
    transform: translateY(-120%);
    transition: opacity .4s ease, transform .8s cubic-bezier(.34, 1.56, .64, 1);
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="bounce"].is-in { opacity: 1; transform: translateY(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="bounce"].is-out { opacity: 0; transform: translateY(120%); transition: opacity .35s ease, transform .4s ease-in; }

/* shake-in : entrée par la droite avec vibration finale */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="shake-in"] { transform: translateX(100%); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="shake-in"].is-in {
    opacity: 1;
    animation: iwa-promo-shake-in .8s ease-out forwards;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="shake-in"].is-out { opacity: 0; transform: translateX(-100%); animation: none; }
@keyframes iwa-promo-shake-in {
    0%   { transform: translateX(100%); }
    55%  { transform: translateX(0); }
    65%  { transform: translateX(-12px); }
    75%  { transform: translateX(8px); }
    85%  { transform: translateX(-4px); }
    100% { transform: translateX(0); }
}

/* blur-in : défloute */
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blur-in"] {
    transform: none;
    filter: blur(20px);
    transition: opacity .6s ease, filter .6s ease;
}
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blur-in"].is-in { opacity: 1; filter: blur(0); }
body.iwa-landing-page .iwa-landing.has-bg-image .iwa-k1-promo-item[data-anim="blur-in"].is-out { opacity: 0; filter: blur(20px); }

.iwa-k1-promo-modal {
    position: fixed; inset: 0; z-index: 10000;
    display: flex; align-items: center; justify-content: center;
}
.iwa-k1-promo-modal[hidden] { display: none; }
.iwa-k1-promo-modal-overlay {
    position: absolute; inset: 0; background: rgba(0,0,0,.7);
}
.iwa-k1-promo-modal-box {
    position: relative;
    background: #fff;
    border-radius: 16px;
    padding: 32px 40px;
    max-width: 80%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.iwa-k1-promo-modal-text {
    font-size: 28px;
    line-height: 1.3;
    margin: 0 0 24px;
    white-space: pre-line;
}
.iwa-k1-promo-modal-actions {
    display: flex; gap: 16px; justify-content: center;
}
.iwa-k1-promo-modal-actions button {
    padding: 16px 32px;
    border-radius: 999px;
    border: none;
    font-size: 22px;
    font-weight: 600;
    cursor: pointer;
    min-width: 140px;
}
.iwa-k1-promo-modal-yes { background: #28a745; color: #fff; }
.iwa-k1-promo-modal-no  { background: #ddd; color: #333; }


/* === VISU 1 — Bandeau catégories scrollable (v1_category_display=v1) === */
/* Wrapper scrollable + indicateurs latéraux (fade gauche/droite + chevrons) */
.iwa-scroll-fade { position: relative; }
.iwa-scroll-fade::before,
.iwa-scroll-fade::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 48px;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    transition: opacity .2s;
}
.iwa-scroll-fade::before {
    left: 0;
    background: linear-gradient(to right, rgba(255,255,255,0.95), rgba(255,255,255,0));
}
.iwa-scroll-fade::after {
    right: 0;
    background: linear-gradient(to left, rgba(255,255,255,0.95), rgba(255,255,255,0));
}
.iwa-scroll-fade.has-overflow-left::before  { opacity: 1; }
.iwa-scroll-fade.has-overflow-right::after  { opacity: 1; }
.iwa-scroll-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(0,0,0,0.55);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    z-index: 3;
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s;
    user-select: none;
}
.iwa-scroll-arrow--left  { left: 6px; }
.iwa-scroll-arrow--right { right: 6px; }
.iwa-scroll-fade.has-overflow-left  .iwa-scroll-arrow--left  { opacity: 1; }
.iwa-scroll-fade.has-overflow-right .iwa-scroll-arrow--right { opacity: 1; }

/* Wrapper sticky : barre catégories + panneaux sous-catégories restent visibles
   tandis que la promo, les meilleures ventes et la grille produits scrollent. */
.iwa-sticky-bars {
    position: sticky;
    top: 56px; /* sera ajusté à 168px sur la page categories home */
    z-index: 50;
    background: var(--iwa-bg-categories-menu, #fff);
}
body.iwa-categories-home .iwa-sticky-bars { top: 168px; }

.iwa-cat-bar-wrap {
    /* plus sticky : son parent .iwa-sticky-bars l'est */
    background: var(--iwa-bg-categories-menu, #fff);
    border-bottom: 1px solid var(--iwa-divider, #e5e5e5);
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.iwa-cat-bar {
    height: 200px;
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 12px;
    padding: 12px 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.iwa-cat-bar::-webkit-scrollbar { height: 8px; }
.iwa-cat-bar::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }
.iwa-cat-bar-item {
    flex: 0 0 auto;
    width: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px;
    background: var(--iwa-cat-bar-item-bg, #fff);
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s, transform .15s, box-shadow .15s;
}
.iwa-cat-bar-item:hover { border-color: #ddd; }
.iwa-cat-bar-item.is-active {
    border-color: var(--iwa-primary, #0073aa);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.iwa-cat-bar-img {
    width: 100%;
    height: 110px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 8px;
    background-color: #f3f3f3;
}
.iwa-cat-bar-img--placeholder { background-color: #eee; }
.iwa-cat-bar-name {
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    line-height: 1.2;
    color: var(--iwa-category-name, #222);
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
/* Badge nb de produits sous le nom de categorie. */
.iwa-cat-bar-count {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #eee;
    color: #555;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}
.iwa-cat-bar-count--filtered {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
}
.iwa-cat-bar-item.iwa-cat-empty { opacity: .45; }
.iwa-cat-bar-item.iwa-cat-empty .iwa-cat-bar-count { background: #ddd; color: #888; }

/* Panneau sous-catégories — défilement horizontal sur 1 ligne */
.iwa-subcat-panel {
    padding: 14px 0;
    background: var(--iwa-bg-categories-menu, #fafafa);
    border-bottom: 1px solid var(--iwa-divider, #e5e5e5);
}
.iwa-subcat-panel[hidden] { display: none; }
.iwa-subcat-grid {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    padding: 4px 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.iwa-subcat-grid::-webkit-scrollbar { height: 6px; }
.iwa-subcat-grid::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
.iwa-subcat-btn {
    flex: 0 0 auto;
    width: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    min-height: 44px;
    padding: 10px 22px;
    border: none;
    border-radius: var(--iwa-btn-radius);
    background: var(--iwa-gradient);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
}
.iwa-subcat-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
    color: #fff;
}
.iwa-subcat-btn--all {
    font-weight: 700;
    letter-spacing: 0.04em;
}
.iwa-subcat-btn.is-active {
    outline: 3px solid var(--iwa-primary, #0073aa);
    outline-offset: 2px;
}

/* === VISU 1 — Bandeau 260px : Promo + Meilleures ventes === */
.iwa-home-strip {
    display: flex;
    gap: 16px;
    height: 260px;
    padding: 12px 16px;
    background: var(--iwa-bg-home-strip, #fff);
    border-bottom: 1px solid var(--iwa-divider, #e5e5e5);
}
.iwa-home-promo {
    flex: 1 1 50%;
    min-width: 0;
    border-radius: 12px;
    overflow: hidden;
    background: #f3f3f3;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.iwa-home-promo-link { display: block; width: 100%; height: 100%; position: relative; }
.iwa-home-promo-media {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.iwa-home-promo-name {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 12px 16px;
    background: linear-gradient(to top, rgba(0,0,0,0.8), rgba(0,0,0,0));
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    text-align: left;
    line-height: 1.2;
}
.iwa-home-promo-badge {
    position: absolute;
    top: 10px; left: 10px;
    background: var(--iwa-primary, #0073aa);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 4px 10px;
    border-radius: 999px;
    z-index: 2;
}
.iwa-home-promo-empty {
    color: #999;
    font-style: italic;
    text-align: center;
    padding: 20px;
}
.iwa-home-bestsellers {
    flex: 1 1 50%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: var(--iwa-bestsellers-bg, #fafafa);
    border-radius: 12px;
    padding: 12px 0 12px 14px;
}
.iwa-home-bestsellers-title {
    margin: 0 14px 10px 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--iwa-bestsellers-title, #222);
}
.iwa-home-bestsellers .iwa-scroll-fade {
    flex: 1;
    min-height: 0;
}
.iwa-home-bestsellers-row {
    height: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 10px;
    padding-right: 14px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.iwa-home-bestsellers-row::-webkit-scrollbar { height: 6px; }
.iwa-home-bestsellers-row::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
.iwa-home-bestseller-item {
    flex: 0 0 auto;
    width: 160px;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #eee;
    text-decoration: none;
    color: #fff;
    display: block;
}
.iwa-home-bestseller-img {
    position: absolute; inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.iwa-home-bestseller-img--placeholder { background-color: #ccc; }
.iwa-home-bestseller-name {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 6px 8px;
    background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0));
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-align: left;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* === VISU 1 — Grille produits filtrée 3 colonnes === */
.iwa-filtered-products {
    padding: 16px;
    min-height: 200px;
}
.iwa-filtered-products .iwa-loading {
    text-align: center;
    padding: 30px;
    color: #888;
    font-style: italic;
}
/* === VISU 1 \u2014 Grille produits 3 colonnes responsive ===
   Sp\u00e9c id\u00e9ale borne moderne 1080px : 50 - 310 - 25 - 310 - 25 - 310 - 50.
   En dessous, on retombe en 2 puis 1 colonne. */
.iwa-products--grid3 {
    display: grid;
    grid-template-columns: repeat(3, 310px);
    column-gap: 25px;
    row-gap: 25px;
    justify-content: center;
    padding-left: 50px;
    padding-right: 50px;
    box-sizing: border-box;
}
.iwa-products--grid3 > .iwa-product-card,
.iwa-products--grid3 > a.iwa-product-card { min-height: 310px; }

/* En dessous de 1080px (3\u00d7310 + 2\u00d725 + 2\u00d750 = 1080) \u2192 2 colonnes. */
@media (max-width: 1079px) {
    .iwa-products--grid3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 16px;
        padding-left: 16px;
        padding-right: 16px;
    }
}
/* Mobile \u2192 1 colonne. */
@media (max-width: 540px) {
    .iwa-products--grid3 {
        grid-template-columns: 1fr;
    }
    .iwa-products--grid3 > .iwa-product-card,
    .iwa-products--grid3 > a.iwa-product-card { min-height: 0; }
}

/* Le strip Promo + Meilleures ventes ne s'empile qu'en dessous de 700px
   (sinon l'image promo native explose la hauteur). */
@media (max-width: 700px) {
    .iwa-home-strip { flex-direction: column; height: auto; }
    .iwa-home-promo, .iwa-home-bestsellers { flex: 0 0 auto; min-height: 200px; }
}

/* ============================================================================
   MODALE TYPE DE COMMANDE (SUR PLACE / À EMPORTER)
   Affichée entre la landing et les catégories si activée en admin,
   ou ouverte depuis le bouton « Changer » du panneau panier.
   ============================================================================ */
.iwa-order-type-modal {
    position: fixed; inset: 0; z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none;
}
.iwa-order-type-modal[hidden] { display: none !important; }
.iwa-order-type-modal.is-open { pointer-events: auto; }
.iwa-order-type-overlay {
    position: absolute; inset: 0;
    background: var(--iwa-modal-overlay, rgba(0,0,0,.6));
    opacity: 0;
    transition: opacity .25s ease;
}
.iwa-order-type-modal.is-open .iwa-order-type-overlay { opacity: 1; }
.iwa-order-type-box {
    position: relative;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: 28px;
    padding: 48px 56px 40px;
    max-width: 720px; width: calc(100% - 64px);
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
    transform: translateY(40px) scale(.96);
    opacity: 0;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
}
.iwa-order-type-modal.is-open .iwa-order-type-box {
    transform: translateY(0) scale(1); opacity: 1;
}
.iwa-order-type-title {
    margin: 0 0 32px;
    font-size: 32px; font-weight: 800;
    text-align: center;
    color: var(--iwa-modal-title, #111);
}
.iwa-order-type-choices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.iwa-order-type-choice {
    display: flex; flex-direction: column; align-items: center; gap: 18px;
    background: #fff;
    border: 3px solid #e5e5e5;
    border-radius: 24px;
    padding: 32px 16px;
    cursor: pointer;
    transition: transform .15s ease, border-color .2s ease, background-color .2s ease, color .2s ease;
    color: #444;
}
.iwa-order-type-choice:hover,
.iwa-order-type-choice:focus-visible {
    border-color: var(--iwa-accent, #e91e90);
    color: var(--iwa-accent, #e91e90);
}
.iwa-order-type-choice:active { transform: scale(.97); }
.iwa-order-type-choice.is-active {
    border-color: var(--iwa-accent, #e91e90);
    background: var(--iwa-accent, #e91e90);
    color: #fff;
}
.iwa-order-type-icon { line-height: 0; }
.iwa-order-type-label {
    font-size: 24px; font-weight: 700; letter-spacing: .5px;
    text-transform: uppercase;
}
.iwa-order-type-hint {
    margin: 28px 0 0;
    text-align: center;
    font-size: 14px;
    color: #888;
}

/* Mode kiosque vertical : version plus grande */
body.iwa-k1 .iwa-order-type-box,
body.iwa-visu1 .iwa-order-type-box {
    max-width: 880px;
    padding: 64px 72px 56px;
    border-radius: 36px;
}
body.iwa-k1 .iwa-order-type-title,
body.iwa-visu1 .iwa-order-type-title {
    font-size: 44px; margin-bottom: 48px;
}
body.iwa-k1 .iwa-order-type-choice,
body.iwa-visu1 .iwa-order-type-choice {
    padding: 48px 20px; gap: 24px;
}
body.iwa-k1 .iwa-order-type-icon svg,
body.iwa-visu1 .iwa-order-type-icon svg {
    width: 120px; height: 120px;
}
body.iwa-k1 .iwa-order-type-label,
body.iwa-visu1 .iwa-order-type-label {
    font-size: 32px;
}

/* ============================================================================
   MODALE PANIER (slide-in 50% droite, sous-modale upsell 50% gauche)
   ============================================================================ */
.iwa-cart-modal {
    position: fixed; inset: 0; z-index: 99000;
    pointer-events: none;
}
/* En VISU 2, le bandeau (400px) reste visible au-dessus et la barre du bas (60px)
   reste visible en dessous : on cadre la modale entre les deux. */
body.iwa-visu2 .iwa-cart-modal {
    inset: 400px 0 calc(60px + env(safe-area-inset-bottom, 0px)) 0;
}
.iwa-cart-modal[hidden] { display: none !important; }
.iwa-cart-modal.is-open { pointer-events: auto; }
.iwa-cart-modal-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,.5);
    opacity: 0; transition: opacity .25s ease;
}
.iwa-cart-modal.is-open .iwa-cart-modal-overlay { opacity: 1; }

.iwa-cart-modal-panel {
    position: absolute; top: 0; right: 0; bottom: 0;
    width: 50%; min-width: 380px; max-width: 960px;
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #1a1a1a);
    display: flex; flex-direction: column;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.2,.8,.2,1);
    box-shadow: -8px 0 32px rgba(0,0,0,.25);
    will-change: transform;
}
.iwa-cart-modal.is-open .iwa-cart-modal-panel { transform: translateX(0); }

.iwa-cart-modal-header {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    padding: 20px 64px;
    border-bottom: 1px solid var(--iwa-border, #eee);
    background: var(--iwa-bg, #fff);
    flex-shrink: 0;
}
.iwa-cart-modal-title {
    margin: 0;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: 1px;
    text-align: center;
    color: var(--iwa-text, #1a1a1a);
}
.iwa-cart-modal-close {
    position: absolute;
    top: 50%; right: 16px;
    transform: translateY(-50%);
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 0; background: #f1f1f1;
    font-size: 28px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.iwa-cart-modal-close:active { background: #e0e0e0; }

.iwa-cart-modal-loyalty {
    padding: 12px 24px;
    background: #fff8e1;
    border-bottom: 1px solid #f0e6b8;
    font-size: 14px;
}

/* ── Corps : ticket de caisse ─────────────────────────────────────────────── */
.iwa-cart-modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 18px 22px 22px;
    /* Fond beige neutre (kraft de ticket) — independant de --iwa-bg pour que
       les decoupes du ticket restent toujours visibles, meme si le theme
       admin definit un fond blanc. */
    background: #efeae3;
    -webkit-overflow-scrolling: touch;
    display: flex; flex-direction: column;
    /* Centre verticalement le ticket + footer dans la modale ;
       si le contenu est plus haut que la zone visible, le scroll reprend
       depuis le haut (margin: auto + min-height: min-content). */
    justify-content: center;
}
.iwa-cart-modal-body > .iwa-cart-modal-ticket { margin-top: auto; }
.iwa-cart-modal-body > .iwa-cart-modal-footer { margin-bottom: auto; }

/* Ticket : carte blanche avec bords sup. + inf. déchirés (mask scallops). */
.iwa-cart-modal-ticket {
    background: #fff;
    padding: 28px 22px 22px;
    box-shadow: 0 2px 6px rgba(0,0,0,.06);
    position: relative;
    /* Découpes : 12 pts demi-disques en haut et en bas (transparence pour laisser voir le beige). */
    --iwa-tk-tile: 16px;
    --iwa-tk-r: 8px;
    -webkit-mask:
        radial-gradient(circle at var(--iwa-tk-r) 0,        transparent 7px, #000 7.5px) 0 0     / var(--iwa-tk-tile) 14px repeat-x,
        radial-gradient(circle at var(--iwa-tk-r) 14px,     transparent 7px, #000 7.5px) 0 100% / var(--iwa-tk-tile) 14px repeat-x,
        linear-gradient(#000, #000) 0 14px / 100% calc(100% - 28px) no-repeat;
            mask:
        radial-gradient(circle at var(--iwa-tk-r) 0,        transparent 7px, #000 7.5px) 0 0     / var(--iwa-tk-tile) 14px repeat-x,
        radial-gradient(circle at var(--iwa-tk-r) 14px,     transparent 7px, #000 7.5px) 0 100% / var(--iwa-tk-tile) 14px repeat-x,
        linear-gradient(#000, #000) 0 14px / 100% calc(100% - 28px) no-repeat;
}

/* Mode (SUR PLACE / À EMPORTER) centré + bouton Changer dessous — hors ticket */
.iwa-cart-modal-mode {
    display: flex; flex-direction: column; align-items: center;
    gap: 8px;
    padding: 4px 0 18px;
    background: transparent;
    flex-shrink: 0;
}
.iwa-cart-modal-mode-label {
    font-size: 22px; font-weight: 800; letter-spacing: 1px;
    text-transform: uppercase;
    text-align: center;
    color: var(--iwa-modal-title, var(--iwa-text, #1a1a1a));
}
.iwa-cart-modal-mode-change {
    border: 1px solid var(--iwa-accent, #e91e90);
    background: transparent;
    color: var(--iwa-accent, #e91e90);
    font-weight: 700; font-size: 13px;
    padding: 4px 18px;
    border-radius: 999px;
    cursor: pointer;
}
.iwa-cart-modal-mode-change:active { background: var(--iwa-accent, #e91e90); color: #fff; }

/* Liste articles dans le ticket */
.iwa-cart-modal-items {
    padding: 0;
}
.iwa-cart-modal-item {
    padding: 12px 0;
    border-bottom: 1px dashed #e6e1d8;
    position: relative;
}
.iwa-cart-modal-item:last-child { border-bottom: 0; }
.iwa-cart-modal-item-head {
    display: flex; align-items: center; gap: 10px;
}
.iwa-cart-modal-item-qty-label {
    font-size: 18px; font-weight: 800;
    color: #111;
    min-width: 32px;
    flex-shrink: 0;
}
.iwa-cart-modal-item-name-wrap { flex: 1 1 auto; min-width: 0; }
.iwa-cart-modal-item-name {
    font-size: 17px; font-weight: 800;
    text-transform: uppercase;
    line-height: 1.2;
    color: var(--iwa-modal-title, var(--iwa-text, #1a1a1a));
}
.iwa-cart-modal-item-controls {
    display: inline-flex; align-items: center; gap: 6px;
    flex-shrink: 0;
}
.iwa-cart-modal-qty-btn {
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 0; background: var(--iwa-accent, #e91e90); color: #fff;
    font-size: 18px; font-weight: 700; line-height: 1;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.iwa-cart-modal-qty-btn:active { transform: scale(.9); }
.iwa-cart-modal-qty-count { min-width: 22px; text-align: center; font-weight: 700; font-size: 16px; color: #111; }

/* Add-ons (extras PEWC) : indentés sous le produit parent */
.iwa-cart-modal-item-addons {
    list-style: none;
    margin: 6px 0 0;
    padding: 0 0 0 42px; /* indent = largeur « xN » + gap */
}
.iwa-cart-modal-item-addon {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 12px;
    font-size: 14px; color: #555; line-height: 1.5;
}
.iwa-cart-modal-item-addon-name { flex: 1 1 auto; min-width: 0; }
.iwa-cart-modal-item-addon-price { flex-shrink: 0; font-weight: 600; color: #777; }

/* Produits enfants PEWC (add-ons) — indentés sous le parent */
.iwa-cart-modal-item-children {
    margin: 6px 0 0;
    padding-left: 42px;
}
.iwa-cart-modal-item-child {
    display: flex; align-items: baseline; gap: 8px;
    padding: 4px 0;
    font-size: 14px; color: #333;
}
.iwa-cart-modal-item-child-arrow { color: #999; flex-shrink: 0; }
.iwa-cart-modal-item-child-qty { font-weight: 700; color: #555; flex-shrink: 0; min-width: 28px; }
.iwa-cart-modal-item-child-name { flex: 1 1 auto; min-width: 0; }
.iwa-cart-modal-item-child-price { flex-shrink: 0; font-weight: 600; color: #555; }

.iwa-cart-modal-item-line-price {
    text-align: right;
    margin-top: 6px;
    padding-left: 42px;
    font-size: 14px; font-weight: 700;
    color: #111;
}

/* Bloc totaux dans le ticket */
.iwa-cart-modal-totals {
    padding: 4px 0 0;
}
.iwa-cart-modal-total-items-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 8px 0;
    font-size: 15px; font-weight: 600;
    color: #555;
    border-top: 1px dashed #d8d2c5;
}
.iwa-cart-modal-total-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 14px 0 0;
    border-top: 2px solid #111;
    margin-top: 6px;
    font-size: 18px; font-weight: 800;
    text-transform: uppercase;
    color: var(--iwa-modal-title, var(--iwa-text, #1a1a1a));
}
.iwa-cart-modal-total-row span:last-child { font-size: 22px; color: var(--iwa-modal-title, var(--iwa-text, #1a1a1a)); }

.iwa-cart-modal-empty {
    text-align: center; padding: 40px 12px;
    color: #888;
}
.iwa-cart-modal-empty-icon { font-size: 64px; margin-bottom: 12px; }

.iwa-cart-modal-footer {
    margin-top: 100px; /* VALIDER à 100px sous le bas du ticket */
    padding: 0;
    flex-shrink: 0;
    background: transparent;
}

.iwa-cart-modal-validate {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%;
    padding: 18px 22px;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    text-decoration: none;
    border-radius: 14px;
    font-size: 18px; font-weight: 800; letter-spacing: 1px;
    text-transform: uppercase;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
    transition: transform .15s ease, box-shadow .2s ease;
}
.iwa-cart-modal-validate:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.24); }
.iwa-cart-modal-validate:active { transform: translateY(0); }
.iwa-cart-modal-validate-amt { font-size: 18px; }

.iwa-cart-modal-abandon {
    display: block; width: 100%;
    margin-top: 12px;
    padding: 14px 22px;
    background: transparent; color: #999;
    border: 1px solid #ddd; border-radius: 14px;
    font-size: 14px; font-weight: 700; letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
}
.iwa-cart-modal-abandon:active { background: #f5f5f5; color: #555; }

/* Sous-modale upsell « ET AVEC ÇA ? » 50% gauche */
.iwa-cart-upsell {
    position: absolute; top: 0; left: 0; bottom: 0;
    width: 50%;
    display: flex; align-items: stretch; justify-content: center;
    pointer-events: none;
}
.iwa-cart-upsell[hidden] { display: none !important; }
.iwa-cart-upsell-inner {
    width: 100%; max-width: 720px;
    background: #fff;
    margin: 24px;
    border-radius: 24px;
    box-shadow: 0 12px 40px rgba(0,0,0,.3);
    transform: translateX(-30px); opacity: 0;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
    pointer-events: auto;
    display: flex; flex-direction: column;
    overflow: hidden;
}
.iwa-cart-upsell.is-open .iwa-cart-upsell-inner { transform: translateX(0); opacity: 1; }
.iwa-cart-upsell-header {
    position: relative;
    padding: 20px 24px;
    border-bottom: 1px solid #f0f0f0;
}
.iwa-cart-upsell-title {
    margin: 0; font-size: 22px; font-weight: 800; letter-spacing: 1px;
    text-align: center;
}
.iwa-cart-upsell-close {
    position: absolute;
    top: 50%; right: 16px;
    transform: translateY(-50%);
    width: 40px; height: 40px;
    border-radius: 50%;
    border: 0; background: #f1f1f1;
    font-size: 26px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.iwa-cart-upsell-close:active { background: #e0e0e0; }
.iwa-cart-upsell-list {
    flex: 1 1 auto; overflow-y: auto;
    padding: 16px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.iwa-cart-upsell-item {
    background: #fafafa; border-radius: 14px;
    padding: 14px;
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    text-align: center;
    position: relative;
}
.iwa-cart-upsell-img {
    width: 100%; aspect-ratio: 1/1;
    object-fit: cover; border-radius: 10px;
}
.iwa-cart-upsell-name { font-size: 14px; font-weight: 700; line-height: 1.25; }
.iwa-cart-upsell-price { font-size: 14px; font-weight: 800; color: var(--iwa-accent, #e91e90); }
.iwa-cart-upsell-add {
    position: absolute; top: 8px; right: 8px;
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 0; background: var(--iwa-accent, #e91e90); color: #fff;
    font-size: 22px; font-weight: 700; line-height: 1;
    cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: 0 3px 10px rgba(233,30,144,.4);
}
.iwa-cart-upsell-add:active { transform: scale(.9); }
.iwa-cart-upsell-continue {
    margin: 12px 16px 18px;
    padding: 14px 22px;
    background: #111; color: #fff;
    border: 0; border-radius: 14px;
    font-size: 15px; font-weight: 800; letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
}

/* Empêche le scroll du fond quand la modale est ouverte */
body.iwa-has-cart-modal { overflow: hidden; }

/* ── Modale de confirmation (centrée) ─────────────────────────────────────── */
.iwa-cart-confirm {
    position: fixed; inset: 0;
    z-index: 100100;
    display: flex; align-items: center; justify-content: center;
}
.iwa-cart-confirm[hidden] { display: none; }
.iwa-cart-confirm-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,.55);
}
.iwa-cart-confirm-box {
    position: relative;
    background: #fff;
    border-radius: 14px;
    padding: 28px 28px 20px;
    width: min(420px, 92vw);
    box-shadow: 0 12px 40px rgba(0,0,0,.25);
    text-align: center;
}
.iwa-cart-confirm-text {
    margin: 0 0 22px;
    font-size: 17px; line-height: 1.4; color: #111;
}
.iwa-cart-confirm-actions {
    display: flex; gap: 12px; justify-content: center;
}
.iwa-cart-confirm-cancel,
.iwa-cart-confirm-ok {
    flex: 1 1 0;
    padding: 12px 18px;
    border: 0; border-radius: 999px;
    font-size: 14px; font-weight: 800; letter-spacing: .3px;
    text-transform: uppercase;
    cursor: pointer;
}
.iwa-cart-confirm-cancel {
    background: #eee; color: #333;
}
.iwa-cart-confirm-ok {
    background: var(--iwa-accent, #e91e90); color: #fff;
}
.iwa-cart-confirm-cancel:active { background: #ddd; }
.iwa-cart-confirm-ok:active     { filter: brightness(.92); }

body.iwa-k1 .iwa-cart-confirm-text,
body.iwa-visu1 .iwa-cart-confirm-text { font-size: 20px; }
body.iwa-k1 .iwa-cart-confirm-cancel,
body.iwa-k1 .iwa-cart-confirm-ok,
body.iwa-visu1 .iwa-cart-confirm-cancel,
body.iwa-visu1 .iwa-cart-confirm-ok { font-size: 16px; padding: 14px 22px; }

/* ── Modale "Une derniere tentation ?" ────────────────────────────────────── */
.iwa-temptation-modal {
    position: fixed; inset: 0;
    z-index: 100200;
    display: flex; align-items: center; justify-content: center;
}
.iwa-temptation-modal[hidden] { display: none; }
.iwa-temptation-modal.is-open .iwa-temptation-box { transform: scale(1); opacity: 1; }
.iwa-temptation-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,.6);
}
.iwa-temptation-box {
    position: relative;
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #1a1a1a);
    border-radius: 18px;
    padding: 36px 36px 28px;
    width: min(820px, 94vw);
    max-height: 92vh;
    overflow-y: auto;
    box-shadow: 0 16px 48px rgba(0,0,0,.32);
    text-align: center;
    transform: scale(.96);
    opacity: 0;
    transition: transform .25s ease, opacity .25s ease;
}
.iwa-temptation-close {
    position: absolute; top: 12px; right: 14px;
    width: 36px; height: 36px;
    border: 0;
    background: rgba(255,255,255,.15);
    border-radius: 50%;
    font-size: 28px; line-height: 1; color: var(--iwa-text, #1a1a1a); cursor: pointer;
}
.iwa-temptation-close:hover { background: rgba(255,255,255,.25); }
.iwa-temptation-title {
    margin: 0 0 8px;
    font-size: 28px; font-weight: 800; color: var(--iwa-text, #1a1a1a);
    letter-spacing: .3px;
}
.iwa-temptation-subtitle {
    margin: 0 0 24px;
    font-size: 17px; color: var(--iwa-text, #1a1a1a); font-style: italic;
    opacity: .9;
}
.iwa-temptation-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 0 0 28px;
}
.iwa-temptation-card {
    position: relative;
    background: var(--iwa-bg-alt, #fafafa);
    border: 1px solid var(--iwa-border, #ececec);
    border-radius: 12px;
    padding: 12px 10px 14px;
    display: flex; flex-direction: column; align-items: stretch;
    text-align: center;
    cursor: pointer;
}
.iwa-temptation-card.is-confirmed {
    border-color: #2ecc71;
    box-shadow: 0 0 0 1px #2ecc71;
}
.iwa-temptation-card-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-size: cover; background-position: center;
    background-color: #f1f1f1;
    border-radius: 10px;
    margin-bottom: 10px;
}
.iwa-temptation-card-name {
    font-size: 14px; font-weight: 700; color: var(--iwa-text, #1a1a1a);
    line-height: 1.25;
    min-height: 36px;
    margin-bottom: 4px;
}
.iwa-temptation-card-price {
    font-size: 15px; font-weight: 800;
    color: var(--iwa-accent, #e91e90);
    margin-bottom: 36px; /* place le bouton + sans le chevaucher */
}
.iwa-temptation-add {
    position: absolute; bottom: 10px; left: 50%;
    transform: translateX(-50%);
    width: 36px; height: 36px;
    border: 0; border-radius: 50%;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%)); color: #fff;
    font-size: 22px; line-height: 1; font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(0,0,0,.18);
}
.iwa-temptation-add.is-added { background: #2ecc71; }
.iwa-temptation-card.is-confirmed .iwa-temptation-add { display: none; }
.iwa-temptation-added-note {
    display: none;
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 10px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #2ecc71;
    background: rgba(46, 204, 113, .12);
    color: #2e7d32;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.iwa-temptation-card.is-confirmed .iwa-temptation-added-note { display: block; }
.iwa-temptation-actions {
    display: flex; gap: 14px; justify-content: center;
}
.iwa-temptation-cancel,
.iwa-temptation-pay {
    flex: 1 1 0;
    max-width: 240px;
    padding: 14px 22px;
    border: 1px solid transparent; border-radius: 999px;
    font-size: 15px; font-weight: 800; letter-spacing: .4px;
    text-transform: uppercase; text-align: center;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex; align-items: center; justify-content: center;
}
.iwa-temptation-cancel {
    background: transparent;
    border-color: var(--iwa-text, #1a1a1a);
    color: var(--iwa-text, #1a1a1a);
}
.iwa-temptation-cancel:hover { filter: brightness(.96); }
.iwa-temptation-pay {
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
}
.iwa-temptation-pay:hover { filter: brightness(.95); color: #fff; }

/* Variantes XL pour kiosque vertical */
body.iwa-k1 .iwa-temptation-title,
body.iwa-visu1 .iwa-temptation-title { font-size: 34px; }
body.iwa-k1 .iwa-temptation-subtitle,
body.iwa-visu1 .iwa-temptation-subtitle { font-size: 20px; }
body.iwa-k1 .iwa-temptation-card-name,
body.iwa-visu1 .iwa-temptation-card-name { font-size: 16px; min-height: 40px; }
body.iwa-k1 .iwa-temptation-card-price,
body.iwa-visu1 .iwa-temptation-card-price { font-size: 18px; }
body.iwa-k1 .iwa-temptation-add,
body.iwa-visu1 .iwa-temptation-add { width: 44px; height: 44px; font-size: 26px; bottom: 12px; }
body.iwa-k1 .iwa-temptation-cancel,
body.iwa-k1 .iwa-temptation-pay,
body.iwa-visu1 .iwa-temptation-cancel,
body.iwa-visu1 .iwa-temptation-pay { font-size: 17px; padding: 16px 26px; }

@media (max-width: 600px) {
    .iwa-temptation-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Format kiosque vertical (V1) : taille XL ─────────────────────────────── */
body.iwa-k1 .iwa-cart-modal-title,
body.iwa-visu1 .iwa-cart-modal-title { font-size: 32px; }
body.iwa-k1 .iwa-cart-modal-item-name,
body.iwa-visu1 .iwa-cart-modal-item-name { font-size: 19px; }
body.iwa-k1 .iwa-cart-modal-item-line-price,
body.iwa-visu1 .iwa-cart-modal-item-line-price { font-size: 17px; }
body.iwa-k1 .iwa-cart-modal-item-qty-label,
body.iwa-visu1 .iwa-cart-modal-item-qty-label { font-size: 21px; min-width: 38px; }
body.iwa-k1 .iwa-cart-modal-mode-label,
body.iwa-visu1 .iwa-cart-modal-mode-label { font-size: 26px; }
body.iwa-k1 .iwa-cart-modal-total-row,
body.iwa-visu1 .iwa-cart-modal-total-row { font-size: 21px; }
body.iwa-k1 .iwa-cart-modal-total-row span:last-child,
body.iwa-visu1 .iwa-cart-modal-total-row span:last-child { font-size: 26px; }
body.iwa-k1 .iwa-cart-modal-item-addons,
body.iwa-visu1 .iwa-cart-modal-item-addons { padding-left: 50px; }
body.iwa-k1 .iwa-cart-modal-item-addon,
body.iwa-visu1 .iwa-cart-modal-item-addon { font-size: 16px; }
body.iwa-k1 .iwa-cart-modal-qty-btn,
body.iwa-visu1 .iwa-cart-modal-qty-btn { width: 42px; height: 42px; font-size: 22px; }
body.iwa-k1 .iwa-cart-modal-qty-count,
body.iwa-visu1 .iwa-cart-modal-qty-count { font-size: 20px; min-width: 32px; }
body.iwa-k1 .iwa-cart-modal-validate,
body.iwa-visu1 .iwa-cart-modal-validate { font-size: 22px; padding: 22px 24px; }
body.iwa-k1 .iwa-cart-modal-abandon,
body.iwa-visu1 .iwa-cart-modal-abandon { font-size: 16px; padding: 18px 22px; }
body.iwa-k1 .iwa-cart-upsell-title,
body.iwa-visu1 .iwa-cart-upsell-title { font-size: 28px; }
body.iwa-k1 .iwa-cart-upsell-name,
body.iwa-visu1 .iwa-cart-upsell-name { font-size: 16px; }
body.iwa-k1 .iwa-cart-upsell-price,
body.iwa-visu1 .iwa-cart-upsell-price { font-size: 17px; }
body.iwa-k1 .iwa-cart-upsell-add,
body.iwa-visu1 .iwa-cart-upsell-add { width: 48px; height: 48px; font-size: 28px; }

/* ── SUGGESTIONS (product detail) ───────────────────────────────── */
/* Pleine largeur viewport meme si le parent (.iwa-container) est limite. */
.iwa-suggestions {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    padding: 32px 32px 48px;
    box-sizing: border-box;
}
.iwa-suggestions-divider { height: 1px; background: var(--iwa-divider, #e5e5e5); margin: 0 0 28px; }
.iwa-suggestions-title { font-size: 36px; font-weight: 800; letter-spacing: 1.5px; margin: 0 0 8px; text-transform: uppercase; color: var(--iwa-suggestions-title, #222); text-align: center; }
.iwa-suggestions-subtitle { font-size: 24px; color: var(--iwa-suggestions-subtitle, #777); margin: 0 0 32px; text-align: center; font-style: italic; line-height: 1.4; }
.iwa-suggestions-row { position: relative; margin: 0; }
.iwa-suggestions-scroller { display: flex; gap: 70px; overflow-x: auto; scroll-behavior: smooth; padding: 8px 32px 18px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.iwa-suggestions-scroller::-webkit-scrollbar { height: 6px; }
.iwa-suggestions-scroller::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
.iwa-suggestion-card { flex: 0 0 310px; width: 310px; display: flex; flex-direction: column; align-items: stretch; text-decoration: none; color: inherit; background: var(--iwa-suggestion-card-bg, #fff); border: 1px solid var(--iwa-border, #eee); border-radius: 14px; overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.iwa-suggestion-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.10); }
.iwa-suggestion-card-img { display: block; width: 310px; height: 310px; background-size: cover; background-position: center; background-color: #f4f4f4; }
.iwa-suggestion-card-name { display: block; padding: 12px 14px 4px; font-size: 22px; font-weight: 700; line-height: 1.2; color: var(--iwa-product-name, #222); min-height: 56px; }
.iwa-suggestion-card-price { display: block; padding: 0 14px 14px; font-size: 22px; font-weight: 800; color: var(--iwa-accent, #e91e90); }
.iwa-suggestions-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 56px; height: 56px; border-radius: 50%; border: none; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.18); font-size: 32px; line-height: 1; cursor: pointer; color: #333; }
.iwa-suggestions-arrow--left  { left: 12px; }
.iwa-suggestions-arrow--right { right: 12px; }
.iwa-suggestions-arrow:hover { background: #f7f7f7; }
/* Mode embed (iframe overlay) : meme dimensions (310x310) */
body.iwa-embed .iwa-suggestions-title { font-size: 40px; }
body.iwa-embed .iwa-suggestions-subtitle { font-size: 26px; }

/* ════════════════════════════════════════════════════════════════════════
   KIOSQUE — PAGE PAIEMENT (modale plein-écran sous le header 168px)
   ════════════════════════════════════════════════════════════════════════ */

/* Garantit que le header 168px reste visible. La page paiement glisse en dessous. */
body.iwa-checkout-kiosk { background: var(--iwa-bg, #f4f4f5); }
body.iwa-checkout-kiosk .iwa-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    height: 168px;
}

/* Layout 2 colonnes : ticket à gauche, paiement à droite. */
.iwa-checkout-kiosk-page {
    padding: 24px;
    min-height: calc(100vh - 168px);
    background: var(--iwa-bg, #f4f4f5);
}
.iwa-checkout-kiosk-grid {
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr);
    gap: 24px;
    max-width: 1400px;
    margin: 0 auto;
}
.iwa-checkout-kiosk-ticket,
.iwa-checkout-kiosk-pay {
    background: var(--iwa-bg, #f4f4f5);
    border-radius: 18px;
    padding: 24px 24px 28px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
    min-height: 60vh;
    color: var(--iwa-text, #222);
}
.iwa-checkout-kiosk-h {
    margin: 0 0 18px;
    font-size: 22px;
    font-weight: 800;
    color: var(--iwa-text, #222);
    letter-spacing: .3px;
    text-transform: uppercase;
    border-bottom: 2px solid var(--iwa-accent, #e91e90);
    padding-bottom: 10px;
}

/* Ticket en lecture seule : on cache les boutons +/- et le footer (boutons VALIDER + ABANDONNER). */
.iwa-readonly-cart .iwa-cart-modal-qty-btn,
.iwa-readonly-cart .iwa-cart-modal-controls,
.iwa-readonly-cart .iwa-cart-modal-footer { display: none !important; }
.iwa-readonly-cart .iwa-cart-modal-body { padding: 0; max-height: none; overflow: visible; }
.iwa-readonly-cart .iwa-cart-modal-item-qty-label { font-weight: 700; color: var(--iwa-accent, #e91e90); }

/* Champ "Numéro de table" — visible et bien mis en évidence. */
.iwa-checkout-kiosk-table-field {
    background: var(--iwa-bg-alt, #fafafa);
    border: 2px solid var(--iwa-border, #e5e5e5);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 18px;
}
.iwa-checkout-kiosk-table-field label {
    display: block;
    margin-bottom: 8px;
    font-size: 16px;
    color: var(--iwa-text, #333);
}
.iwa-checkout-kiosk-table-field input[type="number"] {
    width: 100%;
    padding: 12px 14px;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    border: 2px solid var(--iwa-border, #ddd);
    border-radius: 10px;
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #222);
}
.iwa-checkout-kiosk-table-field input[type="number"]:focus {
    border-color: var(--iwa-accent, #e91e90);
    outline: none;
}
.iwa-checkout-kiosk-table-field .iwa-required { color: var(--iwa-accent, #e91e90); margin-left: 4px; }

/* État d'erreur (validation côté client : obligatoire, min, max) */
.iwa-checkout-kiosk-table-field.has-error {
    border-color: #c0392b;
    background: #fff5f4;
}
.iwa-checkout-kiosk-table-field.has-error input[type="number"] {
    border-color: #c0392b;
    background: #fff;
}
.iwa-ck-table-error {
    margin-top: 10px;
    padding: 10px 12px;
    background: #fdecea;
    border: 1px solid #f5c2bd;
    border-left: 4px solid #c0392b;
    border-radius: 8px;
    color: #8b1a10;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}
.iwa-ck-table-error[hidden] { display: none !important; }

/* WooCommerce checkout : on masque tout SAUF moyens de paiement + bouton commander. */
.iwa-checkout-kiosk-wc .woocommerce-billing-fields,
.iwa-checkout-kiosk-wc .woocommerce-shipping-fields,
.iwa-checkout-kiosk-wc .woocommerce-additional-fields,
.iwa-checkout-kiosk-wc #customer_details,
.iwa-checkout-kiosk-wc .woocommerce-form-login,
.iwa-checkout-kiosk-wc .woocommerce-form-login-toggle,
.iwa-checkout-kiosk-wc .woocommerce-form-coupon,
.iwa-checkout-kiosk-wc .woocommerce-form-coupon-toggle,
.iwa-checkout-kiosk-wc h3#order_review_heading {
    display: none !important;
}
.iwa-checkout-kiosk-wc .woocommerce-checkout-review-order { display: block; }
.iwa-checkout-kiosk-wc .woocommerce-checkout-review-order-table { display: none; } /* dejà affiché à gauche */
.iwa-checkout-kiosk-wc #payment {
    background: var(--iwa-bg, #fff);
    border-radius: 12px;
    border: 1px solid var(--iwa-border, #eee);
    padding: 18px;
    color: var(--iwa-text, #222);
}
.iwa-checkout-kiosk-wc #payment ul.payment_methods {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}
.iwa-checkout-kiosk-wc #payment ul.payment_methods li {
    border: 2px solid var(--iwa-border, #e5e5e5);
    border-radius: 10px;
    margin-bottom: 10px;
    padding: 14px 16px;
    background: var(--iwa-bg-alt, #fafafa);
    transition: border-color .15s, background .15s;
}
.iwa-checkout-kiosk-wc #payment ul.payment_methods li:has(input:checked),
.iwa-checkout-kiosk-wc #payment ul.payment_methods li.payment_method_active {
    border-color: var(--iwa-accent, #e91e90);
    background: var(--iwa-bg, #fff);
}
.iwa-checkout-kiosk-wc #payment ul.payment_methods label {
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    margin-left: 6px;
    color: var(--iwa-text, #222);
}
.iwa-checkout-kiosk-wc #place_order {
    width: 100%;
    padding: 16px 24px;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    margin-top: 18px;
    box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.iwa-checkout-kiosk-wc #place_order:hover { filter: brightness(.95); }

/* Variantes XL pour kiosque vertical */
body.iwa-k1 .iwa-checkout-kiosk-h,
body.iwa-visu1 .iwa-checkout-kiosk-h { font-size: 26px; }
body.iwa-k1 .iwa-checkout-kiosk-table-field input[type="number"],
body.iwa-visu1 .iwa-checkout-kiosk-table-field input[type="number"] { font-size: 28px; padding: 16px; }
body.iwa-k1 .iwa-checkout-kiosk-wc #place_order,
body.iwa-visu1 .iwa-checkout-kiosk-wc #place_order { font-size: 22px; padding: 20px; }

@media (max-width: 900px) {
    .iwa-checkout-kiosk-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════════════
   VIRTUAL KEYBOARD — Search Input Touch Keyboard for Kiosks
   ════════════════════════════════════════════════════════════════════════ */

#iwa-keyboard-container {
    position: fixed;
    bottom: var(--iwa-keyboard-bottom-offset, 200px);
    left: 50%;
    width: 90%;
    max-width: 90vw;
    background: var(--iwa-bg);
    border-top: 2px solid var(--iwa-border);
    padding: 16px 8px 16px 8px;
    z-index: 9998;
    
    opacity: 0;
    transform: translateX(-50%) translateY(100%);
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
    will-change: transform;
}

#iwa-keyboard-container.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

#iwa-keyboard-container .iwa-keyboard-row {
    display: flex;
    gap: 6px;
    margin-bottom: 6px;
    justify-content: center;
    flex-wrap: wrap;
}

.iwa-key {
    flex: 0 0 auto;
    width: 80px;
    height: 80px;
    background: #ffffff;
    color: #000000;
    border: 1px solid var(--iwa-border);
    border-radius: 8px;
    font-size: 24px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    transition: opacity 0.15s ease, background-color 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}

.iwa-key:active {
    opacity: 0.7;
    background-color: #f0f0f0;
}

/* Special keys (Backspace, Space) — wider */
.iwa-key.iwa-key-special {
    font-size: 22px;
    font-weight: 600;
}

.iwa-key.iwa-key-backspace {
    flex: 0 0 90px;
    width: 90px;
}

.iwa-key.iwa-key-space {
    flex: 1;
    max-width: 360px;
    width: 360px;
    font-size: 22px;
}

/* Caps lock toggle state */
.iwa-key.iwa-key-capslock.active {
    background: #e8e8e8;
    color: #000;
    box-shadow: inset 0 2px 4px rgba(0,0,0,.2);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    #iwa-keyboard-container {
        padding: 12px 6px;
    }
    
    .iwa-key {
        width: 90px;
        height: 90px;
        font-size: 26px;
    }
    
    .iwa-key.iwa-key-space {
        max-width: 400px;
        width: 400px;
    }
}

@media (max-width: 480px) {
    #iwa-keyboard-container {
        bottom: 100px;
        padding: 10px 4px;
    }
    
    .iwa-key {
        width: 76px;
        height: 76px;
        font-size: 22px;
    }
    
    .iwa-key.iwa-key-space {
        max-width: 300px;
        width: 300px;
    }
    
    .iwa-keyboard-row {
        gap: 4px;
        margin-bottom: 4px;
    }
}

/* ════════════════════════════════════════════════════════════════════════ */
   KIOSQUE - PAGE PAIEMENT (compléments : couleurs design, totaux, numpad)
   ════════════════════════════════════════════════════════════════════════ */

/* Titre des colonnes : reprend la couleur de texte du design admin (--iwa-text). */
.iwa-checkout-kiosk-h {
    color: var(--iwa-text, #222);
}

/* Détail des totaux HT / TVA / TTC */
.iwa-checkout-kiosk-totals {
    background: var(--iwa-bg-alt, #fafafa);
    border: 1px solid var(--iwa-border, #eee);
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 18px;
}
.iwa-checkout-kiosk-totals .iwa-ck-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 6px 0;
    font-size: 15px;
    color: var(--iwa-text, #333);
}
.iwa-checkout-kiosk-totals .iwa-ck-row-tax {
    color: var(--iwa-text-secondary, #777);
    font-size: 14px;
}
.iwa-checkout-kiosk-totals .iwa-ck-row-total {
    border-top: 1px solid var(--iwa-border, #e5e5e5);
    margin-top: 6px; padding-top: 12px;
    font-size: 20px; font-weight: 800;
    color: var(--iwa-text, #222);
}
.iwa-checkout-kiosk-totals .iwa-ck-row-total span:last-child {
    color: var(--iwa-accent, #e91e90);
}

/* Bouton "PAYER ET COMMANDER" : même style que .iwa-cart-modal-validate (accent). */
.iwa-checkout-kiosk-wc #place_order,
.iwa-checkout-kiosk-wc button#place_order,
.iwa-checkout-kiosk-wc .button#place_order {
    display: flex !important;
    align-items: center; justify-content: center;
    width: 100% !important;
    padding: 18px 22px !important;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%)) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 14px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.18) !important;
    cursor: pointer;
    margin-top: 18px;
    transition: transform .15s ease, box-shadow .2s ease;
}
.iwa-checkout-kiosk-wc #place_order:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0,0,0,.25) !important;
    filter: none;
}

/* ──────────────────────────────────────────────────────────────────────
   CLAVIER NUMÉRIQUE TACTILE (borne sans clavier physique)
   ────────────────────────────────────────────────────────────────────── */
.iwa-numpad {
    position: fixed; inset: 0; z-index: 100000;
    pointer-events: none;
}
.iwa-numpad[hidden] { display: none !important; }
.iwa-numpad.is-open { pointer-events: auto; }
.iwa-numpad-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,.5);
    opacity: 0; transition: opacity .2s ease;
}
.iwa-numpad.is-open .iwa-numpad-overlay { opacity: 1; }
.iwa-numpad-box {
    position: absolute;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%) scale(.92);
    opacity: 0;
    width: min(420px, 92vw);
    max-height: calc(100vh - 32px);
    overflow: auto;
    background: var(--iwa-bg, #fff);
    color: var(--iwa-text, #222);
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 24px 48px rgba(0,0,0,.35);
    transition: transform .25s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
.iwa-numpad.is-open .iwa-numpad-box { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.iwa-numpad-display {
    background: var(--iwa-bg-alt, #f4f4f5);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 14px;
    text-align: center;
}
.iwa-numpad-label {
    display: block;
    font-size: 12px; text-transform: uppercase;
    letter-spacing: 1px; color: var(--iwa-text-secondary, #999);
    margin-bottom: 4px;
}
.iwa-numpad-value {
    font-size: 36px; font-weight: 800;
    color: var(--iwa-text, #222);
    min-height: 44px; line-height: 1;
}
.iwa-numpad-keys {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.iwa-numpad-key {
    appearance: none;
    border: 2px solid var(--iwa-border, #e5e5e5);
    background: var(--iwa-bg, #fff);
    border-radius: 12px;
    padding: 18px 0;
    font-size: 26px; font-weight: 700;
    color: var(--iwa-text, #222);
    cursor: pointer;
    transition: background .12s, border-color .12s;
}
.iwa-numpad-key:active { background: #f0f0f0; border-color: #ccc; }
.iwa-numpad-key--del {
    background: var(--iwa-bg-alt, #f9f9f9);
    color: var(--iwa-text, #c0392b);
    font-size: 22px;
}
.iwa-numpad-key--ok {
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    border-color: transparent;
    font-size: 18px; letter-spacing: 1px;
}
.iwa-numpad-key--ok:active { filter: brightness(.95); background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%)); }

/* ════════════════════════════════════════════════════════════════════════
   KIOSQUE - FIX 2 : titres en couleur design, lignes HT/TVA, notices WC
   ════════════════════════════════════════════════════════════════════════ */

/* Titres (h2) : reprennent la couleur des noms d'articles (= couleur texte body) */
body.iwa-checkout-kiosk .iwa-checkout-kiosk-h {
    color: var(--iwa-text, #222) !important;
    font-family: var(--iwa-font-categories, var(--iwa-font, system-ui, sans-serif));
}

/* Lignes HT et TVA dans le ticket (cart-panel) — discrètes, alignées comme les autres rows */
.iwa-cart-modal-total-ht,
.iwa-cart-modal-total-tax {
    font-size: 14px;
    color: var(--iwa-text-secondary, #777);
}
.iwa-cart-modal-total-ht { padding-top: 10px; border-top: 1px dashed var(--iwa-border, #e5e5e5); margin-top: 6px; }

/* WC notices : rendu visible et bien positionné dans la colonne paiement */
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-NoticeGroup,
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-error,
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-notice,
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-message,
body.iwa-checkout-kiosk .woocommerce-notices-wrapper {
    display: block !important;
    background: #fff5f5 !important;
    border: 2px solid #e74c3c !important;
    border-radius: 12px !important;
    color: #c0392b !important;
    padding: 14px 18px !important;
    margin: 0 0 14px !important;
    font-weight: 600 !important;
    list-style: none !important;
}
body.iwa-checkout-kiosk .woocommerce-message {
    background: #f0fff4 !important;
    border-color: #27ae60 !important;
    color: #1e7e34 !important;
}
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-NoticeGroup ul,
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-error li {
    margin: 0; padding: 0; list-style: none;
}

/* ── FIX 3 : Cacher les .woocommerce-notices-wrapper VIDES (doublons WC) ── */
body.iwa-checkout-kiosk .woocommerce-notices-wrapper:empty,
body.iwa-checkout-kiosk .iwa-checkout-kiosk-wc .woocommerce-NoticeGroup:empty {
    display: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

/* ────────────────────────────────────────────────────────────
   IWA — Modale d'erreur de paiement (centrée, auto-close 5s)
   ──────────────────────────────────────────────────────────── */
.iwa-pay-error-modal[hidden] { display: none !important; }
.iwa-pay-error-modal {
    position: fixed; inset: 0;
    z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.iwa-pay-error-overlay {
    position: absolute; inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.iwa-pay-error-box {
    position: relative;
    background: var(--iwa-bg, #fff);
    border-radius: 18px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    width: 100%; max-width: 460px;
    padding: 36px 30px 24px;
    text-align: center;
    animation: iwaPayErrIn 220ms cubic-bezier(0.4, 1.4, 0.6, 1);
    overflow: hidden;
}
@keyframes iwaPayErrIn {
    0%   { opacity: 0; transform: scale(0.85) translateY(10px); }
    100% { opacity: 1; transform: scale(1)    translateY(0);    }
}
.iwa-pay-error-close {
    position: absolute; top: 10px; right: 14px;
    background: transparent; border: none;
    font-size: 30px; line-height: 1;
    color: var(--iwa-text-secondary, #888); cursor: pointer;
    padding: 4px 8px;
    transition: color 150ms;
}
.iwa-pay-error-close:hover { color: #222; }
.iwa-pay-error-icon {
    font-size: 56px;
    color: var(--iwa-accent, #e91e90);
    line-height: 1;
    margin-bottom: 12px;
}
.iwa-pay-error-close:hover { color: var(--iwa-text, #222); }
.iwa-pay-error-title {
    margin: 0 0 14px;
    font-size: 22px; font-weight: 700;
    color: var(--iwa-text, #222);
}
.iwa-pay-error-code {
    display: inline-block;
    margin: 0 0 10px;
    padding: 4px 12px;
    background: var(--iwa-bg-alt, #fbe9ef);
    color: var(--iwa-accent, #c2185b);
    border-radius: 999px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px; font-weight: 700;
    letter-spacing: 0.5px;
}
.iwa-pay-error-msg {
    margin: 0 0 22px;
    font-size: 16px; line-height: 1.5;
    color: var(--iwa-text, #444);
}
.iwa-pay-error-btn {
    display: inline-block;
    background: var(--iwa-gradient, linear-gradient(135deg, #e91e90 0%, #f5a623 100%));
    color: #fff;
    border: none; border-radius: 12px;
    padding: 14px 36px;
    font-size: 16px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.5px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(233, 30, 144, 0.3);
    transition: transform 120ms, box-shadow 120ms;
}
.iwa-pay-error-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(233, 30, 144, 0.4); }
.iwa-pay-error-btn:active { transform: translateY(0); }
.iwa-pay-error-progress {
    position: absolute; bottom: 0; left: 0; right: 0;
    height: 4px;
    background: rgba(0, 0, 0, 0.06);
}
.iwa-pay-error-progress > span {
    display: block; height: 100%;
    width: 100%;
    background: #e91e90;
    background: var(--iwa-accent, #e91e90);
}

/* Quand la modale d'erreur de paiement est ouverte, on masque toutes les
   notices WooCommerce visibles dans le checkout (la modale les remplace). */
body.iwa-pay-error-active .woocommerce-NoticeGroup,
body.iwa-pay-error-active .woocommerce-NoticeGroup-checkout,
body.iwa-pay-error-active .woocommerce-notices-wrapper,
body.iwa-pay-error-active ul.woocommerce-error,
body.iwa-pay-error-active .woocommerce-error,
body.iwa-pay-error-active .woocommerce-message,
body.iwa-pay-error-active .woocommerce-info {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* ────────────────────────────────────────────────────────────
   IWA — Page « Commande confirmée » : agrandit tous les textes x2
   ──────────────────────────────────────────────────────────── */
.iwa-page-confirmed .iwa-confirmed-title         { font-size: 44px !important; line-height: 1.2 !important; margin: 0 0 32px !important; }
.iwa-page-confirmed .iwa-confirmed-subtitle      { font-size: 30px !important; line-height: 1.5 !important; margin: 0 0 48px !important; }
.iwa-page-confirmed .iwa-confirmed-btn           { font-size: 30px !important; padding: 24px 32px !important; max-width: 560px !important; gap: 18px !important; border-radius: 18px !important; margin: 0 auto 20px !important; }
.iwa-page-confirmed .iwa-confirmed-btn svg       { width: 36px !important; height: 36px !important; }
.iwa-page-confirmed .iwa-confirmed-footer-text   { font-size: 26px !important; max-width: 560px !important; margin-top: 32px !important; }

/* Header sur la page de confirmation */
body.woocommerce-order-received .iwa-header,
.iwa-page-confirmed ~ * .iwa-header {}
.iwa-page-confirmed .iwa-header-title,
body.woocommerce-order-received .iwa-header-title { font-size: 36px !important; }

/* Bouton sticky bas (si présent) */
.iwa-confirmed-bottom .iwa-btn,
.iwa-confirmed-bottom button,
.iwa-confirmed-bottom a { font-size: 32px !important; padding: 24px 32px !important; }

/* Group / context texts éventuels */
.iwa-page-confirmed p,
.iwa-page-confirmed span,
.iwa-page-confirmed strong { font-size: inherit; }

    min-height: calc(100dvh - 56px);
   IWA — Page « Commande confirmée » : QR-code + animation print
   ──────────────────────────────────────────────────────────── */
.iwa-confirmed-qr {
    margin: 30px auto 36px;
    text-align: center;
    max-width: 480px;
}
.iwa-confirmed-qr-title {
    margin: 0 0 8px;
    font-size: 32px;
    font-weight: 700;
    color: var(--iwa-text);
}
.iwa-confirmed-qr-help {
    margin: 0 0 18px;
    font-size: 22px;
    color: var(--iwa-text-secondary);
}
.iwa-confirmed-qr-box {
    display: inline-block;
    padding: 18px;
    background: #fff;
    border: 2px solid var(--iwa-border, #eee);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.iwa-confirmed-qr-box svg {
    display: block;
    width: 280px;
    height: 280px;
    max-width: 100%;
}

/* Animation d'impression */
.iwa-confirmed-print {
    margin: 32px auto 24px;
    text-align: center;
    max-width: 480px;
}
.iwa-confirmed-print-label {
    font-size: 24px;
    font-weight: 600;
    color: var(--iwa-text-secondary);
    margin: 0 0 16px;
    animation: iwaPrintBlink 1.4s ease-in-out infinite;
}
@keyframes iwaPrintBlink { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
.iwa-confirmed-print-gif {
    display: block;
    margin: 0 auto;
    max-width: 320px;
    width: 100%;
    height: auto;
}

/* Fallback CSS animation : imprimante avec ticket qui sort */
.iwa-print-anim {
    position: relative;
    width: 200px; height: 220px;
    margin: 0 auto;
}
.iwa-print-anim-printer {
    position: absolute; top: 70px; left: 0;
    width: 200px; height: 110px;
    background: #4b5563;
    border-radius: 14px 14px 18px 18px;
    box-shadow: inset 0 -10px 0 #374151, 0 6px 12px rgba(0,0,0,0.2);
}
.iwa-print-anim-printer::before {
    content: ''; position: absolute;
    top: 14px; left: 14px; right: 14px; height: 30px;
    background: #1f2937;
    border-radius: 6px;
}
.iwa-print-anim-printer::after {
    content: ''; position: absolute;
    bottom: 24px; left: 50%; transform: translateX(-50%);
    width: 140px; height: 6px;
    background: #111;
    border-radius: 3px;
    box-shadow: 0 0 0 2px #374151;
}
.iwa-print-anim-paper {
    position: absolute; top: 165px; left: 50%; transform: translateX(-50%);
    width: 130px; height: 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-top: none;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    animation: iwaPrintPaper 2.4s ease-in-out infinite;
    background-image: repeating-linear-gradient(180deg, transparent 0 6px, #d1d5db 6px 8px);
}
@keyframes iwaPrintPaper {
    0%   { height: 0; }
    50%  { height: 56px; }
    85%  { height: 56px; }
    100% { height: 0; }
}

/* IWA — Adjustments QR + reminder */
.iwa-confirmed-qr-box svg {
    width: 140px !important;
    height: 140px !important;
}
.iwa-confirmed-qr-box {
    padding: 12px;
    border-radius: 14px;
}
.iwa-confirmed-print-reminder {
    margin: 18px auto 0;
    font-size: 26px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--iwa-accent, #d97706);
    line-height: 1.25;
}

/* IWA — QR title/help refinements */
.iwa-confirmed-qr-title {
    color: var(--iwa-text) !important;
    font-family: var(--iwa-font-products);
}
.iwa-confirmed-qr-help {
    font-size: 28px !important;
    line-height: 1.3;
}

/* IWA — Reminder text x2 + ensure white text on bottom button */
.iwa-confirmed-print-reminder {
    font-size: 36px !important;
}
.iwa-confirmed-bottom .iwa-btn-primary,
.iwa-confirmed-bottom .iwa-btn-primary:hover,
.iwa-confirmed-bottom .iwa-btn-primary:focus,
.iwa-confirmed-bottom .iwa-btn-primary:visited {
    color: #fff !important;
}

/* ──────────────────────────────────────────────────────────────────────
   MODALE POURBOIRE (entre panier et paiement)
   ────────────────────────────────────────────────────────────────────── */
.iwa-tip-modal {
    position: fixed; inset: 0;
    z-index: 100300; /* au-dessus de la modale "tentation" (100200) */
    display: flex; align-items: center; justify-content: center;
}
.iwa-tip-modal[hidden] { display: none; }
.iwa-tip-modal-overlay {
    position: absolute; inset: 0;
    background: var(--iwa-modal-overlay, rgba(0,0,0,.6));
    opacity: 0;
    transition: opacity .2s ease;
}
.iwa-tip-modal.is-open .iwa-tip-modal-overlay { opacity: 1; }
.iwa-tip-modal-box {
    position: relative;
    background: var(--iwa-modal-bg, #fff);
    color: var(--iwa-modal-text, #1a1a1a);
    border-radius: 18px;
    padding: 28px 28px 24px;
    width: min(560px, 94vw);
    max-height: 92vh;
    overflow-y: auto;
    box-shadow: 0 24px 60px rgba(0,0,0,.35);
    text-align: center;
    transform: scale(.94);
    opacity: 0;
    transition: transform .25s ease, opacity .25s ease;
}
.iwa-tip-modal.is-open .iwa-tip-modal-box { transform: scale(1); opacity: 1; }
.iwa-tip-modal-close {
    position: absolute; top: 10px; right: 12px;
    width: 36px; height: 36px;
    border: 0; background: transparent;
    font-size: 28px; line-height: 1;
    color: #888; cursor: pointer;
}
.iwa-tip-modal-close:hover { color: #222; }
.iwa-tip-modal-icon {
    font-size: 44px;
    line-height: 1;
    margin-bottom: 8px;
}
.iwa-tip-modal-title {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 800;
    color: var(--iwa-modal-title, var(--iwa-text, #222));
}
.iwa-tip-modal-subtitle {
    margin: 0 0 18px;
    font-size: 14px;
    color: #666;
}
.iwa-tip-modal-section {
    margin-top: 10px;
}
.iwa-tip-modal-section--roundup {
    padding-bottom: 12px;
    margin-bottom: 4px;
    border-bottom: 1px dashed #e5e5e5;
}
.iwa-tip-modal-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    width: 100%;
}
/* Round-up : toujours sur UNE ligne, prend toute la largeur de la modale.
   1 proposition → 1 colonne pleine largeur. 2 propositions → 2 colonnes égales. */
.iwa-tip-modal-options--roundup {
    grid-template-columns: 1fr;
}
.iwa-tip-modal-options--roundup[data-count="2"] {
    grid-template-columns: 1fr 1fr;
}
/* Montants fixes : sur UNE ligne en dessous, colonnes égales selon le nombre. */
.iwa-tip-modal-options--amounts {
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    grid-template-columns: none;
}
.iwa-tip-modal-btn {
    appearance: none;
    border: 2px solid #e5e5e5;
    background: #fff;
    border-radius: 12px;
    padding: 14px 10px;
    font-size: 18px;
    font-weight: 700;
    color: var(--iwa-text, #222);
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .12s;
    line-height: 1.15;
}
.iwa-tip-modal-btn:hover { border-color: var(--iwa-accent, #e91e90); }
.iwa-tip-modal-btn:active { transform: scale(.97); }
.iwa-tip-modal-btn:disabled { opacity: .55; cursor: wait; }
.iwa-tip-modal-btn.is-loading {
    background: var(--iwa-accent, #e91e90);
    color: #fff;
    border-color: var(--iwa-accent, #e91e90);
}
.iwa-tip-modal-btn--roundup {
    display: flex;
    align-items: center;
    justify-content: center;
    border-style: dashed;
    border-color: var(--iwa-accent, #e91e90);
    background: rgba(233, 30, 144, 0.05);
    font-size: 18px;
    font-weight: 700;
}
.iwa-tip-modal-btn--roundup .amount,
.iwa-tip-modal-btn--roundup .woocommerce-Price-amount {
    font-weight: 800;
}
.iwa-tip-modal-roundup-total {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #555;
}
.iwa-tip-modal-roundup-total-label {
    font-weight: 500;
}
.iwa-tip-modal-roundup-total-value {
    font-weight: 800;
    font-size: 18px;
    color: var(--iwa-text, #222);
}
.iwa-tip-modal-actions {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}
.iwa-tip-modal-btn--none {
    width: 100%;
    background: #f6f6f7;
    border-color: #ddd;
    color: #555;
    font-size: 16px;
}
.iwa-tip-modal-btn--none:hover {
    background: #ececee;
    border-color: #ccc;
    color: #222;
}
