.iperinox-toast-region { display:grid; gap:12px; width:min(420px,calc(100vw - 32px)); position:fixed; right:20px; top:20px; z-index:1200; pointer-events:none; }
.iperinox-toast { --iperinox-notification-color:var(--iperinox-success); --iperinox-notification-bg:#f4fbf6; align-items:center; background:linear-gradient(135deg,#fff,var(--iperinox-notification-bg)); border:1px solid color-mix(in srgb,var(--iperinox-notification-color) 26%,#e8e8e8); border-radius:12px; box-shadow:0 12px 34px rgba(0,0,0,.1); color:var(--iperinox-text); display:grid; gap:14px; grid-template-columns:42px 1fr 44px; min-height:88px; padding:14px 8px 14px 16px; opacity:0; pointer-events:auto; transform:translateX(28px); transition:opacity 280ms ease-out,transform 280ms ease-out; will-change:opacity,transform; }
.iperinox-toast.is-visible { opacity:1; transform:translateX(0); }
.iperinox-toast.is-leaving { opacity:0; transform:translateX(22px); transition-duration:200ms; }
.iperinox-toast--error { --iperinox-notification-color:#e22f2f; --iperinox-notification-bg:#fff3f3; animation:iperinox-notification-shake .3s ease-out; }
.iperinox-toast--warning { --iperinox-notification-color:#f58a00; --iperinox-notification-bg:#fff8ed; }
.iperinox-toast--info { --iperinox-notification-color:#1478dc; --iperinox-notification-bg:#f1f7ff; }
.iperinox-toast--shipping,.iperinox-toast--coupon,.iperinox-toast--review { --iperinox-notification-color:#159447; --iperinox-notification-bg:#f2faf5; }
.iperinox-toast--discount { --iperinox-notification-color:#7d30d6; --iperinox-notification-bg:#faf5ff; }
.iperinox-toast--wishlist-added { --iperinox-notification-color:#00454a; --iperinox-notification-bg:#f0f8f8; }
.iperinox-toast--wishlist-removed { --iperinox-notification-color:#58616a; --iperinox-notification-bg:#f7f8f9; }
.iperinox-toast__icon { align-items:center; color:var(--iperinox-notification-color); display:flex; justify-content:center; }
.iperinox-toast__icon .iperinox-icon { height:32px; width:32px; stroke-width:2; }
.iperinox-toast__message { font-size:15px; font-weight:650; line-height:1.45; }
.iperinox-toast__close { align-items:center; background:transparent; border:0; color:var(--iperinox-notification-color); display:flex; justify-content:center; margin:0; min-height:44px; min-width:44px; padding:10px; }
.iperinox-toast__close .iperinox-icon { height:17px; width:17px; }
.iperinox-toast__close:focus-visible { outline:2px solid var(--iperinox-notification-color); outline-offset:-4px; }
.iperinox-modal { inset:0; position:fixed; z-index:1300; opacity:0; transition:opacity 220ms ease; }
.iperinox-modal.is-visible { opacity:1; }
.iperinox-modal__backdrop { background:rgba(8,20,22,.48); inset:0; position:absolute; backdrop-filter:blur(3px); }
.iperinox-modal__dialog { background:#fff; border:1px solid var(--iperinox-border); border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.16); left:50%; max-height:calc(100dvh - 32px); max-width:min(390px,calc(100vw - 32px)); overflow:auto; position:absolute; top:50%; transform:translate(-50%,calc(-50% + 18px)) scale(.98); transition:transform 280ms cubic-bezier(.22,.61,.36,1); width:100%; }
.iperinox-modal.is-visible .iperinox-modal__dialog { transform:translate(-50%,-50%) scale(1); }
.iperinox-modal__dialog header { align-items:center; display:flex; justify-content:flex-end; min-height:58px; padding:8px 10px; }
.iperinox-modal__title { clip:rect(0 0 0 0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.iperinox-modal__dialog header button { align-items:center; background:transparent; border:0; border-radius:999px; display:flex; justify-content:center; min-height:44px; min-width:44px; }
.iperinox-modal__dialog header button:focus-visible { outline:2px solid var(--iperinox-primary); outline-offset:2px; }
.iperinox-modal__content { padding:0 24px 24px; text-align:center; }
.iperinox-modal__status-icon { align-items:center; border:2px solid currentColor; border-radius:50%; color:var(--iperinox-success); display:inline-flex; height:72px; justify-content:center; margin:0 auto 22px; width:72px; }
.iperinox-modal__status-icon .iperinox-icon { height:38px; width:38px; }
.iperinox-modal--confirm .iperinox-modal__status-icon,.iperinox-modal--error .iperinox-modal__status-icon { color:var(--iperinox-danger); }
.iperinox-modal.is-visible:not(.iperinox-modal--error) .iperinox-modal__status-icon { animation:iperinox-notification-bounce .4s cubic-bezier(.22,.61,.36,1); }
.iperinox-modal.is-visible.iperinox-modal--error .iperinox-modal__dialog { animation:iperinox-notification-shake .3s ease-out; }
.iperinox-modal__message { font-size:18px; font-weight:700; line-height:1.5; margin:0 auto 30px; max-width:290px; }
.iperinox-modal__actions { display:grid; gap:12px; grid-template-columns:1fr; }
.iperinox-modal--confirm .iperinox-modal__actions { grid-template-columns:1fr 1fr; }
.iperinox-modal__action { align-items:center; background:#fff; border:1px solid #ccd3d5; border-radius:7px; color:var(--iperinox-text); display:flex; font-size:14px; font-weight:750; justify-content:center; min-height:50px; padding:10px 16px; text-decoration:none; text-transform:uppercase; }
.iperinox-modal__action--primary { background:var(--iperinox-primary); border-color:var(--iperinox-primary); color:#fff; order:-1; }
.iperinox-modal__action--danger { background:var(--iperinox-danger); border-color:var(--iperinox-danger); color:#fff; }
.iperinox-modal__action:hover { transform:translateY(-1px); }
.iperinox-modal__action:focus-visible { outline:2px solid var(--iperinox-primary); outline-offset:3px; }
@keyframes iperinox-notification-bounce { 0%{transform:scale(.72)} 55%{transform:scale(1.1)} 78%{transform:scale(.96)} 100%{transform:scale(1)} }
@keyframes iperinox-notification-shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-7px)} 50%{transform:translateX(7px)} 75%{transform:translateX(-4px)} }
.iperinox-accordion__trigger { align-items: center; background: transparent; border: 0; display: flex; justify-content: space-between; min-height: 48px; width: 100%; }
.iperinox-dropdown { position: relative; }
.iperinox-dropdown__menu { background: #fff; border: 1px solid var(--iperinox-border); border-radius: var(--iperinox-radius-md); box-shadow: var(--iperinox-shadow-md); min-width: 190px; padding: 8px; position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; }
.iperinox-quantity-stepper { border: 1px solid var(--iperinox-border); border-radius: var(--iperinox-radius-sm); display: inline-grid; grid-template-columns: 44px 52px 44px; min-height: 44px; }
.iperinox-quantity-stepper button { background: transparent; border: 0; min-height: 44px; }
.iperinox-quantity-stepper input { border: 0; min-width: 0; text-align: center; width: 52px; }
.iperinox-product-badge { background: var(--iperinox-primary); border-radius: 5px; color: #fff; display: inline-flex; font-size: .7rem; font-weight: 700; padding: 5px 8px; }
.iperinox-product-badge--sale { background: var(--iperinox-warning); }
.iperinox-product-badge--error,
.iperinox-product-badge--stock { background: var(--iperinox-danger); }
.iperinox-rating { align-items: center; color: var(--iperinox-text-muted); display: inline-flex; font-size: .75rem; gap: 7px; text-decoration: none; }
.iperinox-rating__stars { color: #c8ced0; display: inline-block; letter-spacing: .08em; position: relative; }
.iperinox-rating__stars::after { color: var(--iperinox-warning); content: "★★★★★"; left: 0; overflow: hidden; position: absolute; top: 0; white-space: nowrap; width: var(--iperinox-rating); }
.iperinox-skeleton { display: grid; gap: 10px; }
.iperinox-skeleton span { animation: iperinox-skeleton 1.4s ease-in-out infinite; background: linear-gradient(90deg,#eef1f1 25%,#fafbfb 50%,#eef1f1 75%); background-size: 200% 100%; border-radius: 5px; display: block; height: 16px; }
.iperinox-skeleton span:first-child { height: 160px; }
.iperinox-state { background: var(--iperinox-surface); border: 1px solid var(--iperinox-border); border-radius: var(--iperinox-radius-lg); padding: clamp(24px,5vw,48px); text-align: center; }
.iperinox-state h2 { margin-top: 0; }
.iperinox-state p { color: var(--iperinox-text-muted); margin-bottom: 0; }
.iperinox-state--error { background: #fff4f4; border-color: #f0caca; }
.iperinox-notice { border-radius: var(--iperinox-radius-sm); padding: 12px 14px; }
.iperinox-notice--success { background: #e9f7ef; color: var(--iperinox-success); }
.iperinox-notice--error { background: #fff0f0; color: var(--iperinox-danger); }
.iperinox-notice--info { background: var(--iperinox-primary-light); color: var(--iperinox-primary-dark); }
.iperinox-back-to-top { --iperinox-back-progress: 0deg; position: fixed; right: 32px; bottom: 32px; z-index: 160; display: flex; width: 56px; height: 56px; min-height: 0; isolation: isolate; align-items: center; justify-content: center; padding: 2px; border: 0; border-radius: 20px; color: #00454a; background: conic-gradient(from 0deg,#00454a var(--iperinox-back-progress),#e8e8e8 0); box-shadow: none; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(22px) scale(.92); transition: opacity 400ms cubic-bezier(.16,1,.3,1), visibility 400ms cubic-bezier(.16,1,.3,1), transform 450ms cubic-bezier(.16,1,.3,1); will-change: transform,opacity; }
.iperinox-back-to-top::before { position: absolute; z-index: -1; inset: 2px; border-radius: 18px; background: #fff; content: ""; transition: background-color 250ms ease; }
.iperinox-back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.iperinox-back-to-top:hover { color: #00454a; box-shadow: none; transform: translateY(-3px) scale(1.04); }
.iperinox-back-to-top:hover::before { background: #f4f5f7; }
.iperinox-back-to-top:active { transform: translateY(-1px) scale(.98); }
.iperinox-back-to-top:focus-visible { outline: 2px solid #00454a; outline-offset: 4px; }
.iperinox-back-to-top .iperinox-icon { width: 1.35rem; height: 1.35rem; color: #00454a; transform: rotate(90deg); }
.iperinox-back-to-top.is-visible .iperinox-icon { animation: iperinox-back-to-top-icon-in 550ms cubic-bezier(.16,1,.3,1) both; }

@keyframes iperinox-back-to-top-icon-in { 0% { opacity: 0; transform: translateY(7px) rotate(90deg); } 55% { opacity: 1; transform: translateY(-2px) rotate(90deg); } 100% { opacity: 1; transform: translateY(0) rotate(90deg); } }
@keyframes iperinox-skeleton { to { background-position: -200% 0; } }
@media (min-width:768px) and (max-width:1023px) { .iperinox-back-to-top { right: 24px; bottom: 24px; width: 54px; height: 54px; } }
@media (max-width:767px) { .iperinox-back-to-top { right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); width: 50px; height: 50px; border-radius: 18px; } .iperinox-back-to-top::before { border-radius: 16px; } body.iperinox-has-mobile-bottom-nav:not(.single-product) .iperinox-back-to-top { bottom: calc(98px + env(safe-area-inset-bottom)); } body.single-product.iperinox-sticky-cart-active .iperinox-back-to-top { bottom: calc(92px + env(safe-area-inset-bottom)); } .iperinox-toast-region { left: 16px; right: 16px; top: 12px; } }
@media (prefers-reduced-motion:reduce) { .iperinox-skeleton span { animation: none; } .iperinox-back-to-top { transition-duration: .01ms; } .iperinox-back-to-top.is-visible .iperinox-icon { animation: none; } }
@media (max-width:767px) {
  .iperinox-toast-region { bottom:calc(90px + env(safe-area-inset-bottom)); left:12px; right:12px; top:auto; width:auto; }
  body:not(.iperinox-has-mobile-bottom-nav) .iperinox-toast-region { bottom:calc(16px + env(safe-area-inset-bottom)); }
  .iperinox-toast { border-radius:12px; grid-template-columns:38px 1fr 44px; min-height:76px; padding:10px 6px 10px 12px; transform:translateY(26px); }
  .iperinox-toast.is-visible { transform:translateY(0); }
  .iperinox-toast.is-leaving { transform:translateY(20px); }
  .iperinox-toast__icon .iperinox-icon { height:28px; width:28px; }
  .iperinox-toast__message { font-size:14px; }
  .iperinox-modal__dialog { border-radius:20px 20px 0 0; bottom:0; left:0; max-height:calc(100dvh - env(safe-area-inset-top) - 20px); max-width:none; padding-bottom:env(safe-area-inset-bottom); top:auto; transform:translateY(24px); }
  .iperinox-modal.is-visible .iperinox-modal__dialog { transform:translateY(0); }
  .iperinox-modal__content { padding-inline:20px; }
  .iperinox-modal__message { font-size:17px; }
}
@media (prefers-reduced-motion:reduce) {
  .iperinox-toast,.iperinox-modal,.iperinox-modal__dialog { transition-duration:.01ms; }
  .iperinox-toast--error,.iperinox-modal.is-visible .iperinox-modal__status-icon,.iperinox-modal.is-visible.iperinox-modal--error .iperinox-modal__dialog { animation:none; }
}
.iperinox-shipping-progress { margin-top: 12px; }
.iperinox-shipping-progress p { margin: 0 0 12px; color: var(--iperinox-text-muted); }
.iperinox-shipping-progress__track { position: relative; height: 7px; margin-right: 22px; border-radius: 999px; background: #dfe5e6; }
.iperinox-shipping-progress__track > span { display: block; width: var(--iperinox-cart-progress,0%); height: 100%; border-radius: inherit; background: var(--iperinox-primary); }
.iperinox-shipping-progress__track > svg { position: absolute; top: 50%; left: min(var(--iperinox-cart-progress,0%),100%); width: 30px; height: 30px; padding: 4px; color: var(--iperinox-primary); background: #fff; transform: translate(-42%,-50%); }
.iperinox-shipping-progress__values { display: flex; justify-content: space-between; margin-top: 8px; font-size: 13px; color: var(--iperinox-text-muted); }

