* { box-sizing: border-box; }
input[type='number'] { -moz-appearance: textfield; }
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 8px; }

/* Animations */
@keyframes slideTop   { 0% { opacity:0; transform:translateY(100px);  } 100% { opacity:1; transform:translateY(0); } }
@keyframes slideRight { 0% { opacity:0; transform:translateX(-100px); } 100% { opacity:1; transform:translateX(0); } }
@keyframes slideLeft  { 0% { opacity:0; transform:translateX(100px);  } 100% { opacity:1; transform:translateX(0); } }
.anim-slide-top   { animation: slideTop   0.45s ease forwards; }
.anim-slide-left  { animation: slideLeft  0.35s ease forwards; }
.anim-slide-right { animation: slideRight 0.35s ease forwards; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Radio buttons */
.input-radio input[type="radio"] { -webkit-appearance:none; appearance:none; width:18px; height:18px; border:2px solid #c9a800; border-radius:50%; background:transparent; display:inline-block; vertical-align:middle; position:relative; transition:box-shadow .12s ease, border-color .12s ease; flex-shrink:0; }
.input-radio input[type="radio"]::after { content:''; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) scale(0); width:9px; height:9px; border-radius:50%; background:#c9a800; transition:transform .12s ease; }
.input-radio input[type="radio"]:checked { border-color:#b45309; }
.input-radio input[type="radio"]:checked::after { transform:translate(-50%,-50%) scale(1); background:#b45309; }
.input-radio input[type="radio"]:focus { outline:none; box-shadow:0 0 0 4px rgba(201,168,0,0.12); }
button:focus, input:focus, select:focus, textarea:focus { outline: none; }
:focus-visible { outline: 3px solid #b45309; outline-offset: 2px; }

/* Overlay button hiding when dialog open */
.div-cart[aria-hidden="false"] ~ .div-button,
.div-checkout[aria-hidden="false"] ~ .div-button { opacity:0; visibility:hidden; pointer-events:none; transform:translateY(8px); transition:all .18s ease; }

/* Dialog show/hide via aria-hidden */
.div-cart[aria-hidden="true"],
.div-checkout[aria-hidden="true"] { display:none !important; }
.div-cart[aria-hidden="false"],
.div-checkout[aria-hidden="false"] { display:flex; }

/* Close-Button SVG sizing */
.close svg { width:18px; height:18px; display:block; }
.close svg path { fill:#000 !important; stroke:#000 !important; }

/* Plus/Minus SVG icons in cart */
.plus_icon, .minus_icon { height:20px; width:18px; position:unset; display:block; }
.remove_icon { position:relative; height:25px; width:25px; }


/* Extras panel — layout only (Styling via Tailwind direkt im JS) */
.div-extra { overflow:hidden !important; padding:0 !important; }
.div-extra-body { overflow-y:auto; max-height:calc(84vh - 70px); }

@media (max-width:767px) {
    .close svg { width:14px; height:14px; }
    .plus_icon, .minus_icon { height:14px; width:12px; }

    .div-extra-body { max-height:calc(84vh - 56px); }
    .div-input-checkbox { width:100% !important; }
}


/* Toast notifications */
@keyframes toastLife {
    0%   { opacity:0; transform:translateX(-50%) translateY(10px); }
    12%  { opacity:1; transform:translateX(-50%) translateY(0); }
    88%  { opacity:1; transform:translateX(-50%) translateY(0); }
    100% { opacity:0; transform:translateX(-50%) translateY(10px); }
}
.toast {
    position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
    z-index:9999; padding:10px 18px; border-radius:12px; max-width:90%;
    background:rgba(30,30,30,0.92); color:#fff;
    font-size:13px; line-height:1.4; text-align:center;
    pointer-events:none; white-space:pre-wrap;
    animation:toastLife 3.2s ease forwards;
}
