/* ============================================================
   NEXORA MEDITECH — Store, account & motion layer
   Builds on styles.css (same tokens). Cart, checkout, auth,
   account, quick view, mini cart and animation effects.
   ============================================================ */

/* ---------- Page entrance + global motion ---------- */
@keyframes pageIn{from{opacity:0}to{opacity:1}}
body{animation:pageIn .55s ease both}
body.no-scroll{overflow:hidden}
main{display:block;min-height:50vh}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:linear-gradient(90deg,var(--teal),var(--gold));transform:scaleX(0);transform-origin:left;pointer-events:none}

.to-top{position:fixed;right:22px;bottom:22px;z-index:65;width:46px;height:46px;border-radius:50%;background:var(--ocean);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-md);opacity:0;transform:translateY(14px);pointer-events:none;transition:.35s}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--gold)}

/* button sheen */
.btn-primary::after,.btn-gold::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-20deg);transition:left .65s ease;pointer-events:none}
.btn-primary:hover::after,.btn-gold:hover::after{left:130%}
.btn:active{transform:translateY(0) scale(.97)}
.btn.is-added{background:var(--gold)}
.btn-lg{padding:17px 34px;font-size:1rem}
.btn-ghost.danger,.link-btn.danger{color:#b4453a}
.link-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-head);font-weight:700;font-size:.84rem;color:var(--teal);transition:.25s;padding:4px 0}
.link-btn:hover{color:var(--gold)}
.link-btn.active{color:var(--gold)}
.link-btn.active svg{fill:currentColor}

/* hero headline words */
@keyframes wordIn{from{opacity:0;transform:translateY(.55em) rotate(2deg)}to{opacity:1;transform:none}}
.word{display:inline-block;opacity:0;animation:wordIn .75s cubic-bezier(.2,.7,.3,1) forwards}
.hero-copy .eyebrow,.hero-copy .lead,.hero-cta,.hero-stats{opacity:0;animation:fadeUp .8s ease forwards}
.hero-copy .lead{animation-delay:.45s}.hero-cta{animation-delay:.6s}.hero-stats{animation-delay:.75s}
.hero-visual{animation:heroIn 1.1s cubic-bezier(.2,.7,.3,1) both}
@keyframes heroIn{from{opacity:0;transform:translateX(40px) scale(.96)}to{opacity:1;transform:none}}
.hero-img{transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.hero-float{transition:margin .5s cubic-bezier(.2,.7,.3,1)}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.28) 50%,transparent 60%);transform:translateX(-100%);animation:sweep 6s ease-in-out 1.4s infinite}
@keyframes sweep{0%,60%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* brand marquee */
.marquee{overflow:hidden;padding:26px 0;background:var(--porcelain);border-bottom:1px solid var(--border);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;gap:56px;width:max-content;animation:marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-family:var(--font-head);font-weight:800;font-size:1.02rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-400);white-space:nowrap;opacity:.7}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Header additions ---------- */
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,var(--teal),var(--ocean));color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:.72rem;letter-spacing:.04em;box-shadow:0 0 0 2px var(--gold-soft)}
.avatar-lg{width:48px;height:48px;font-size:.95rem;flex:none}
@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.28)}65%{transform:scale(.92)}100%{transform:scale(1)}}
.icon-btn.bump{animation:bump .5s ease}
.icon-btn.bump .cart-count{animation:bump .5s ease .1s}
.search-bar-inner .autocomplete{left:24px;right:24px}
.sticky-cta [data-cart-count]{background:rgba(255,255,255,.22);border-radius:999px;padding:1px 8px;font-size:.74rem}

/* ---------- Mini cart ---------- */
.mini-cart{width:min(420px,94vw);display:flex;flex-direction:column;padding:22px 22px 0}
.mini-cart .drawer-head h3{margin:0}
#miniCartBody{display:flex;flex-direction:column;flex:1;min-height:0}
.mc-list{flex:1;overflow-y:auto;margin:0 -6px;padding:0 6px}
.mc-item{display:grid;grid-template-columns:68px 1fr auto;gap:13px;padding:14px 0;border-bottom:1px solid var(--border-soft);animation:fadeUp .35s ease both}
.mc-img{aspect-ratio:1/1;border-radius:10px;background:var(--blue-soft);padding:6px;display:grid;place-items:center}
.mc-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.mc-info a{font-family:var(--font-head);font-weight:700;font-size:.86rem;color:var(--ocean);line-height:1.3;display:block;margin-bottom:9px}
.mc-info a:hover{color:var(--teal)}
.mc-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mc-row b{font-family:var(--font-head);color:var(--teal);font-size:.9rem}
.mc-remove{width:28px;height:28px;border-radius:8px;color:var(--slate-400);display:grid;place-items:center;transition:.2s}
.mc-remove:hover{background:#fbeceb;color:#b4453a}
.mc-foot{padding:16px 0 22px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);background:var(--ivory)}
.mc-foot .form-note{margin:0}
.qty-sm button{width:28px;height:28px;font-size:1rem}
.qty-sm input{width:34px;font-size:.82rem}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty input{-moz-appearance:textfield;appearance:textfield;color:var(--ocean)}

/* ---------- Product card ---------- */
.prod-card{transform-style:preserve-3d;will-change:transform}
.prod-card.tilting{transition:transform .12s ease-out,box-shadow .4s,border-color .4s;transition-delay:0s!important}
.prod-media{padding:0}
.prod-media-link{position:absolute;inset:0;display:grid;place-items:center;padding:18px}
.prod-media::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-110%);transition:transform .8s ease;pointer-events:none}
.prod-card:hover .prod-media::after{transform:translateX(110%)}
.pa-btn.active svg{fill:currentColor}
.prod-name{font-size:1.02rem;margin-bottom:5px;line-height:1.3}
.prod-name a:hover{color:var(--teal)}
.prod-sub{font-size:.78rem;color:var(--slate-400);font-family:var(--font-head);font-weight:600;margin-bottom:11px}
.prod-foot{justify-content:space-between}
.prod-foot .btn{flex:none}
.prod-price{display:flex;flex-direction:column;line-height:1.2}
.prod-price b{font-size:1.08rem;font-weight:800;color:var(--ocean)}
.prod-price small{font-size:.66rem;color:var(--slate-400);font-weight:600;letter-spacing:.03em}
@media(hover:none){.prod-actions-top{opacity:1;transform:none}}

.fly-ghost{position:fixed;z-index:300;object-fit:contain;border-radius:16px;background:#fff;box-shadow:var(--shadow-lg);pointer-events:none;transition:transform .75s cubic-bezier(.5,-.2,.3,1),opacity .75s ease}

/* slider */
.slider{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 4px 26px;margin:0 -4px;scrollbar-width:none}
.slider::-webkit-scrollbar{display:none}
.slider>*{flex:0 0 clamp(240px,24vw,290px);scroll-snap-align:start}

/* ---------- Modal / quick view ---------- */
.modal-bg{position:fixed;inset:0;z-index:150;background:rgba(18,63,82,.5);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .3s}
.modal-bg.show{opacity:1}
.modal{background:var(--porcelain);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;position:relative;transform:translateY(24px) scale(.96);transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.modal-bg.show .modal{transform:none}
.modal-lg{width:min(940px,100%)}
.modal-close{position:absolute;top:14px;right:14px;z-index:3;background:rgba(255,255,255,.9);border-color:var(--border)}
.qv{display:grid;grid-template-columns:1fr 1.05fr}
.qv-media{background:linear-gradient(160deg,#fbfdfc,var(--blue-soft));display:grid;place-items:center;padding:34px;border-radius:var(--radius-lg) 0 0 var(--radius-lg);min-height:340px}
.qv-media img{max-height:360px;object-fit:contain;mix-blend-mode:multiply}
.qv-info{padding:38px 34px 32px}
.qv-info h3{font-size:1.45rem;margin-bottom:6px}
.qv-desc{font-size:.9rem;color:var(--slate-600);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.qv-specs td{padding:9px 14px;font-size:.8rem}
.qv-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}

/* ---------- Catalogue filters ---------- */
.filters-close{display:none;position:absolute;top:18px;right:18px}
.filter-scroll{max-height:268px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}
a.filter-opt.active{color:var(--teal);font-weight:700}
a.filter-opt.active::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none}
.price-range{display:flex;align-items:center;gap:7px}
.price-range input{width:100%;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:.84rem;outline:none;background:var(--ivory)}
.price-range input:focus{border-color:var(--teal)}
.ct-right{display:flex;gap:10px;align-items:center}
.page-hero-slim{padding:22px 0}
.page-hero-slim .breadcrumb{margin:0}
@media(max-width:1080px){.filters-close{display:grid}}

/* ---------- Product detail ---------- */
.pd-main img{transition:transform .25s ease,opacity .16s ease}
.pd-main img.swap{opacity:0}
.pd-main{cursor:zoom-in}
.pd-price{display:flex;align-items:baseline;gap:10px;margin:4px 0 14px}
.pd-price b{font-family:var(--font-head);font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:800;color:var(--teal);letter-spacing:-.02em}
.pd-price small{font-size:.78rem;color:var(--slate-400);font-weight:600}
.pd-buy{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.pd-buy .qty button{width:42px;height:48px}
.pd-buy .qty input{height:48px}
.pd-links{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:26px}
.pill-list{display:flex;flex-wrap:wrap;gap:10px}
.feat-card{display:flex;gap:14px;align-items:center}
.feat-card .fc-ic{margin:0;flex:none}
.feat-card b{margin:0}
.demo-note{display:flex;gap:8px;align-items:flex-start;font-size:.76rem;color:var(--slate-400);margin:12px 0 14px;line-height:1.5}
.demo-note svg{flex:none;color:var(--gold);margin-top:2px}

/* ---------- Cart ---------- */
.cart-layout{display:grid;grid-template-columns:1fr 390px;gap:34px;align-items:start}
.cart-item{transition:.3s;animation:fadeUp .4s ease both}
.cart-item:hover{border-color:var(--gold-soft);box-shadow:var(--shadow-sm)}
.cart-item h4 a:hover{color:var(--teal)}
.ci-unit{font-size:.8rem}
.ci-actions{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.ci-line{font-family:var(--font-head);font-size:1.02rem;color:var(--ocean)}
.cart-under{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:8px}
.ship-meter{background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}
.ship-meter p{display:flex;gap:9px;align-items:center;font-size:.86rem;margin:0 0 10px}
.ship-meter svg{color:var(--teal);flex:none}
.ship-bar{height:6px;border-radius:6px;background:var(--blue-soft);overflow:hidden}
.ship-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .8s cubic-bezier(.2,.7,.3,1)}
.cs-discount{color:#2f7d55;font-weight:600}
.coupon{display:flex;gap:8px;margin-top:16px}
.coupon input{flex:1;min-width:0;padding:10px 14px;border:1px dashed var(--border);border-radius:10px;font-family:var(--font-head);font-weight:600;font-size:.84rem;text-transform:uppercase;letter-spacing:.06em;outline:none;background:var(--ivory)}
.coupon input:focus{border-color:var(--teal);border-style:solid}
.coupon-ok{display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:#2f7d55;margin-top:10px}
.cart-summary .pd-trust{margin-top:16px;padding-top:16px}
.cart-summary>.link-btn{margin-top:10px}

/* order summary list (checkout, success, account) */
.os-list{margin-bottom:8px}
.os-item{display:grid;grid-template-columns:54px 1fr auto;gap:13px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border-soft);font-size:.85rem}
.os-item b{font-family:var(--font-head);color:var(--ocean);white-space:nowrap}
.os-item a:hover{color:var(--teal)}
.os-item small{display:block;color:var(--slate-400);font-size:.76rem}
.os-img{position:relative;width:54px;height:54px;border-radius:10px;background:var(--blue-soft);padding:5px;display:grid;place-items:center}
.os-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.os-img i{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--ocean);color:#fff;font-style:normal;font-size:.66rem;font-weight:800;display:grid;place-items:center;font-family:var(--font-head)}

/* ---------- Checkout ---------- */
.steps{list-style:none;display:flex;gap:0;padding:0;margin:0 0 30px;counter-reset:s}
.steps li{flex:1;display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;font-size:.86rem;color:var(--slate-400);position:relative}
.steps li:not(:last-child)::after{content:"";flex:1;height:2px;background:var(--border);margin-right:14px;border-radius:2px;transition:.5s}
.steps li span{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;font-size:.8rem;flex:none;background:#fff;transition:.4s}
.steps li.current{color:var(--ocean)}
.steps li.current span{border-color:var(--teal);color:var(--teal);box-shadow:0 0 0 5px rgba(11,93,94,.1)}
.steps li.done{color:var(--teal)}
.steps li.done span{background:var(--teal);border-color:var(--teal);color:#fff}
.steps li.done::after{background:linear-gradient(90deg,var(--teal),var(--gold))}
.co-panel{background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;transition:.35s}
.co-panel.current{border-color:var(--gold-soft);box-shadow:var(--shadow-md)}
.co-panel.locked{opacity:.55}
.co-head{display:flex;align-items:center;gap:13px;padding:18px 22px}
.co-head h3{margin:0;font-size:1.05rem;flex:1}
.co-num{width:30px;height:30px;border-radius:50%;background:var(--blue-soft);color:var(--teal);display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:.84rem;flex:none}
.co-panel.current .co-num,.co-panel.done .co-num{background:var(--teal);color:#fff}
.co-body{padding:4px 22px 24px;animation:fadeUp .4s ease}
.co-done{padding:0 22px 18px 65px;font-size:.86rem;color:var(--slate-600);margin-top:-6px}
.addr-list{display:flex;flex-direction:column;gap:10px}
.select-card{display:flex;gap:14px;align-items:flex-start;border:1.5px solid var(--border);border-radius:12px;padding:15px 17px;cursor:pointer;transition:.25s;background:var(--ivory)}
.select-card:hover{border-color:var(--teal)}
.select-card.active{border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(11,93,94,.08)}
.select-card input{accent-color:var(--teal);width:17px;height:17px;margin-top:3px;flex:none}
.select-card div{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.select-card b{font-family:var(--font-head);color:var(--ocean);font-size:.92rem}
.select-card span{font-size:.82rem;color:var(--slate-400)}
.select-card em{font-style:normal;font-family:var(--font-head);font-weight:800;color:var(--teal);font-size:.9rem;white-space:nowrap}
.select-card .sc-icon{width:42px;height:42px;border-radius:11px;background:var(--blue-soft);color:var(--teal);display:grid;place-items:center;flex:none}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}
.field.form-actions{flex-direction:row;margin-top:6px}
.center-actions{justify-content:center;margin-top:30px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--slate-600);cursor:pointer;margin-top:16px}
.check input{accent-color:var(--teal);width:16px;height:16px;margin-top:3px;flex:none}
.check a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.check.field{flex-direction:row;margin-top:0}
.processing{position:fixed;inset:0;z-index:400;background:rgba(248,250,247,.9);backdrop-filter:blur(8px);display:grid;place-items:center;text-align:center;animation:pageIn .3s ease}
.processing div{display:flex;flex-direction:column;align-items:center;gap:8px}
.processing b{font-family:var(--font-head);font-size:1.2rem;color:var(--ocean)}
.processing span{font-size:.86rem;color:var(--slate-400)}
.spinner{width:54px;height:54px;border-radius:50%;border:4px solid var(--blue-soft);border-top-color:var(--teal);border-right-color:var(--gold);animation:spin .9s linear infinite;margin-bottom:14px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Order success ---------- */
.success-wrap{position:relative;overflow:hidden}
.success-head{text-align:center;margin-bottom:34px}
.success-head .eyebrow{justify-content:center}
.check-anim{width:92px;height:92px;margin:0 auto 22px}
.check-anim svg{width:100%;height:100%}
.check-anim circle{stroke:var(--teal);stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:draw .8s ease forwards}
.check-anim path{stroke:var(--gold);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .5s ease .7s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.order-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-bottom:18px;margin-bottom:10px;border-bottom:1px solid var(--border)}
.order-meta span{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-400);font-family:var(--font-head);font-weight:700}
.order-meta b{font-family:var(--font-head);color:var(--ocean);font-size:.95rem}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:9px;height:15px;border-radius:2px;opacity:.9;animation:fall linear forwards}
@keyframes fall{to{top:105%;transform:rotate(720deg) translateX(40px);opacity:.2}}

/* ---------- Auth ---------- */
.auth-wrap{display:grid;grid-template-columns:1fr 1.15fr;min-height:calc(100vh - 115px)}
.auth-side{background:linear-gradient(150deg,var(--ocean),var(--teal) 70%,var(--teal-800));color:#fff;display:grid;place-items:center;padding:60px 48px;position:relative;overflow:hidden}
.auth-side::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 85% 12%,rgba(201,168,106,.22),transparent 45%),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px}
.auth-side::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;left:-120px;bottom:-140px;border:1px solid rgba(255,255,255,.14);animation:floaty 9s ease-in-out infinite}
.auth-side-inner{position:relative;max-width:420px}
.auth-side h2{color:#fff;font-size:clamp(1.7rem,2.6vw,2.3rem);margin-bottom:26px}
.auth-side ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.auth-side li{display:flex;gap:12px;align-items:center;font-size:.96rem;color:rgba(255,255,255,.88);opacity:0;animation:fadeUp .6s ease forwards}
.auth-side li:nth-child(1){animation-delay:.2s}.auth-side li:nth-child(2){animation-delay:.32s}.auth-side li:nth-child(3){animation-delay:.44s}.auth-side li:nth-child(4){animation-delay:.56s}
.auth-side li svg{color:var(--gold-soft);flex:none}
.auth-main{display:grid;place-items:center;padding:48px 24px}
.auth-card{width:min(520px,100%)}
.auth-card h1{font-size:clamp(1.7rem,2.6vw,2.2rem);margin-bottom:6px}
.auth-card>.muted{margin-bottom:26px}
.form-stack{display:flex;flex-direction:column;gap:16px}
.auth-row{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.auth-foot{text-align:center;margin:24px 0 0;font-size:.9rem;color:var(--slate-600)}
.auth-foot a{color:var(--teal);font-weight:700}
.auth-foot a:hover{color:var(--gold)}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:46px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--slate-400)}
.pw-toggle:hover,.pw-toggle.active{color:var(--teal);background:var(--blue-soft)}
.pw-meter{height:5px;border-radius:5px;background:var(--border-soft);overflow:hidden;margin-bottom:6px}
.pw-meter i{display:block;height:100%;width:0;border-radius:5px;transition:.4s;background:#b4453a}
.pw-meter[data-score="1"] i{width:25%}
.pw-meter[data-score="2"] i{width:50%;background:var(--gold)}
.pw-meter[data-score="3"] i{width:75%;background:var(--teal)}
.pw-meter[data-score="4"] i{width:100%;background:#2f7d55}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#b4453a;background:#fdf6f5}
.field-msg{font-size:.78rem;color:#b4453a;font-weight:600;animation:fadeUp .25s ease}
.field input:disabled{opacity:.6;cursor:not-allowed}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.field.has-error{animation:shake .35s ease}
.toast-error{border-left-color:#d9695d}

/* ---------- Account ---------- */
.acct-layout{display:grid;grid-template-columns:270px 1fr;gap:34px;align-items:start}
.acct-nav{background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:14px;position:sticky;top:96px;display:flex;flex-direction:column;gap:2px}
.acct-user{display:flex;gap:13px;align-items:center;padding:10px 10px 18px;margin-bottom:8px;border-bottom:1px solid var(--border-soft)}
.acct-user div{min-width:0;display:flex;flex-direction:column}
.acct-user b{font-family:var(--font-head);color:var(--ocean);font-size:.95rem}
.acct-user span:not(.avatar){font-size:.78rem;color:var(--slate-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-nav>a,.acct-nav>button{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;font-family:var(--font-head);font-weight:600;font-size:.9rem;color:var(--slate);transition:.25s;text-align:left;width:100%}
.acct-nav>a:hover,.acct-nav>button:hover{background:var(--blue-soft);color:var(--teal)}
.acct-nav>a.active{background:var(--teal);color:#fff}
.acct-main h2{font-size:1.5rem;margin-bottom:20px}
.acct-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:10px 0 20px}
.acct-head h2{margin:0}
.acct-head p{margin:4px 0 0;font-size:.86rem}
.order-card{display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:12px;transition:.35s}
.order-card:hover{border-color:var(--gold-soft);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.order-card>div:nth-child(2){display:flex;flex-direction:column}
.order-card b{font-family:var(--font-head);color:var(--ocean)}
.order-card .muted{font-size:.8rem}
.oc-thumbs{display:flex}
.oc-thumbs img,.oc-thumbs i{width:46px;height:46px;border-radius:10px;background:var(--blue-soft);border:2px solid #fff;object-fit:contain;padding:4px;margin-left:-12px;mix-blend-mode:normal}
.oc-thumbs>:first-child{margin-left:0}
.oc-thumbs i{display:grid;place-items:center;font-style:normal;font-size:.72rem;font-weight:800;color:var(--teal);font-family:var(--font-head)}
.status{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;font-family:var(--font-head);font-weight:700;font-size:.74rem;background:var(--blue-soft);color:var(--teal);white-space:nowrap}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.status-placed{background:#fbf3e2;color:#9a7527}
.status-delivered{background:#e3f3ea;color:#2f7d55}
.status-cancelled{background:#fbeceb;color:#b4453a}
.track{list-style:none;display:flex;padding:0;margin:0 0 24px;background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:24px 18px}
.track li{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;position:relative;font-size:.8rem;color:var(--slate-400);text-align:center}
.track li b{font-family:var(--font-head);font-weight:700}
.track li span{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);background:#fff;display:grid;place-items:center;position:relative;z-index:1;color:#fff}
.track li:not(:first-child)::before{content:"";position:absolute;top:14px;right:50%;width:100%;height:2px;background:var(--border)}
.track li.done span,.track li.current span{background:var(--teal);border-color:var(--teal)}
.track li.current span{box-shadow:0 0 0 6px rgba(11,93,94,.12);animation:pulseDot 2.4s infinite}
.track li.done,.track li.current{color:var(--ocean)}
.track li.done::before,.track li.current::before{background:var(--teal)}
.addr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.addr-card{background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:3px;font-size:.86rem;color:var(--slate-600);transition:.3s}
.addr-card:hover{border-color:var(--gold-soft);box-shadow:var(--shadow-sm)}
.addr-card b{font-family:var(--font-head);color:var(--ocean);font-size:.96rem}
.addr-card .pill{align-self:flex-start;margin-bottom:8px;padding:3px 10px;font-size:.68rem}
.addr-actions{display:flex;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft)}

/* ---------- Content pages ---------- */
.table-scroll{overflow-x:auto;border-radius:var(--radius)}
.compare-table{min-width:640px}
.compare-table thead th a{color:#fff;display:block;font-size:.86rem;line-height:1.3}
.compare-head-img{mix-blend-mode:normal;background:#fff}
.sol-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:clamp(34px,5vw,60px) 0;border-bottom:1px solid var(--border);scroll-margin-top:110px}
.sol-row:last-child{border-bottom:none}
.sol-row.flip .sol-row-img{order:2}
.sol-row-img{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-lg);background:var(--blue-soft)}
.sol-row-img img{width:100%;height:100%;object-fit:cover;will-change:transform}
.sol-cats{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 26px}
a.pill{transition:.25s}
a.pill:hover{background:var(--teal);color:#fff}
.prose{max-width:800px}
.prose h2{font-size:1.35rem;margin:34px 0 10px}
.prose p,.prose li{color:var(--slate-600);font-size:.96rem}
.prose ul{padding-left:20px;margin:0 0 1rem}
.prose li{margin-bottom:6px}
.prose a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.contact-list{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.contact-list div{display:flex;gap:14px;align-items:center;background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}
.contact-list svg{color:var(--teal);flex:none}
.contact-list b{display:block;font-family:var(--font-head);color:var(--ocean);font-size:.9rem}
.contact-list span{font-size:.86rem;color:var(--slate-600)}
.cat-block{margin-bottom:44px;break-inside:avoid}
.cat-block h2{font-size:1.4rem;margin-bottom:4px}
.cat-table th{width:auto}
.cat-table thead th{text-align:left}
.cat-table td:last-child,.cat-table th:last-child{text-align:right;white-space:nowrap}
.cat-table a:hover{color:var(--teal)}

/* ---------- Footer newsletter ---------- */
.footer-news{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding:44px 24px 40px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-news h3{color:#fff;margin-bottom:4px}
.footer-news p{margin:0}
.news-form{display:flex;gap:8px;flex:1;max-width:480px;min-width:260px}
.news-form input{flex:1;min-width:0;padding:14px 20px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-family:inherit;font-size:.9rem;outline:none;transition:.25s}
.news-form input::placeholder{color:#8fb0b4}
.news-form input:focus{border-color:var(--gold);background:rgba(255,255,255,.14)}

/* ---------- Responsive ---------- */
@media(max-width:1080px){
  .cart-layout,.acct-layout{grid-template-columns:1fr}
  .acct-nav{position:static;flex-direction:row;flex-wrap:wrap}
  .acct-user{width:100%}
  .acct-nav>a,.acct-nav>button{width:auto}
  .cart-summary{position:static}
  .auth-wrap{grid-template-columns:1fr}
  .auth-side{display:none}
  .sol-row{grid-template-columns:1fr;gap:28px}
  .sol-row.flip .sol-row-img{order:0}
}
@media(max-width:820px){
  .to-top{bottom:86px}
  .qv{grid-template-columns:1fr}
  .qv-media{border-radius:var(--radius-lg) var(--radius-lg) 0 0;min-height:220px;padding:24px}
  .qv-media img{max-height:220px}
  .qv-info{padding:26px 22px}
  .order-meta{grid-template-columns:1fr 1fr}
  .order-card{grid-template-columns:auto 1fr;row-gap:10px}
  .steps li{font-size:.76rem;gap:7px}
}
@media(max-width:560px){
  .hide-sm{display:none}
  .header-inner{gap:10px}
  .nav-actions{gap:2px;margin-left:auto}
  .pd-buy .btn{flex:1}
  .co-done{padding-left:22px}
  .steps li:not(:last-child)::after{margin-right:7px}
  .track{padding:18px 6px}
  .track li{font-size:.7rem}
  .news-form{flex-direction:column}
  .ci-actions{flex-direction:row}
  .slider>*{flex-basis:78vw}
}

/* ---------- Print (order details, catalogue) ---------- */
@media print{
  #site-header,#site-footer,.page-hero,.acct-nav,.form-actions,.no-print,.to-top,.sticky-cta,.scroll-progress{display:none!important}
  body{background:#fff;animation:none;padding:0}
  .reveal{opacity:1!important;transform:none!important}
  .acct-layout{display:block}
  .section,.section-sm{padding:12px 0}
}

/* elements that wait on an entrance animation must still show when motion is off */
@media(prefers-reduced-motion:reduce){
  .word,.hero-copy .eyebrow,.hero-copy .lead,.hero-cta,.hero-stats,.auth-side li{opacity:1}
  .check-anim circle,.check-anim path{stroke-dashoffset:0}
  .hero-img::after,.prod-media::after{display:none}
}

/* grid children must be allowed to shrink, or wide content (the home timeline) forces the page wider than a phone */
.two-col>*,.three-col>*,.cart-layout>*,.acct-layout>*,.catalog-layout>*,.pd-layout>*,.sol-row>*{min-width:0}

/* ---------- Departments ---------- */
.filter-scroll{max-height:420px}
.filter-dept{border-top:1px solid var(--border-soft)}
.filter-dept summary{display:flex;align-items:center;gap:8px;padding:9px 0;cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:.84rem;color:var(--ocean);list-style:none}
.filter-dept summary::-webkit-details-marker{display:none}
.filter-dept summary::before{content:"";width:6px;height:6px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg);transition:.25s;flex:none}
.filter-dept[open] summary::before{transform:rotate(45deg)}
.filter-dept summary .fo-count{margin-left:auto;font-size:.72rem;color:var(--slate-400);font-weight:600}
.filter-dept .filter-opt{padding-left:14px;font-size:.82rem}
.dept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:16px}
.dept-card{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:var(--radius);background:var(--porcelain);border:1px solid var(--border);transition:.4s cubic-bezier(.2,.7,.3,1);position:relative;overflow:hidden}
.dept-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--teal),var(--gold));transform:scaleY(0);transform-origin:top;transition:.45s}
.dept-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--gold-soft)}
.dept-card:hover::before{transform:scaleY(1)}
.dept-card b{font-family:var(--font-head);font-size:1.04rem;color:var(--ocean)}
.dept-card span{font-size:.82rem;color:var(--slate-400);flex:1}
.dept-card em{font-style:normal;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:700;font-size:.78rem;color:var(--teal)}
/* products still waiting for a photo */
.no-photo .prod-media img{mix-blend-mode:normal;opacity:.9}
.no-photo .prod-media{background:#F3F8F7}
/* keep square / tall product pictures inside the card frame */
.prod-media-link{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}

/* ============================================================
   Departments: header menu, hub, landing pages, shop filters
   ============================================================ */
.band{background:var(--porcelain);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* header products menu */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item .nav-link{display:inline-flex;align-items:center;gap:5px}
.nav-item .nav-link svg{transition:transform .3s}
.nav-item:hover .nav-link svg,.nav-item:focus-within .nav-link svg{transform:rotate(180deg)}
.nav-menu{position:absolute;top:100%;left:50%;width:min(640px,92vw);padding-top:14px;transform:translate(-50%,10px);opacity:0;visibility:hidden;transition:opacity .28s,transform .28s cubic-bezier(.2,.7,.3,1),visibility .28s;z-index:60}
.nav-item:hover .nav-menu,.nav-item:focus-within .nav-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:14px;background:#fff;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;box-shadow:var(--shadow-lg)}
.nav-menu-foot{display:flex;justify-content:space-between;gap:16px;padding:13px 22px;background:var(--blue-soft);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--teal);box-shadow:var(--shadow-lg)}
.nav-menu-foot a:hover{color:var(--gold)}
.mega-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;transition:.22s}
.mega-link:hover{background:var(--blue-soft);transform:translateX(3px)}
.mega-link b{display:block;font-family:var(--font-head);font-size:.88rem;color:var(--ocean);line-height:1.25}
.mega-link small{font-size:.74rem;color:var(--slate-400)}
.dept-ic{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,var(--blue-soft),var(--sage));display:grid;place-items:center;flex:none;transition:.35s}
.dept-ic img{width:62%;height:62%}
.dept-ic-lg{width:62px;height:62px;border-radius:16px}
.dept-ic-xl{width:96px;height:96px;border-radius:24px}
.drawer-sub{display:flex;flex-direction:column;padding:4px 0 8px 14px;border-bottom:1px solid var(--border-soft)}
.drawer-sub a{padding:8px 4px;font-size:.88rem;color:var(--slate-600);font-family:var(--font-head);font-weight:600}
.drawer-sub a:hover{color:var(--teal)}

/* department cards */
.dept-card .dept-ic{width:46px;height:46px;margin-bottom:6px}
.dept-card:hover .dept-ic{transform:scale(1.08) rotate(-4deg)}

/* hub */
.hub-hero{text-align:center}
.hub-hero .breadcrumb{justify-content:center}
.hub-hero p{margin:0 auto}
.hub-search{margin-top:26px}
.hub-search input{border:1px solid var(--border);box-shadow:var(--shadow-md)}
.hub-search .s-ic{display:grid}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:22px}
.hub-card{background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;display:flex;flex-direction:column;gap:18px;transition:.4s cubic-bezier(.2,.7,.3,1)}
.hub-card:hover{box-shadow:var(--shadow-lg);border-color:var(--gold-soft);transform:translateY(-4px)}
.hub-top{display:flex;gap:18px;align-items:flex-start}
.hub-top h2{font-size:1.3rem;margin-bottom:6px}
.hub-top h2 a:hover{color:var(--teal)}
.hub-top p{font-size:.88rem;color:var(--slate-400);margin:0}
.hub-stats{display:flex;gap:22px;flex-wrap:wrap;font-size:.8rem;color:var(--slate-400)}
.hub-stats b{font-family:var(--font-head);font-size:1.1rem;color:var(--teal);font-weight:800;margin-right:4px}
.hub-cats{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;padding:16px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);flex:1;align-content:start}
.hub-cats a{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;color:var(--slate-600);padding:4px 0;transition:.2s}
.hub-cats a:hover{color:var(--teal);padding-left:4px}
.hub-cats small{color:var(--slate-400);font-size:.74rem}
.hub-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.hub-all{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:26px;padding:26px 30px;border-radius:var(--radius-lg);background:linear-gradient(140deg,var(--ocean),var(--teal));color:#fff}
.hub-all h3{color:#fff;margin-bottom:4px}
.hub-all p{margin:0;color:rgba(255,255,255,.82);font-size:.9rem}

/* landing page */
.dept-hero-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.dept-hero-side{display:flex;flex-direction:column;align-items:center;gap:20px;padding:26px 30px;background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(8px)}
.dept-hero-side .dept-ic{animation:floaty 6s ease-in-out infinite}
.dept-search{display:flex;align-items:center;gap:12px;background:var(--porcelain);border:1px solid var(--border);border-radius:999px;padding:8px 8px 8px 22px;margin-bottom:38px;box-shadow:var(--shadow-sm);transition:.3s}
.dept-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px rgba(11,93,94,.08)}
.dept-search span{color:var(--teal);display:grid}
.dept-search input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:inherit;font-size:.98rem;color:var(--slate);padding:8px 0}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.tile-grid .is-extra{display:none}
.tile-grid.show-all .is-extra{display:flex}
.cat-tile{display:flex;align-items:center;gap:13px;padding:13px 16px;background:var(--porcelain);border:1px solid var(--border);border-radius:var(--radius);transition:.3s cubic-bezier(.2,.7,.3,1);color:var(--slate-400)}
.cat-tile:hover{border-color:var(--gold-soft);box-shadow:var(--shadow-md);transform:translateY(-3px);color:var(--gold)}
.cat-tile>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.cat-tile b{font-family:var(--font-head);font-size:.9rem;color:var(--ocean);line-height:1.3}
.cat-tile small{font-size:.74rem;color:var(--slate-400)}
.ct-img{width:46px;height:46px;border-radius:11px;background:var(--blue-soft);display:grid;place-items:center;flex:none;overflow:hidden;color:var(--teal)}
.ct-img img{width:100%;height:100%;object-fit:contain;padding:4px;mix-blend-mode:multiply}
.chip-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:6px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--porcelain);border:1px solid var(--border);font-family:var(--font-head);font-weight:600;font-size:.82rem;color:var(--ocean);transition:.25s}
.chip small{font-size:.7rem;color:var(--slate-400);font-weight:700}
.chip:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-2px)}
.chip:hover small{color:rgba(255,255,255,.75)}

/* ---------- shop filters ---------- */
.page-hero-compact{padding:clamp(26px,3vw,40px) 0}
.page-hero-compact h1{font-size:clamp(1.6rem,3vw,2.3rem)}
.catalog-layout{grid-template-columns:300px 1fr}
.catalog-main{min-width:0}
.filters{padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 116px);overflow:hidden}
.filters-head{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border-soft)}
.filters-head h3{display:flex;align-items:center;gap:9px;font-size:1rem;margin:0;flex:1}
.filters-head h3 svg{color:var(--teal)}
.f-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:#fff;font-size:.68rem;display:inline-grid;place-items:center}
.filters-head .filters-close{position:static}
.filters-body{overflow-y:auto;padding:16px 20px 6px;scrollbar-width:thin;flex:1}
.filters-foot{display:none;padding:14px 20px;border-top:1px solid var(--border);background:#fff}
.f-search{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:11px;padding:0 13px;background:var(--ivory);margin-bottom:6px;transition:.25s}
.f-search:focus-within{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(11,93,94,.08)}
.f-search span{color:var(--slate-400);display:grid}
.f-search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:inherit;font-size:.88rem;padding:11px 0;color:var(--slate)}
.fg{border-bottom:1px solid var(--border-soft)}
.fg:last-child{border-bottom:none}
.fg>summary{display:flex;align-items:center;justify-content:space-between;padding:15px 0;cursor:pointer;list-style:none;font-family:var(--font-head);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.fg>summary::-webkit-details-marker{display:none}
.fg>summary::after{content:"";width:7px;height:7px;border-right:2px solid var(--slate-400);border-bottom:2px solid var(--slate-400);transform:rotate(-135deg);transition:.25s;margin-right:3px}
.fg[open]>summary::after{transform:rotate(45deg)}
.fg-body{padding-bottom:16px}
.fg .filter-search{margin-bottom:10px;background:var(--ivory)}
.filter-scroll{max-height:340px}
.filter-scroll-sm{max-height:230px}
.filter-opt{border-radius:7px;padding:5px 6px;margin:0 -6px}
.filter-opt:hover{background:var(--blue-soft)}
.filter-opt>span:first-of-type{flex:1;min-width:0}
a.filter-opt.active{background:var(--blue-soft)}
.f-none{font-size:.82rem}
.band-list{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.price-band{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:var(--ivory);font-family:var(--font-head);font-weight:600;font-size:.8rem;color:var(--slate);transition:.2s;text-align:left}
.price-band small{font-size:.7rem;color:var(--slate-400)}
.price-band:hover{border-color:var(--teal);color:var(--teal)}
.price-band.active{background:var(--teal);border-color:var(--teal);color:#fff}
.price-band.active small{color:rgba(255,255,255,.8)}
.view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff}
.view-toggle button{width:38px;height:38px;display:grid;place-items:center;color:var(--slate-400);transition:.2s}
.view-toggle button.active{background:var(--teal);color:#fff}
.active-filters{align-items:center}
.pl-more{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:36px}
.pl-more p{margin:0;font-size:.84rem}
.pl-bar{width:min(260px,70%);height:4px;border-radius:4px;background:var(--border-soft);overflow:hidden}
.pl-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:4px;transition:width .6s}

/* list view */
.auto-grid.list-view{grid-template-columns:1fr;gap:12px}
.list-view .prod-card{flex-direction:row;transform:none!important}
.list-view .prod-media{width:190px;flex:none;aspect-ratio:auto;min-height:150px}
.list-view .prod-body{padding:16px 20px}
.list-view .prod-foot{border-top:none;padding-top:8px}
.list-view .prod-actions-top{opacity:1;transform:none}

@media(max-width:1080px){
  .catalog-layout{grid-template-columns:1fr}
  .filters{max-height:none;height:100%;padding-top:0}
  .filters-foot{display:block}
  .nav-item .nav-menu{display:none}
  .dept-hero-grid{grid-template-columns:1fr}
  .dept-hero-side{flex-direction:row;justify-content:flex-start;padding:18px 22px}
  .dept-hero-side .dept-ic-xl{width:64px;height:64px;border-radius:16px}
}
@media(max-width:560px){
  .hub-cats{grid-template-columns:1fr}
  .list-view .prod-card{flex-direction:column}
  .list-view .prod-media{width:100%}
  .view-toggle{display:none}
  .hub-all{padding:22px}
  .dept-search{padding-left:16px}
}

/* ============================================================
   Home rows: bento department tiles + card effects
   ============================================================ */
.row-3{grid-template-columns:repeat(3,1fr)}

/* cursor spotlight shared by .fx cards */
.fx{position:relative;isolation:isolate}
.fx::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:0;transition:opacity .4s;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,0%),rgba(201,168,106,.22),transparent 62%)}
.fx:hover::after{opacity:1}
.fx>*{position:relative;z-index:1}

/* ---------- department bento ---------- */
.dept-bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(236px,auto);gap:18px}
.dept-tile{--acc:#0B5D5E;--soft:#E8F3F5;display:flex;flex-direction:column;justify-content:flex-end;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(160deg,#fff 0%,var(--soft) 100%);border:1px solid var(--border);padding:22px;min-height:236px;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s,border-color .45s;will-change:transform}
.dept-tile:hover{transform:translateY(-6px);box-shadow:0 22px 50px -18px color-mix(in srgb,var(--acc) 55%,transparent);border-color:color-mix(in srgb,var(--acc) 45%,#fff)}
.dept-tile.tilting{transition:transform .12s ease-out,box-shadow .45s,border-color .45s;transition-delay:0s!important}
.dept-tile.is-hero{grid-column:span 2;grid-row:span 2;color:#fff;border-color:transparent;background:var(--ocean);padding:30px}
.dept-tile.is-wide{grid-column:span 2}
.dt-dental{--acc:#1f8a8c;--soft:#e3f4f3}
.dt-diagnostics{--acc:#5b6fae;--soft:#eaedf8}
.dt-consumables{--acc:#b8894a;--soft:#f8f1e4}
.dt-medical-equipment{--acc:#164E63;--soft:#e5eef2}
.dt-orthopedics{--acc:#3f8f6b;--soft:#e6f3ec}
.dt-cardiology{--acc:#c0605a;--soft:#f9e9e7}

/* artwork */
.dt-art{position:absolute!important;inset:0;z-index:0!important;overflow:hidden;pointer-events:none}
.dt-art img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}
.is-hero .dt-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,63,82,.18) 0%,rgba(18,63,82,.62) 48%,rgba(11,45,58,.94) 100%)}
.is-hero:hover .dt-art img{transform:scale(1.07)}
.dt-icon,.dt-ghost{position:absolute;background:var(--acc);-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.dt-icon{top:20px;right:20px;width:58px;height:58px;transition:transform .6s cubic-bezier(.2,.7,.3,1);animation:dtFloat 6s ease-in-out infinite}
.dept-tile:nth-child(odd) .dt-icon{animation-delay:-2.5s}
.dept-tile:hover .dt-icon{transform:scale(1.16) rotate(-6deg)}
.dt-ghost{right:-34px;bottom:-40px;width:190px;height:190px;opacity:.07;transition:transform .9s cubic-bezier(.2,.7,.3,1),opacity .5s}
.dept-tile:hover .dt-ghost{transform:translate(-12px,-12px) rotate(8deg);opacity:.12}
.dt-ring{position:absolute;top:-6px;right:-6px;width:110px;height:110px;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--acc) 40%,transparent);animation:dtSpin 26s linear infinite}
.dt-ring.r2{top:-30px;right:-30px;width:158px;height:158px;border-style:solid;border-color:color-mix(in srgb,var(--acc) 14%,transparent);animation-duration:40s;animation-direction:reverse}
.dt-ring.r2::before{content:"";position:absolute;top:50%;left:-4px;width:8px;height:8px;border-radius:50%;background:var(--acc);opacity:.55}
@keyframes dtSpin{to{transform:rotate(360deg)}}
@keyframes dtFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}

/* text */
.dt-body{display:flex;flex-direction:column;gap:7px;max-width:100%}
.dt-count{align-self:flex-start;font-family:var(--font-head);font-weight:800;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);background:#fff;border:1px solid color-mix(in srgb,var(--acc) 22%,#fff);padding:4px 10px;border-radius:999px}
.dept-tile b{font-family:var(--font-head);font-size:1.16rem;font-weight:800;color:var(--ocean);letter-spacing:-.01em;line-height:1.2}
.dt-desc{font-size:.82rem;color:var(--slate-600);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dt-cats{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.dt-cats i{font-style:normal;font-size:.68rem;font-family:var(--font-head);font-weight:600;color:var(--slate-600);background:rgba(255,255,255,.8);border:1px solid var(--border-soft);padding:3px 8px;border-radius:6px;white-space:nowrap;transition:.3s}
.dept-tile:hover .dt-cats i{border-color:color-mix(in srgb,var(--acc) 30%,#fff)}
.dept-tile em{font-style:normal;display:inline-flex;align-items:center;gap:7px;margin-top:6px;font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--acc)}
.dept-tile em svg{transition:transform .35s}
.dept-tile:hover em svg{transform:translateX(6px)}
.is-hero b{color:#fff;font-size:clamp(1.5rem,2.4vw,2rem)}
.is-hero .dt-desc{color:rgba(255,255,255,.86);font-size:.95rem;-webkit-line-clamp:3;max-width:44ch}
.is-hero .dt-count{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.3);backdrop-filter:blur(8px)}
.is-hero .dt-cats i{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff;font-size:.74rem;padding:5px 11px}
.is-hero em{color:var(--gold-soft);font-size:.92rem;margin-top:10px}
.is-hero.fx::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(201,168,106,.28),transparent 60%);z-index:1}
.is-hero .dt-body{z-index:2}

/* ---------- solutions row ---------- */
.sol-card{min-height:330px}
.sol-card .sc-body{width:100%;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.sc-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.sc-cats i{font-style:normal;font-size:.7rem;font-family:var(--font-head);font-weight:600;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:4px 9px;border-radius:6px;backdrop-filter:blur(6px)}
.sc-go{font-style:normal;display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--gold-soft);opacity:0;transform:translateY(8px);transition:.4s}
.sol-card:hover .sc-go{opacity:1;transform:none}
.sol-card:hover .sc-ic{background:var(--gold);border-color:var(--gold);transform:rotate(-8deg) scale(1.08)}
.sol-card .sc-ic{transition:.45s cubic-bezier(.2,.7,.3,1)}
.sol-card:hover .sc-ic svg{color:#fff}
.sol-card .sc-body{z-index:2}

/* ---------- why cards ---------- */
.why-card{background:linear-gradient(180deg,#fff,#fbfdfc)}
.why-card::before{content:"";position:absolute;left:26px;right:26px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--teal),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.3,1);z-index:1}
.why-card:hover::before{transform:scaleX(1)}
.why-card .wc-ic{position:relative}
.why-card .wc-ic::after{content:"";position:absolute;inset:-7px;border-radius:19px;border:1.5px dashed rgba(11,93,94,.25);opacity:0;transition:opacity .4s;animation:dtSpin 14s linear infinite}
.why-card:hover .wc-ic::after{opacity:1}
.why-card:hover .wc-ic{transform:translateY(-4px) scale(1.06)}
.why-card .wc-num{transition:.5s;z-index:1}
.why-card:hover .wc-num{color:var(--gold-soft);transform:translateY(-4px) scale(1.12)}
.why-card.tilting{transition:transform .12s ease-out,box-shadow .4s,border-color .4s;transition-delay:0s!important}

/* ---------- category cards ---------- */
.cat-card .cc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(22,78,99,.34));opacity:0;transition:opacity .45s}
.cat-card:hover .cc-img::after{opacity:1}
.cc-shop{position:absolute;left:50%;top:0;translate:-50% 0;margin-top:calc((100% * 11 / 16) - 46px);padding:7px 16px;border-radius:999px;background:#fff;color:var(--teal);font-family:var(--font-head);font-weight:700;font-size:.76rem;box-shadow:var(--shadow-md);opacity:0;transform:translateY(10px);transition:.4s cubic-bezier(.2,.7,.3,1);white-space:nowrap;pointer-events:none}
.cat-card:hover .cc-shop{opacity:1;transform:none}
.cat-card h3{transition:color .3s}
.cat-card:hover h3{color:var(--teal)}

/* ---------- certification + trust ---------- */
.cert-card .cert-ic{position:relative;transition:.45s cubic-bezier(.2,.7,.3,1)}
.cert-card .cert-ic::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid transparent;border-top-color:var(--gold);border-right-color:var(--teal);opacity:0;transition:opacity .4s;animation:dtSpin 3.2s linear infinite}
.cert-card:hover .cert-ic::before{opacity:1}
.cert-card:hover .cert-ic{background:linear-gradient(140deg,var(--teal),var(--ocean));color:#fff;transform:scale(1.08)}
.trust-item{transition:background .4s}
.trust-item:hover{background:#fbfdfc}
.trust-item .ti-ic{transition:.45s cubic-bezier(.2,.7,.3,1)}
.trust-item:hover .ti-ic{background:linear-gradient(140deg,var(--teal),var(--ocean));color:#fff;transform:translateY(-4px) rotate(-6deg)}
.trust-item b{transition:.4s}
.trust-item:hover b{letter-spacing:.01em;color:var(--ocean)}

@media(max-width:1080px){
  .dept-bento{grid-template-columns:repeat(2,1fr)}
  .dept-tile.is-wide{grid-column:span 1}
  .row-3{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .dept-bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .dept-tile.is-hero{grid-column:span 1;grid-row:span 1;min-height:340px;padding:24px}
  .row-3{grid-template-columns:1fr}
  .sc-go{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){.sc-go{opacity:1;transform:none}}

/* ============================================================
   Brand logo + intro preloader
   ============================================================ */
:root{--navy:#0b2a6f;--navy-deep:#061a44;--brand-gold:#d4a429}

/* header / drawer */
.logo{gap:10px}
.logo-img{height:44px;width:auto;flex:none;transition:transform .5s cubic-bezier(.2,.7,.3,1),filter .4s;filter:drop-shadow(0 3px 8px rgba(11,42,111,.18))}
.logo:hover .logo-img{transform:scale(1.07) rotate(-3deg);filter:drop-shadow(0 6px 14px rgba(11,42,111,.28))}
.header .logo-text strong{color:var(--navy);letter-spacing:.06em}
.header .logo-text em{color:#b8891e}
.drawer-head .logo-img{height:36px}
.drawer-head .logo-text strong{color:var(--navy)}

/* footer */
.footer-logo{display:flex!important;align-items:center;gap:16px;padding:0!important;margin-bottom:18px}
.footer-logo:hover{padding-left:0!important}
.footer-logo img{width:92px;height:92px;border-radius:50%;background:#fff;flex:none;box-shadow:0 0 0 3px rgba(212,164,41,.55),0 10px 30px rgba(0,0,0,.35);transition:transform .7s cubic-bezier(.2,.7,.3,1),box-shadow .5s}
.footer-logo:hover img{transform:rotate(8deg) scale(1.05);box-shadow:0 0 0 3px var(--brand-gold),0 0 34px rgba(212,164,41,.45)}
.footer-logo .logo-text{margin:0!important}
.footer-logo .logo-text strong{font-size:1.5rem;letter-spacing:.08em}
.footer-logo .logo-text em{letter-spacing:.24em;font-size:.62rem;margin-top:5px}
.footer-logo .logo-text small{font-family:var(--font-head);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#9fbcc0;margin-top:7px;font-weight:600}
.auth-logo{width:110px;height:110px;border-radius:50%;background:#fff;margin-bottom:26px;box-shadow:0 0 0 4px rgba(212,164,41,.5),0 18px 44px rgba(0,0,0,.3);animation:floaty 7s ease-in-out infinite}

/* ---------- preloader ---------- */
html.pl-lock,html.pl-lock body{overflow:hidden}
.preloader{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;color:#fff;cursor:pointer;transition:opacity 1s ease,transform 1.1s cubic-bezier(.6,0,.2,1),visibility .9s}
.preloader.pl-out{opacity:0;transform:scale(1.06);visibility:hidden;pointer-events:none}
.pl-bg{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,#12409c 0%,var(--navy) 34%,var(--navy-deep) 78%)}
.pl-bg::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:54px 54px;-webkit-mask-image:radial-gradient(circle at 50% 45%,#000 10%,transparent 68%);mask-image:radial-gradient(circle at 50% 45%,#000 10%,transparent 68%);animation:plGrid 6s linear infinite}
.pl-bg::after{content:"";position:absolute;left:50%;top:44%;width:560px;height:560px;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgba(212,164,41,.2),transparent 62%);animation:plGlow 4.6s ease-in-out both}
@keyframes plGrid{to{background-position:54px 54px}}
@keyframes plGlow{0%{opacity:0;scale:.5}55%{opacity:.5;scale:.9}70%{opacity:1;scale:1.15}100%{opacity:.75;scale:1}}

.pl-stage{position:relative;width:320px;height:320px;flex:none}

/* equipment rolling round the orbit */
.pl-orbit{position:absolute;inset:0;animation:plRoll 3.1s cubic-bezier(.45,.05,.3,1) both}
.pl-orbit::before{content:"";position:absolute;inset:25px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.22)}
.pl-item{position:absolute;left:50%;top:50%;width:0;height:0;transform:rotate(var(--a)) translateY(-135px)}
.pl-chip{position:absolute;left:-25px;top:-25px;transform:rotate(calc(var(--a) * -1));width:50px;height:50px;border-radius:15px;background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:0 0 0 2px rgba(212,164,41,.75),0 10px 26px rgba(0,0,0,.35);opacity:0;animation:plPop .65s cubic-bezier(.2,1.4,.4,1) var(--d) forwards,plSpin 3.1s cubic-bezier(.45,.05,.3,1) both}
.pl-chip svg{width:26px;height:26px}
.pl-item:nth-child(3n) .pl-chip{color:#b8891e}
@keyframes plRoll{0%{transform:rotate(-90deg) scale(.82)}62%{transform:rotate(250deg) scale(1);opacity:1}100%{transform:rotate(430deg) scale(.08);opacity:0}}
@keyframes plSpin{0%{rotate:90deg}62%{rotate:-250deg}100%{rotate:-430deg}}  /* cancels the orbit so every icon rolls round upright */
@keyframes plPop{from{opacity:0;scale:.2}to{opacity:1;scale:1}}

/* heartbeat drawn through the centre */
.pl-ecg{position:absolute;left:0;top:50%;width:100%;translate:0 -50%;overflow:visible;animation:plEcgOut .6s ease 2.4s forwards}
.pl-ecg path{stroke:#fff;stroke-width:3;stroke-dasharray:620;stroke-dashoffset:620;filter:drop-shadow(0 0 7px rgba(255,255,255,.8));animation:plDraw 1.7s cubic-bezier(.6,0,.3,1) .5s forwards}
@keyframes plDraw{to{stroke-dashoffset:0}}
@keyframes plEcgOut{to{opacity:0;scale:1.3 .2}}

/* logo resolves */
.pl-logo{position:absolute;inset:20px;display:grid;place-items:center;opacity:0;animation:plLogo 1.2s cubic-bezier(.2,1.25,.35,1) 2.75s forwards}
.pl-logo img{width:100%;height:100%;border-radius:50%;background:#fff;position:relative;z-index:1;box-shadow:0 24px 70px rgba(0,0,0,.45)}
.pl-ring{position:absolute;inset:-9px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 55%,var(--brand-gold) 78%,#fff 92%,transparent 100%);animation:plSweep 1.9s linear 2.75s infinite;-webkit-mask:radial-gradient(circle,transparent 66.5%,#000 67%);mask:radial-gradient(circle,transparent 66.5%,#000 67%)}
@keyframes plLogo{0%{opacity:0;transform:scale(.35) rotate(-28deg)}100%{opacity:1;transform:none}}
@keyframes plSweep{to{transform:rotate(360deg)}}

.pl-tag{position:relative;font-family:var(--font-head);font-weight:700;font-size:clamp(.72rem,1.6vw,.9rem);letter-spacing:.34em;text-transform:uppercase;color:#e9d39a;display:flex;gap:.9em;flex-wrap:wrap;justify-content:center;padding:0 20px;min-height:1.4em}
.pl-tag span{opacity:0;animation:plWord .8s ease forwards}
.pl-tag span:nth-child(1){animation-delay:3.35s}.pl-tag span:nth-child(2){animation-delay:3.6s}.pl-tag span:nth-child(3){animation-delay:3.85s}
@keyframes plWord{from{opacity:0;transform:translateY(12px);letter-spacing:.6em}to{opacity:1;transform:none}}
.pl-bar{position:relative;width:min(220px,56vw);height:3px;border-radius:3px;background:rgba(255,255,255,.16);overflow:hidden}
.pl-bar i{display:block;height:100%;width:100%;transform-origin:left;background:linear-gradient(90deg,#fff,var(--brand-gold));animation:plBar 4.5s cubic-bezier(.3,.1,.2,1) both}
@keyframes plBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media(max-width:560px){
  .pl-stage{width:260px;height:260px}
  .pl-item{transform:rotate(var(--a)) translateY(-108px)}
  .pl-chip{width:42px;height:42px;left:-21px;top:-21px;border-radius:12px}
  .pl-chip svg{width:21px;height:21px}
  .logo-img{height:38px}
  .footer-logo img{width:76px;height:76px}
}

/* ============================================================
   Floating dock (assistant, WhatsApp, call) + assistant panel
   ============================================================ */
.pl-quick .pl-orbit,.pl-quick .pl-ecg{display:none}
.pl-quick .pl-logo,.pl-quick .pl-ring{animation-delay:.08s}
.pl-quick .pl-tag span:nth-child(1){animation-delay:.45s}.pl-quick .pl-tag span:nth-child(2){animation-delay:.56s}.pl-quick .pl-tag span:nth-child(3){animation-delay:.67s}
.pl-quick .pl-bar i{animation-duration:1.25s}
.pl-quick .pl-bg::after{animation-duration:1.3s}

.fab-dock{position:fixed;right:22px;bottom:22px;z-index:90;display:flex;flex-direction:column;align-items:center;gap:12px}
.fab{position:relative;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 10px 26px rgba(22,78,99,.28);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s;animation:fabIn .6s cubic-bezier(.2,1.3,.4,1) both}
.fab:hover{transform:translateY(-4px) scale(1.07);box-shadow:0 16px 34px rgba(22,78,99,.36)}
.fab-call{background:linear-gradient(140deg,#1b5fd0,var(--navy));animation-delay:.5s}
.fab-wa{background:linear-gradient(140deg,#35d366,#12a150);animation-delay:.38s}
.fab-chat{width:60px;height:60px;background:linear-gradient(140deg,var(--teal),var(--ocean));animation-delay:.25s}
.fab-chat svg{transition:transform .4s}
.fab-dock.is-open .fab-chat svg{transform:rotate(-12deg) scale(.92)}
.fab-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);animation:fabPulse 2.6s ease-out infinite;pointer-events:none}
.fab-dock.is-open .fab-pulse{display:none}
.fab[data-tip]::before{content:attr(data-tip);position:absolute;right:calc(100% + 12px);top:50%;translate:0 -50%;background:var(--ocean);color:#fff;font-family:var(--font-head);font-weight:700;font-size:.74rem;padding:6px 11px;border-radius:8px;white-space:nowrap;opacity:0;transform:translateX(8px);transition:.25s;pointer-events:none}
.fab[data-tip]:hover::before{opacity:1;transform:none}
@keyframes fabIn{from{opacity:0;transform:translateY(26px) scale(.5)}to{opacity:1;transform:none}}
@keyframes fabPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.55);opacity:0}}
.to-top{right:auto;left:22px}

.as-panel{position:fixed;right:22px;bottom:96px;z-index:95;width:min(390px,calc(100vw - 24px));height:min(600px,calc(100vh - 124px));display:flex;flex-direction:column;background:var(--porcelain);border:1px solid var(--border);border-radius:22px;box-shadow:0 30px 80px rgba(22,78,99,.3);overflow:hidden;animation:asIn .4s cubic-bezier(.2,.9,.3,1)}
.as-panel[hidden]{display:none!important}
@keyframes asIn{from{opacity:0;transform:translateY(22px) scale(.94);transform-origin:bottom right}to{opacity:1;transform:none}}
.as-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:linear-gradient(135deg,var(--navy-deep),var(--navy) 55%,var(--teal));color:#fff}
.as-head img{width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(212,164,41,.7);flex:none}
.as-head div{flex:1;min-width:0;display:flex;flex-direction:column}
.as-head b{font-family:var(--font-head);font-size:.98rem}
.as-head span{font-size:.72rem;color:rgba(255,255,255,.8);display:flex;align-items:center;gap:6px}
.as-head span i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.25)}
.as-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;opacity:.85;transition:.2s}
.as-icon:hover{background:rgba(255,255,255,.16);opacity:1}
.as-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--ivory);scrollbar-width:thin}
.as-msg{max-width:92%;padding:11px 14px;border-radius:16px;font-size:.87rem;line-height:1.5;animation:fadeUp .3s ease}
.as-msg p{margin:0 0 8px}.as-msg p:last-child{margin:0}
.as-bot{align-self:flex-start;background:#fff;border:1px solid var(--border);border-bottom-left-radius:5px;color:var(--slate)}
.as-user{align-self:flex-end;background:linear-gradient(140deg,var(--teal),var(--ocean));color:#fff;border-bottom-right-radius:5px}
.as-prod{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px;border:1px solid var(--border-soft);border-radius:12px;background:var(--ivory);transition:.25s}
.as-prod:hover{border-color:var(--gold-soft);background:#fff}
.as-prod a:first-child{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.as-prod img{width:46px;height:46px;border-radius:9px;object-fit:contain;background:#fff;flex:none;padding:3px}
.as-prod span{display:flex;flex-direction:column;min-width:0}
.as-prod b{font-family:var(--font-head);font-size:.8rem;color:var(--ocean);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.as-prod small{font-size:.68rem;color:var(--slate-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-prod em{font-style:normal;font-family:var(--font-head);font-weight:800;font-size:.8rem;color:var(--teal)}
.as-add{flex:none;display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:999px;background:var(--teal);color:#fff;font-family:var(--font-head);font-weight:700;font-size:.72rem;transition:.2s}
.as-add:hover,.as-add.is-added{background:var(--gold)}
.as-specs{margin:0 0 4px;padding-left:18px;font-size:.8rem;color:var(--slate-600)}
.as-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.as-links a{padding:6px 12px;border-radius:999px;border:1px solid var(--teal);color:var(--teal);font-family:var(--font-head);font-weight:700;font-size:.74rem;transition:.2s}
.as-links a:hover{background:var(--teal);color:#fff}
.as-typing{display:inline-flex;gap:4px;padding:3px 0}
.as-typing i{width:7px;height:7px;border-radius:50%;background:var(--slate-400);animation:asDot 1s ease-in-out infinite}
.as-typing i:nth-child(2){animation-delay:.15s}.as-typing i:nth-child(3){animation-delay:.3s}
@keyframes asDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
.as-quick{display:flex;gap:6px;padding:10px 14px 0;overflow-x:auto;scrollbar-width:none;background:var(--porcelain)}
.as-quick:empty{display:none}
.as-quick::-webkit-scrollbar{display:none}
.as-quick button{flex:none;padding:6px 12px;border-radius:999px;background:var(--blue-soft);color:var(--teal);font-family:var(--font-head);font-weight:600;font-size:.74rem;border:1px solid rgba(11,93,94,.12);transition:.2s;white-space:nowrap}
.as-quick button:hover{background:var(--teal);color:#fff}
.as-form{display:flex;gap:8px;padding:12px 14px 14px;background:var(--porcelain)}
.as-form input{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--border);border-radius:999px;font-family:inherit;font-size:.88rem;color:var(--slate);background:var(--ivory);outline:none;transition:.25s}
.as-form input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(11,93,94,.08)}
.as-form button{width:44px;height:44px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;flex:none;transition:.25s}
.as-form button:hover{background:var(--gold);transform:scale(1.06)}
@media(max-width:820px){
  .fab-dock{bottom:88px;right:14px;gap:10px}
  .fab{width:44px;height:44px}.fab-chat{width:54px;height:54px}
  .as-panel{right:12px;left:12px;width:auto;bottom:12px;height:calc(100vh - 24px);z-index:130}
  .to-top{left:14px;bottom:88px}
  .fab[data-tip]::before{display:none}
}
@media print{.fab-dock,.as-panel,.preloader{display:none!important}}
/* keep toasts clear of the floating dock */
.toast-wrap{right:98px;z-index:140}
@media(max-width:820px){.toast-wrap{right:72px;left:14px;bottom:92px}.toast{max-width:none}}

/* ============================================================
   Full rows everywhere
   ============================================================ */
/* department cards: at most four to a row, a shorter last row stretches to the full width */
.dept-grid{display:flex;flex-wrap:wrap}
.dept-grid>*{flex:1 1 calc(25% - 16px);min-width:215px}
.dept-grid>:first-child:nth-last-child(6),.dept-grid>:first-child:nth-last-child(6)~*,
.dept-grid>:first-child:nth-last-child(5),.dept-grid>:first-child:nth-last-child(5)~*,
.dept-grid>:first-child:nth-last-child(3),.dept-grid>:first-child:nth-last-child(3)~*{flex-basis:calc(33.333% - 16px)}
/* category tiles */
.tile-grid{display:flex;flex-wrap:wrap}
.tile-grid>.cat-tile{flex:1 1 250px}
/* products hub: two columns, the first card runs full width when the count is odd */
.hub-grid{grid-template-columns:repeat(2,1fr)}
.hub-card:first-child:nth-last-child(odd){grid-column:1/-1}
.hub-card:first-child:nth-last-child(odd) .hub-cats{grid-template-columns:repeat(3,1fr)}
.hub-cats a:last-child:nth-child(odd){grid-column:1/-1}
.pd-hl:only-child{grid-column:1/-1}
.mega-all .dept-ic{color:var(--teal)}
/* the card that completes a short product row */
.grid-filler{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:26px;border-radius:var(--radius);border:1.5px dashed var(--gold-soft);background:linear-gradient(150deg,#fff,var(--blue-soft));position:relative;overflow:hidden;min-height:220px}
.grid-filler::after{content:"";position:absolute;right:-50px;bottom:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(201,168,106,.2),transparent 68%);animation:floaty 8s ease-in-out infinite}
.grid-filler>*{position:relative;z-index:1}
.grid-filler.is-wide{flex-direction:row;align-items:center;gap:22px}
.grid-filler.is-wide>div:first-of-type{flex:1}
.gf-ic{width:54px;height:54px;border-radius:15px;background:linear-gradient(140deg,var(--teal),var(--ocean));color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 10px 24px rgba(11,93,94,.25)}
.grid-filler b{font-family:var(--font-head);font-size:1.08rem;color:var(--ocean);display:block;margin-bottom:5px}
.grid-filler p{margin:0;font-size:.86rem;color:var(--slate-600)}
.gf-actions{display:flex;gap:8px;flex-wrap:wrap}
.pd-credit{font-size:.72rem;color:var(--slate-400);margin:10px 2px 0}
.pd-credit a{color:var(--teal);text-decoration:underline}
.credit-table img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:9px;border:1px solid var(--border-soft)}
.credit-table th{width:auto}
.credit-table td{vertical-align:middle;font-size:.84rem}
.credit-table a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
@media(max-width:1080px){.dept-grid>*{flex-basis:calc(50% - 16px)!important}.hub-card:first-child:nth-last-child(odd) .hub-cats{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.hub-grid{grid-template-columns:1fr}.grid-filler.is-wide{flex-direction:column;align-items:flex-start}}
@media(max-width:560px){.dept-grid>*{flex-basis:100%!important}}
