/* RC Warrior shared responsive stability pass - v4 */
html,body{max-width:100%;overflow-x:hidden}
img,video,iframe{max-width:100%}
.container{min-width:0}
.header-row,.actions,.footer-grid,.catalog-note-inner,.catalog-note-actions{min-width:0}
.footer-logo p,.footer-contact a,.footer-links a{overflow-wrap:anywhere;word-break:normal}

/* Help / contact CTA used on Shop + Category pages */
.catalog-note{padding-bottom:72px!important}
.catalog-note-inner{padding:32px 34px!important;gap:24px!important}
.catalog-note-inner>div:first-child{min-width:0;flex:1}
.catalog-note h2{line-height:1.02!important;max-width:680px}
.catalog-note p{line-height:1.65!important}
.catalog-note-actions{flex:0 0 auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(150px,1fr))!important;gap:10px!important;width:auto!important}
.catalog-note-actions .btn{height:46px!important;min-height:46px!important;padding:0 18px!important;border-radius:12px!important;font-size:12px!important;line-height:1!important;font-weight:800!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:auto!important;flex:none!important}
.catalog-note-actions .btn svg{width:17px!important;height:17px!important;flex:0 0 auto}
.catalog-note-actions .btn-primary{background:var(--ink)!important;color:#fff!important}
.catalog-note-actions .btn-primary:hover{background:var(--orange)!important}
.catalog-note-actions .btn-light{background:#fff!important;color:var(--ink)!important;border:1px solid #dbe3e5!important}
.catalog-note-actions .btn-light:hover{border-color:var(--orange)!important;color:var(--orange)!important}

/* Floating contact controls - consistent on every page */
.float-actions{right:max(12px,env(safe-area-inset-right))!important;bottom:max(16px,calc(env(safe-area-inset-bottom) + 16px))!important;gap:9px!important;z-index:120!important}
.float-actions a{width:48px!important;height:48px!important;border-radius:50%!important;box-shadow:0 10px 26px rgba(5,26,35,.18)!important;border:1px solid rgba(255,255,255,.2)!important}
.float-actions .wa{background:#25D366!important;color:#fff!important}
.float-actions .call{background:#0d4b63!important;color:#fff!important}
/* Keep the actual WhatsApp chat-bubble + handset shape visible. Earlier CSS removed the bubble stroke. */
.float-actions .wa svg{width:25px!important;height:25px!important;stroke:currentColor!important;stroke-width:1.65!important;fill:none!important;overflow:visible}
.float-actions .wa svg path:first-child{stroke:currentColor!important;fill:none!important}
.float-actions .wa svg path:last-child{fill:currentColor!important;stroke:none!important}
.float-actions .call svg{width:21px!important;height:21px!important}
.float-actions a:focus-visible{outline:3px solid rgba(255,112,35,.35);outline-offset:3px}

/* Footer: prevent floating controls/text from feeling cramped on narrow devices */
.footer{padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 20px))!important}
.footer-logo p{max-width:430px}

@media(max-width:1024px){
  .catalog-note-inner{padding:30px!important;align-items:flex-start!important}
  .catalog-note-actions{grid-template-columns:repeat(2,minmax(140px,1fr))!important}
}

@media(max-width:820px){
  .catalog-note{padding-bottom:56px!important}
  .catalog-note-inner{flex-direction:column!important;padding:28px!important;border-radius:22px!important;gap:22px!important}
  .catalog-note-actions{width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .catalog-note-actions .btn{width:100%!important}
  .footer-grid{min-width:0!important}
}

@media(max-width:560px){
  :root{--container:calc(100% - 24px)!important}
  .header-row{min-width:0!important}
  .logo{min-width:0}
  .logo img{max-width:155px!important;height:auto!important}
  .actions{gap:2px!important;min-width:0}
  .header-shop-btn,.actions .icon,.mobile-menu{flex:0 0 auto}

  .catalog-note{padding:8px 0 48px!important}
  .catalog-note-inner{padding:24px 20px!important;border-radius:20px!important;gap:20px!important}
  .catalog-note h2{font-size:32px!important;line-height:1.02!important;margin:7px 0 10px!important}
  .catalog-note p{font-size:13px!important;line-height:1.65!important}
  .catalog-note-actions{grid-template-columns:1fr!important;gap:9px!important}
  .catalog-note-actions .btn{height:46px!important;min-height:46px!important;border-radius:12px!important;font-size:13px!important}

  .float-actions{right:12px!important;bottom:max(14px,calc(env(safe-area-inset-bottom) + 14px))!important;gap:8px!important}
  .float-actions a{width:44px!important;height:44px!important}
  .float-actions .wa svg{width:23px!important;height:23px!important}
  .float-actions .call svg{width:19px!important;height:19px!important}

  .footer{padding-top:46px!important}
  .footer-grid{grid-template-columns:1fr!important;gap:28px!important;padding-bottom:28px!important}
  .footer-logo{padding-right:58px!important;min-width:0}
  .footer-logo img{width:180px!important;max-width:75vw!important;height:auto!important}
  .footer-logo p{font-size:13px!important;line-height:1.72!important;max-width:none!important;margin-right:0!important}
  .footer-links a,.footer-contact a{font-size:13px!important;line-height:1.6!important}
  .footer-bottom{padding-right:56px!important;font-size:11px!important;line-height:1.65!important;gap:8px!important}
}

@media(max-width:390px){
  :root{--container:calc(100% - 20px)!important}
  .logo img{max-width:145px!important}
  .catalog-note-inner{padding:22px 17px!important}
  .catalog-note h2{font-size:29px!important}
  .catalog-note-actions .btn{height:44px!important;min-height:44px!important;font-size:12px!important}
  .footer-logo{padding-right:52px!important}
  .footer-logo img{width:168px!important}
  .footer-logo p{font-size:12.5px!important}
  .footer-bottom{padding-right:50px!important}
  .float-actions a{width:42px!important;height:42px!important}
  .float-actions .wa svg{width:22px!important;height:22px!important}
}

/* =========================================================
   RC WARRIOR CATALOG FILTER — true sticky desktop behavior
   Shop + Category pages
   ========================================================= */
:root{
  --rcw-filter-sticky-top:98px;
}

/*
   IMPORTANT:
   `overflow-x:hidden` on html/body can create a scroll container and break
   position:sticky in some browsers. `clip` prevents horizontal overflow
   without becoming the sticky containing scroll box.
*/
html,body{
  max-width:100%;
  overflow-x:clip!important;
}

/* Desktop + landscape tablet: keep the filter visible until the product
   listing column ends. The sidebar column stretches to the full grid height;
   the card inside it is the sticky element. No internal filter scrollbar. */
@media(min-width:901px){
  .catalog-page,
  .catalog-body,
  .catalog-body>.container,
  .catalog-layout,
  .catalog-products{
    overflow:visible!important;
  }

  .catalog-layout{
    align-items:stretch!important;
  }

  .catalog-sidebar{
    display:block!important;
    position:relative!important;
    top:auto!important;
    align-self:stretch!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:visible!important;
    z-index:8!important;
  }

  .catalog-sidebar>.filter-card{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:var(--rcw-filter-sticky-top)!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    scrollbar-width:auto!important;
  }

  .catalog-sidebar>.filter-card::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
  }

  .mobile-filter-btn{display:none!important}
}

/* Tablet portrait / mobile: replace the sidebar with the existing drawer. */
@media(max-width:900px){
  .catalog-layout{display:block!important}
  .catalog-sidebar{display:none!important}
  .mobile-filter-btn{display:inline-flex!important}
  .filter-drawer-panel{
    height:100vh!important;
    height:100dvh!important;
    max-height:100vh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
}

/* The sticky header is 82px high on these desktop layouts. */
@media(min-width:901px) and (max-width:1100px){
  :root{--rcw-filter-sticky-top:96px}
}


/* =========================================================
   RC WARRIOR V17 — MOBILE TOP ANNOUNCEMENT MARQUEE
   Desktop keeps the existing static announcement/contact row.
   Mobile uses a single-line looping marquee so the text never wraps.
   ========================================================= */
.announcement-marquee{display:none}
@media(max-width:700px){
  .announcement{overflow:hidden!important;height:36px!important;min-height:36px!important;background:#ff7023!important;color:#fff!important}
  .announcement>.announcement-desktop{display:none!important}
  .announcement-marquee{display:block!important;width:100%!important;height:36px!important;overflow:hidden!important;white-space:nowrap!important;position:relative!important}
  .announcement-marquee-track{display:flex!important;width:max-content!important;min-width:max-content!important;height:36px!important;align-items:center!important;will-change:transform!important;animation:rcwAnnouncementMarquee 21s linear infinite!important}
  .announcement-marquee-group{display:flex!important;align-items:center!important;flex:none!important;height:36px!important;white-space:nowrap!important;font-size:12px!important;line-height:1!important;font-weight:700!important;letter-spacing:0!important}
  .announcement-marquee-group span,.announcement-marquee-group a{display:inline-block!important;max-width:none!important;margin:0!important;padding:0!important;color:#fff!important;opacity:1!important;white-space:nowrap!important;line-height:1!important}
  .announcement-marquee-group i{display:inline-block!important;font-style:normal!important;margin:0 18px!important;color:rgba(255,255,255,.76)!important}
  .announcement-marquee-group:after{content:"";display:block;width:22px;flex:0 0 22px}
  .announcement-marquee:hover .announcement-marquee-track,.announcement-marquee:focus-within .announcement-marquee-track{animation-play-state:paused!important}
}
@media(max-width:390px){
  .announcement-marquee-group{font-size:11.5px!important}
  .announcement-marquee-group i{margin:0 15px!important}
}
@keyframes rcwAnnouncementMarquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){
  .announcement-marquee-track{animation-duration:34s!important}
}

/* =========================================================
   RC WARRIOR V28 — DESKTOP STICKY FILTER VIEWPORT FIT
   Keeps Apply Filters visible without introducing an inner scrollbar.
   Shop + Category desktop/landscape tablet only.
   ========================================================= */
@media(min-width:901px){
  :root{--rcw-filter-sticky-top:88px}

  .catalog-sidebar>.filter-card{
    padding:20px 19px 20px!important;
    border-radius:20px!important;
  }

  .catalog-sidebar>.filter-card .filter-head{
    padding-bottom:14px!important;
    margin-bottom:16px!important;
    align-items:center!important;
  }

  .catalog-sidebar>.filter-card .filter-head span{
    font-size:10.5px!important;
    letter-spacing:.11em!important;
  }

  .catalog-sidebar>.filter-card .filter-head h2{
    font-size:25px!important;
    line-height:1!important;
    margin-top:2px!important;
  }

  .catalog-sidebar>.filter-card .filter-reset{
    font-size:11.5px!important;
    padding:4px!important;
  }

  .catalog-sidebar>.filter-card .filter-group{
    margin-bottom:14px!important;
  }

  .catalog-sidebar>.filter-card .filter-group label{
    font-size:12.5px!important;
    line-height:1.2!important;
    margin-bottom:6px!important;
  }

  .catalog-sidebar>.filter-card .filter-select select{
    height:45px!important;
    border-radius:11px!important;
    padding-left:13px!important;
    padding-right:35px!important;
    font-size:12.5px!important;
  }

  .catalog-sidebar>.filter-card .filter-select svg{
    width:15px!important;
    height:15px!important;
    right:12px!important;
  }

  .catalog-sidebar>.filter-card .filter-apply{
    height:47px!important;
    min-height:47px!important;
    margin-top:4px!important;
    font-size:12.5px!important;
    flex:0 0 auto!important;
  }
}

/* Short-height laptops: compress only vertical rhythm further so the CTA
   stays in the same viewport while preserving the no-scrollbar behavior. */
@media(min-width:901px) and (max-height:760px){
  :root{--rcw-filter-sticky-top:82px}
  .catalog-sidebar>.filter-card{padding:13px 15px 14px!important}
  .catalog-sidebar>.filter-card .filter-head{padding-bottom:8px!important;margin-bottom:9px!important}
  .catalog-sidebar>.filter-card .filter-head h2{font-size:22px!important}
  .catalog-sidebar>.filter-card .filter-group{margin-bottom:7px!important}
  .catalog-sidebar>.filter-card .filter-group label{font-size:11.5px!important;margin-bottom:4px!important}
  .catalog-sidebar>.filter-card .filter-select select{height:36px!important;font-size:11.5px!important}
  .catalog-sidebar>.filter-card .filter-apply{height:40px!important;min-height:40px!important;margin-top:1px!important}
}

/* =========================================================
   RC WARRIOR V29 — CLIENT MOBILE HEADER REVIEW
   Smaller/thinner announcement marquee + larger mobile logo.
   ========================================================= */
@media(max-width:700px){
  .announcement{
    height:30px!important;
    min-height:30px!important;
  }
  .announcement-marquee{
    width:calc(100% - 20px)!important;
    height:30px!important;
    margin:0 auto!important;
  }
  .announcement-marquee-track{
    height:30px!important;
    animation-duration:22s!important;
  }
  .announcement-marquee-group{
    height:30px!important;
    font-size:10.5px!important;
    font-weight:700!important;
  }
  .announcement-marquee-group i{margin:0 12px!important}
  .announcement-marquee-group:after{width:14px!important;flex-basis:14px!important}

  .header-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .logo{display:flex!important;align-items:center!important;min-width:0!important}
  .logo img{
    width:176px!important;
    max-width:176px!important;
    height:auto!important;
  }
}
@media(max-width:390px){
  .announcement-marquee{width:calc(100% - 16px)!important}
  .announcement-marquee-group{font-size:10px!important}
  .announcement-marquee-group i{margin:0 10px!important}
  .logo img{width:166px!important;max-width:166px!important}
}

/* =========================================================
   RC WARRIOR V35 — MOBILE FILTER FIRST LABEL CLIP FIX
   Keep the first filter label safely inside the scroll viewport so the
   top of letters (notably the T in Type) is never clipped on mobile.
   ========================================================= */
@media(max-width:900px){
  .filter-drawer .filter-card{
    padding:5px 2px 0 0!important;
    overflow-x:visible!important;
  }
  .filter-drawer .filter-group:first-child{
    padding-top:1px!important;
  }
  .filter-drawer .filter-group label{
    line-height:1.35!important;
    padding-top:1px!important;
    overflow:visible!important;
  }
}

/* =========================================================
   RC WARRIOR V36 — MOBILE FILTER LABEL SAFE AREA FINAL FIX
   Keep only the inner filter list scrollable and reserve a true safe area
   above the first field label so glyph tops can never be clipped.
   ========================================================= */
@media(max-width:900px){
  .filter-drawer-panel{
    overflow:hidden!important;
  }
  .filter-drawer .filter-card{
    padding:12px 2px 2px 0!important;
    overflow-x:visible!important;
    overflow-y:auto!important;
    scrollbar-gutter:auto!important;
  }
  .filter-drawer .filter-group:first-child{
    margin-top:0!important;
    padding-top:2px!important;
  }
  .filter-drawer .filter-group label{
    display:block!important;
    min-height:20px!important;
    line-height:20px!important;
    padding:1px 0 2px!important;
    margin-top:0!important;
    overflow:visible!important;
  }
}
