.elementor-kit-19679{--e-global-color-primary:#003399;--e-global-color-secondary:#001F66;--e-global-color-text:#0C0C0C;--e-global-color-accent:#0047D6;--e-global-color-ccwht01:#FFFFFF;--e-global-color-ccbrl01:#6699FF;--e-global-color-cctin01:#EBEFF7;--e-global-color-cctin02:#CCD6EB;--e-global-color-ccstp03:#4D7FE6;--e-global-color-ccstp04:#99B3F0;--e-global-color-ccsrf01:#F8F9FA;--e-global-color-ccsrf02:#F3F4F6;--e-global-color-ccbrd01:#E5E7EB;--e-global-color-ccbrd02:#D1D5DB;--e-global-color-ccicn01:#9CA3AF;--e-global-color-ccmut01:#6B7280;--e-global-color-ccsft01:#4B5563;--e-global-color-ccbdy01:#374151;--e-global-color-ccink01:#2D2D2D;--e-global-color-ccink08:#1F2937;--e-global-color-ccink09:#111827;--e-global-color-ccdkt01:#3F3F46;--e-global-color-ccdkb01:#18181B;--e-global-typography-primary-font-family:"Poppins";--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.1em;--e-global-typography-primary-letter-spacing:-0.9px;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-size:24px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.33em;--e-global-typography-secondary-letter-spacing:0.6px;--e-global-typography-text-font-family:"Poppins";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.33em;--e-global-typography-displayxl-font-family:"Plus Jakarta Sans";--e-global-typography-displayxl-font-size:68px;--e-global-typography-displayxl-font-weight:800;--e-global-typography-displayxl-line-height:1.02em;--e-global-typography-displayxl-letter-spacing:-2.2px;--e-global-typography-displayl-font-family:"Plus Jakarta Sans";--e-global-typography-displayl-font-size:46px;--e-global-typography-displayl-font-weight:800;--e-global-typography-displayl-line-height:1.08em;--e-global-typography-displayl-letter-spacing:-1.2px;--e-global-typography-headingm-font-family:"Plus Jakarta Sans";--e-global-typography-headingm-font-size:26px;--e-global-typography-headingm-font-weight:700;--e-global-typography-headingm-line-height:1.2em;--e-global-typography-headingm-letter-spacing:-0.4px;--e-global-typography-headings-font-family:"Plus Jakarta Sans";--e-global-typography-headings-font-size:17px;--e-global-typography-headings-font-weight:700;--e-global-typography-headings-line-height:1.35em;--e-global-typography-headings-letter-spacing:-0.1px;--e-global-typography-label-font-family:"Plus Jakarta Sans";--e-global-typography-label-font-size:12px;--e-global-typography-label-font-weight:600;--e-global-typography-label-text-transform:uppercase;--e-global-typography-label-line-height:1.4em;--e-global-typography-label-letter-spacing:1.8px;--e-global-typography-bodyl-font-family:"Plus Jakarta Sans";--e-global-typography-bodyl-font-size:19px;--e-global-typography-bodyl-font-weight:400;--e-global-typography-bodyl-line-height:1.65em;--e-global-typography-bodyl-letter-spacing:0px;--e-global-typography-body-font-family:"Plus Jakarta Sans";--e-global-typography-body-font-size:17px;--e-global-typography-body-font-weight:400;--e-global-typography-body-line-height:1.7em;--e-global-typography-body-letter-spacing:0px;--e-global-typography-bodys-font-family:"Plus Jakarta Sans";--e-global-typography-bodys-font-size:14px;--e-global-typography-bodys-font-weight:400;--e-global-typography-bodys-line-height:1.6em;--e-global-typography-bodys-letter-spacing:0px;--e-global-typography-stat-font-family:"Plus Jakarta Sans";--e-global-typography-stat-font-size:44px;--e-global-typography-stat-font-weight:800;--e-global-typography-stat-line-height:1em;--e-global-typography-stat-letter-spacing:-1.5px;--e-global-typography-price-font-family:"Plus Jakarta Sans";--e-global-typography-price-font-size:30px;--e-global-typography-price-font-weight:800;--e-global-typography-price-line-height:1.1em;--e-global-typography-price-letter-spacing:-0.8px;--e-global-typography-brandmark-font-family:"Plus Jakarta Sans";--e-global-typography-brandmark-font-size:22px;--e-global-typography-brandmark-font-weight:800;--e-global-typography-brandmark-line-height:1.1em;--e-global-typography-brandmark-letter-spacing:-0.6px;--e-global-typography-subhead-font-family:"Plus Jakarta Sans";--e-global-typography-subhead-font-size:19px;--e-global-typography-subhead-font-weight:700;--e-global-typography-subhead-line-height:1.4em;--e-global-typography-subhead-letter-spacing:-0.2px;color:#111827;font-family:"Poppins", Sans-serif;font-size:16px;font-weight:400;line-height:1.5em;}.elementor-kit-19679 e-page-transition{background-color:#FFBC7D;}.elementor-kit-19679 a{color:#003399;}.elementor-kit-19679 a:hover{color:#0047D6;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1152px;}.e-con{--container-max-width:1152px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-19679{--e-global-typography-displayxl-font-size:52px;--e-global-typography-displayl-font-size:38px;--e-global-typography-headingm-font-size:24px;--e-global-typography-headings-font-size:16px;--e-global-typography-label-font-size:12px;--e-global-typography-bodyl-font-size:18px;--e-global-typography-body-font-size:16px;--e-global-typography-bodys-font-size:14px;--e-global-typography-stat-font-size:38px;--e-global-typography-price-font-size:26px;--e-global-typography-brandmark-font-size:20px;--e-global-typography-subhead-font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-19679{--e-global-typography-displayxl-font-size:38px;--e-global-typography-displayl-font-size:30px;--e-global-typography-headingm-font-size:21px;--e-global-typography-headings-font-size:15px;--e-global-typography-label-font-size:11px;--e-global-typography-bodyl-font-size:17px;--e-global-typography-body-font-size:16px;--e-global-typography-bodys-font-size:13px;--e-global-typography-stat-font-size:32px;--e-global-typography-price-font-size:24px;--e-global-typography-brandmark-font-size:18px;--e-global-typography-subhead-font-size:17px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root{--osc-header-h:56px;--osc-t-fast:150ms cubic-bezier(.4,0,.2,1);--osc-t-base:250ms cubic-bezier(.4,0,.2,1);--osc-t-slow:400ms cubic-bezier(.4,0,.2,1);}
@media(min-width:1025px){:root{--osc-header-h:64px;}}

/* GRID */
.osc-rows-auto{--e-con-grid-template-rows:auto!important;}

/* HEADER */
.osc-header{position:fixed!important;inset:0 0 auto 0!important;z-index:888!important;}
.osc-logo-knock img{filter:brightness(0) invert(1);}
.osc-navwrap .elementor-nav-menu--main .elementor-item{border-radius:8px;transition:background-color var(--osc-t-fast);}
.osc-navwrap .elementor-nav-menu--main .elementor-item:hover,
.osc-navwrap .elementor-nav-menu--main .elementor-item.elementor-item-active{background-color:rgba(255,255,255,.14);}

/* HERO */
.osc-hero{padding-top:var(--osc-header-h)!important;background-image:linear-gradient(168deg,#001F66 0%,#003399 52%,#0047D6 100%)!important;}
.osc-hero-glow{position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none;background:radial-gradient(120% 70% at 50% 100%,rgba(102,153,255,.34) 0%,rgba(0,31,102,0) 62%);}
.osc-hero-media{position:relative;z-index:2;width:100%;}
.osc-hero-media img{width:100%;height:auto;display:block;object-fit:contain;object-position:bottom center;}
@media(min-width:1025px){
  .osc-hero-media{position:absolute!important;left:50%!important;bottom:0!important;transform:translateX(-50%);width:min(1180px,100%)!important;margin:0!important;}
  .osc-hero-media img{max-height:56vh;width:auto;margin-inline:auto;}
}

/* CATEGORY STRIP */
.osc-strip{position:relative;z-index:20;margin-top:-35px!important;margin-bottom:25px!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

/* MARQUEE */
.osc-marquee{overflow:hidden!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);}
.osc-marquee-track{--e-con-grid-template-columns:none!important;display:flex!important;flex-wrap:nowrap!important;width:max-content!important;max-width:none!important;animation:osc-scroll 40s linear infinite;}
.osc-marquee-track.osc-rev{animation-duration:48s;animation-direction:reverse;}
.osc-marquee-track>*{flex:0 0 auto;}
.osc-marquee-track img{height:44px;width:auto;max-width:160px;object-fit:contain;opacity:.9;transition:opacity var(--osc-t-base),transform var(--osc-t-base);}
.osc-marquee-track img:hover{opacity:1;transform:scale(1.06);}
@media(min-width:768px){.osc-marquee-track img{height:52px;max-width:180px;}}
@keyframes osc-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.osc-quotes{overflow:hidden!important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);}
.osc-quotes-track{display:flex!important;flex-wrap:nowrap!important;width:max-content!important;max-width:none!important;animation:osc-scroll 55s linear infinite;}
.osc-quotes-track>*{flex:0 0 auto;width:340px;}

/* RAIL */
.osc-rail{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);overflow-x:auto!important;scroll-snap-type:x mandatory;scrollbar-width:none;padding-block:8px;}
.osc-rail::-webkit-scrollbar{display:none;}
.osc-rail>*{scroll-snap-align:start;width:auto!important;min-width:0;}
@media(min-width:768px){.osc-rail{grid-auto-columns:minmax(200px,1fr);}}
@media(min-width:1025px){.osc-rail{grid-template-columns:repeat(5,1fr);grid-auto-flow:row;overflow:visible!important;}}

/* COLLAGE */
.osc-collage{gap:16px;}
.osc-collage-main{min-height:280px;}
@media(min-width:768px){
  .osc-collage{display:grid!important;grid-template-columns:27% 1fr 27%!important;align-items:stretch;}
  .osc-collage-main{min-height:420px;}
}
.osc-collage-col{display:flex!important;flex-direction:column;gap:16px;height:100%;}
.osc-collage-col>*{flex:1 1 0;min-height:130px!important;}

/* SPLIT */
@media(min-width:1025px){
  .osc-split{display:grid!important;grid-template-columns:32% 1fr!important;align-items:stretch;}
}

/* HEADER CTA hidden on phones, matching the prototype */
@media(max-width:767px){.osc-header .elementor-widget-button{display:none!important;}}

/* Article date carries no icon */
.e-loop-item .elementor-icon-list-icon{display:none!important;}

/* CARD HOVER */
.osc-lift{transition:transform var(--osc-t-base),box-shadow var(--osc-t-base),border-color var(--osc-t-base);}
.osc-lift:hover{transform:translateY(-4px);}
.osc-zoom img{transition:transform var(--osc-t-slow);}
.osc-zoom:hover img{transform:scale(1.04);}

/* STEP TRACK */
.osc-step{position:relative;overflow:visible!important;}
.osc-step-node{position:absolute!important;top:-22px;left:22px;width:44px;height:44px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:linear-gradient(330deg,#001F66 0%,#003399 85%);color:#fff;font-weight:700;font-size:15px;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 0 0 6px #fff,0 8px 18px -2px rgba(0,51,153,.35);transition:transform var(--osc-t-base);z-index:2;}
.osc-step:hover .osc-step-node{transform:scale(1.08);}

/* FAQ */
.osc-faq-item{transition:background-color var(--osc-t-base),border-color var(--osc-t-base);}
.osc-faq-item[data-open="true"]{background-color:#EBEFF7!important;border-color:#CCD6EB!important;}
.osc-faq-q{cursor:pointer;}
.osc-faq-item[data-open="true"] .osc-faq-q .elementor-heading-title{color:#003399!important;}
.osc-faq-mark{width:32px;height:32px;border-radius:9999px;border:1px solid #D1D5DB;display:flex;align-items:center;justify-content:center;color:#6B7280;flex:0 0 auto;transition:background-color var(--osc-t-base),border-color var(--osc-t-base),color var(--osc-t-base),transform var(--osc-t-base);}
.osc-faq-mark svg{width:16px;height:16px;}
.osc-faq-q:hover .osc-faq-mark{border-color:#003399;color:#003399;}
.osc-faq-item[data-open="true"] .osc-faq-mark{background:#003399;border-color:#003399;color:#fff;transform:rotate(180deg);}
.osc-faq-panel{display:grid!important;grid-template-rows:0fr;transition:grid-template-rows var(--osc-t-slow);padding:0!important;overflow:hidden!important;}
.osc-faq-item[data-open="true"] .osc-faq-panel{grid-template-rows:1fr;}
.osc-faq-panel>.e-con-inner,.osc-faq-panel>*{overflow:hidden;min-height:0;}


.osc-faq-panel>*{transition:padding var(--osc-t-slow);}
.osc-faq-item[data-open="false"] .osc-faq-panel>*{padding-top:0!important;padding-bottom:0!important;}
/* FOOTER */
.osc-social .elementor-social-icon,.osc-social a{position:relative!important;display:inline-flex!important;align-items:center;justify-content:center;width:44px!important;height:44px!important;min-width:44px;border-radius:9999px;color:#fff!important;background:none!important;}
.osc-social a::before{content:"";position:absolute;width:37.6px;height:37.6px;border-radius:9999px;background:rgba(255,255,255,.14);transition:background-color var(--osc-t-fast);}
.osc-social a:hover::before{background:rgba(255,255,255,.28);}
.osc-social a svg,.osc-social a i{position:relative;width:18px;height:18px;font-size:18px;}
.osc-legal dl,.osc-legal{overflow-wrap:anywhere;}
.osc-wrap-any,.osc-wrap-any *{overflow-wrap:anywhere;}
.osc-footer-col{min-width:0!important;}

.osc-min0{min-width:0!important;}

/* PROSE */
.osc-prose{max-width:720px;margin-inline:auto;text-align:center;}

/* A11Y */
.osc-tap a,a.osc-tap{min-height:44px;display:inline-flex;align-items:center;}
.elementor-widget-button .elementor-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
.osc-logo-knock a{min-height:44px;display:inline-flex;align-items:center;}
.osc-faq-q{min-height:44px;}
.elementor-icon-list-item>a{min-height:44px;}
:where(a,button,summary):focus-visible{outline:3px solid rgba(0,51,153,.55);outline-offset:2px;border-radius:4px;}

@media(prefers-reduced-motion:reduce){
  .osc-marquee-track,.osc-quotes-track{animation:none!important;}
  *,*::before,*::after{transition-duration:.01ms!important;}
}

/* MOBILE LAYOUT */
@media(max-width:767px){
  .osc-collage-col{flex-direction:row!important;flex-wrap:nowrap!important;}
  .osc-collage-col>*{flex:1 1 0!important;width:auto!important;min-width:0!important;min-height:120px!important;}
  .osc-strip .e-grid{grid-auto-flow:column!important;grid-template-columns:none!important;grid-auto-columns:minmax(84px,1fr)!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
  .osc-strip .e-grid::-webkit-scrollbar{display:none;}
  .osc-strip .e-grid>*{scroll-snap-align:start;}
}

.osc-badge{width:fit-content!important;max-width:100%;}

/* LOGO + FAQ ICON CENTERING */
.osc-logo-knock a{min-height:44px!important;display:inline-flex!important;align-items:center!important;}
.osc-logo-knock img{display:block!important;}
.osc-faq-mark .elementor-widget-icon,.osc-faq-mark .elementor-icon-wrapper,.osc-faq-mark .elementor-icon{display:flex!important;align-items:center!important;justify-content:center!important;line-height:0!important;width:auto!important;}
.osc-faq-mark svg{display:block!important;}

/* RAIL NAV */
.osc-railwrap{position:relative;width:100%;max-width:100%;min-width:0;}
.osc-railwrap>.osc-rail{min-width:0;max-width:100%;}
.osc-rail-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9999px;background:#fff;border:1px solid #E5E7EB;color:#003399;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);cursor:pointer;padding:0;transition:background-color var(--osc-t-fast),border-color var(--osc-t-fast),opacity var(--osc-t-fast);}
.osc-rail-nav svg{width:20px;height:20px;display:block;}
.osc-rail-nav:hover,.osc-rail-nav:active,.osc-rail-nav:focus-visible{background:#003399;border-color:#003399;color:#fff;}
.osc-rail-nav:disabled{opacity:.35;cursor:default;}
.osc-rail-nav[hidden]{display:none!important;}
.osc-rail-prev{left:-6px;}
.osc-rail-next{right:-6px;}
@media(min-width:1025px){.osc-rail-nav{display:none!important;}}

/* PROSE TYPE */
.osc-prose{max-width:none!important;margin-inline:auto!important;}
.osc-prose-h2{font-size:30px;line-height:36px;font-weight:800;letter-spacing:-0.9px;color:#0C0C0C;margin:0 0 14px;}
.osc-prose-h3{font-size:20px;line-height:28px;font-weight:700;color:#1F2937;margin:36px 0 14px;}
@media(max-width:1024px){.osc-prose-h2{font-size:26px;line-height:32px;}}
@media(max-width:767px){.osc-prose-h2{font-size:20px;line-height:27px;letter-spacing:-0.6px;}.osc-prose-h3{font-size:16px;line-height:24px;margin-top:26px;}}

/* NAV SPACING */
@media(min-width:1025px){.osc-navwrap .elementor-nav-menu--main>ul>li+li{margin-left:10px;}}

/* HERO MOBILE SCALE */
@media(max-width:767px){
  .osc-hero-media{width:100%!important;max-width:100%!important;margin-left:0!important;overflow:hidden;}
  .osc-hero-media img{width:165%!important;max-width:none!important;margin-left:-32.5%!important;}
}

/* FOOTER MOBILE */
@media(max-width:767px){
  .osc-footer .elementor-icon-list-item>a,.osc-footer .elementor-icon-list-item{min-height:38px!important;}
  .osc-footer .osc-social a{width:40px!important;height:40px!important;}
  .osc-footer .osc-social a::before{width:34px;height:34px;}
  .osc-footer .osc-social a svg,.osc-footer .osc-social a i{width:16px;height:16px;font-size:16px;}
}

/* HERO CTA */
@media(max-width:767px){
  .osc-hero-cta{width:100%!important;flex-wrap:nowrap!important;}
  .osc-hero-cta>*{flex:1 1 0!important;width:auto!important;min-width:0!important;}
  .osc-hero-cta .elementor-button{width:100%!important;justify-content:center;}
}

/* FAQ MARK NOWRAP */
.osc-faq-q{flex-wrap:nowrap!important;}
.osc-faq-q>.elementor-widget-heading{flex:1 1 0!important;min-width:0!important;width:auto!important;}
.osc-faq-mark{flex:0 0 32px!important;width:32px!important;height:32px!important;align-self:center;}

/* QUOTES MOBILE: one card per view, native touch, looping */
@media(max-width:767px){
  .osc-quotes{overflow-x:auto!important;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:none!important;mask-image:none!important;}
  .osc-quotes::-webkit-scrollbar{display:none;}
  .osc-quotes-track{animation:none!important;width:100%!important;max-width:none!important;}
  .osc-quotes-track>*{flex:0 0 100%!important;width:100%!important;scroll-snap-align:center;}
}

/* ARTICLES HEAD MOBILE: title shrinks so the CTA stays on the line */
@media(max-width:767px){
  .elementor-element-sec1403{width:auto!important;flex:0 1 auto!important;min-width:0!important;}
  .elementor-element-sec1405{flex:0 0 auto!important;width:auto!important;}
  .elementor-element-sec1405 .elementor-button{white-space:nowrap;padding:10px 16px!important;font-size:14px!important;}
}

/* ARTICLE ARCHIVE PAGINATION */
.osc-pagination .elementor-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;}
.osc-pagination .elementor-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border-radius:10px;border:1px solid #E5E7EB;background:#FFFFFF;margin:0;transition:background-color .18s ease,color .18s ease,border-color .18s ease;}
.osc-pagination .elementor-pagination .page-numbers.dots{border-color:transparent;background:transparent;min-width:24px;padding:0;}
.osc-pagination .elementor-pagination a.page-numbers:hover{border-color:#003399;background:#EBEFF7;}
.osc-pagination .elementor-pagination .page-numbers.current{background:#003399;border-color:#003399;}
@media(max-width:767px){
  .osc-pagination .elementor-pagination{gap:5px;}
  .osc-pagination .elementor-pagination .page-numbers{min-width:40px;height:40px;padding:0 8px;font-size:14px;}
  .osc-pagination .elementor-pagination .page-numbers.prev,.osc-pagination .elementor-pagination .page-numbers.next{padding:0 12px;}
}
.osc-pagination .elementor-pagination span.page-numbers.prev,.osc-pagination .elementor-pagination span.page-numbers.next{opacity:.45;cursor:default;}

/* SINGLE ARTICLE PROSE */
.osc-article p{margin:0 0 18px;}
.osc-article p:last-child{margin-bottom:0;}
.osc-article h2{font-family:"Poppins",sans-serif;font-size:24px;line-height:32px;font-weight:700;color:#1F2937;margin:36px 0 12px;letter-spacing:0;}
.osc-article h3{font-family:"Poppins",sans-serif;font-size:20px;line-height:28px;font-weight:700;color:#1F2937;margin:28px 0 10px;letter-spacing:0;}
.osc-article h2:first-child,.osc-article h3:first-child{margin-top:0;}
.osc-article ul,.osc-article ol{margin:0 0 18px;padding-left:22px;}
.osc-article li{margin-bottom:8px;}
.osc-article a{color:#003399;text-decoration:underline;text-underline-offset:2px;}
.osc-article a:hover{color:#0047D6;}
.osc-article img{border-radius:16px;height:auto;max-width:100%;}
.osc-article figure{margin:24px 0;}
.osc-article blockquote{margin:24px 0;padding:4px 0 4px 20px;border-left:3px solid #003399;color:#1F2937;}
.osc-article table{width:100%;border-collapse:collapse;margin:0 0 18px;}
.osc-article th,.osc-article td{border:1px solid #E5E7EB;padding:10px 12px;text-align:left;}
@media(max-width:767px){
  .osc-article h2{font-size:22px;line-height:30px;margin-top:28px;}
  .osc-article h3{font-size:18px;line-height:26px;margin-top:22px;}
}
.osc-meta .elementor-icon-list-icon{display:none!important;}
.osc-em{color:#003399;}
.osc-measure{max-width:768px!important;margin-left:auto!important;margin-right:auto!important;}

/* ABOUT US CONTACT FORM */
.osc-form .elementor-field-group .elementor-field{min-height:46px;padding:11px 14px;}
.osc-form .elementor-field-group textarea.elementor-field{min-height:110px;}
.osc-form .elementor-field-group>label{margin-bottom:6px;}

/* PORTFOLIO CATEGORY RAILS: keep sliding at every width */
@media(min-width:1025px){
  .osc-rail.osc-rail-x{grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:minmax(220px,1fr)!important;overflow-x:auto!important;}
  .osc-railwrap:has(> .osc-rail-x) .osc-rail-nav{display:flex!important;}
}
.osc-flexfill{flex:1 1 0%!important;min-width:0!important;width:auto!important;max-width:100%!important;}
@media(max-width:767px){.osc-flexfill{width:100%!important;flex:1 1 auto!important;}}
.osc-search{max-width:520px!important;margin-left:auto!important;margin-right:auto!important;width:100%!important;}
.osc-search .elementor-search-form__container{overflow:hidden;}

/* PRODUCT CATEGORY PLATE */
/* Packshots ship on white or near-white grounds. multiply drops those grounds
   into the plate, so six differently-shot sources read as one specimen set. */
.osc-plate{background:#F8F9FA;}
.osc-plate img{mix-blend-mode:multiply;aspect-ratio:1;object-fit:contain;}
.osc-catcard:hover{border-color:#003399!important;}
.osc-catcard .osc-more{color:#003399;}
.osc-catcard .osc-more .elementor-heading-title{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:#003399;color:#FFFFFF;padding:12px 22px;border-radius:12px;transition:background-color var(--osc-t-base);}
.osc-catcard .osc-more .elementor-heading-title:after{content:"→";margin-left:8px;transition:transform var(--osc-t-base);}
.osc-catcard:hover .osc-more .elementor-heading-title{background:#0047D6;}
.osc-catcard:hover .osc-more .elementor-heading-title:after{transform:translateX(4px);}

/* HOME CATEGORY RAIL */
/* The categories widget renders its own <ul class="products elementor-grid">.
   Nesting that inside .osc-rail produced a grid within a grid and crushed the
   cards, so the <ul> is made the rail itself. */
.osc-catrail ul.products{display:grid!important;grid-template-columns:none!important;
  grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);gap:16px;margin:0;padding:8px 0;
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.osc-catrail ul.products::-webkit-scrollbar{display:none;}
.osc-catrail ul.products>li{scroll-snap-align:start;width:auto!important;min-width:0;}
@media(min-width:768px){.osc-catrail ul.products{grid-auto-columns:minmax(200px,1fr);}}
@media(min-width:1025px){.osc-catrail ul.products{grid-template-columns:repeat(6,1fr)!important;
  grid-auto-flow:row;overflow:visible;}}
.osc-catrail li.product-category{list-style:none;margin:0;padding:0;float:none!important;
  background:#FFFFFF;border:1px solid #E5E7EB;border-radius:16px;overflow:hidden;
  transition:transform var(--osc-t-base),border-color var(--osc-t-base);}
.osc-catrail li.product-category:hover{transform:translateY(-4px);border-color:#003399;}
.osc-catrail li.product-category>a{display:block;text-decoration:none;background:#F8F9FA;}
.osc-catrail li.product-category img{display:block;width:100%;height:auto;aspect-ratio:1;
  object-fit:contain;mix-blend-mode:multiply;margin:0;padding:14px;}
.osc-catrail .woocommerce-loop-category__title{font-family:"Poppins",sans-serif;font-size:15px;
  line-height:22px;font-weight:600;color:#111827;text-align:center;margin:0;padding:14px 12px 18px;background:#FFFFFF;}
.osc-catrail .woocommerce-loop-category__title .count,
.osc-catrail .woocommerce-loop-category__title mark{display:none;}

/* Centres a fit-content flex item once it wraps onto its own line.
   Elementor's margin control will not emit auto, and align-self only works on
   the cross axis, which is vertical inside a row. */
@media(max-width:767px){.osc-center-mobile{margin-left:auto!important;margin-right:auto!important;}}

/* CLIENT PROOF BAND (About) */
/* Eighteen client logos in eighteen different brand colours fight each other and
   the page. Desaturating them lets the wall read as one calm band; colour returns
   on hover so each mark is still identifiable. */
.osc-logowall img{max-height:32px;width:auto;margin:0 auto;object-fit:contain;
  filter:grayscale(1);opacity:.55;transition:filter var(--osc-t-base),opacity var(--osc-t-base);}
.osc-logowall img:hover{filter:grayscale(0);opacity:1;}
@media(max-width:767px){.osc-logowall img{max-height:26px;}}

/* Quotes are set as editorial pull-quotes rather than bordered cards: the card
   treatment is what made this band read as stock filler. */
.osc-quote-ed{position:relative;padding-left:48px;}
.osc-quote-ed:before{content:"“";position:absolute;left:0;top:-14px;
  font-family:"Poppins",sans-serif;font-size:66px;line-height:1;font-weight:800;color:#CCD6EB;}
@media(min-width:768px){.osc-quotegrid>*+.osc-quote-ed{border-left:1px solid #E5E7EB;padding-left:88px;}}
@media(max-width:767px){.osc-quote-ed{padding-left:40px;}.osc-quote-ed:before{font-size:52px;top:-10px;}}

/* Gallery tiles */
.osc-gal img{aspect-ratio:4/3;object-fit:cover;border-radius:16px;display:block;width:100%;}

/* Drops a decorative button arrow on small screens so an inline head row keeps
   real slack instead of fitting by a pixel. The label already states the action. */
@media(max-width:767px){.osc-noicon-mobile .elementor-button-icon{display:none!important;}}

/* Two CTAs share the row evenly on small screens. flex:1 1 0 makes the split
   exact regardless of label length; min-width:0 lets them actually shrink. */
@media(max-width:767px){
  .osc-btnrow50{flex-wrap:nowrap!important;}
  .osc-btnrow50>.elementor-widget{flex:1 1 0!important;width:auto!important;min-width:0!important;}
  .osc-btnrow50 .elementor-button{width:100%;justify-content:center;white-space:nowrap;}
}

/* WOOCOMMERCE SINGLE PRODUCT */
/* osc-wc-badge: the sale flash is painted by the theme in an off-palette olive */
.elementor-widget-woocommerce-product-images .onsale,
.elementor-widget-woocommerce-products .onsale,
.elementor-widget-wc-archive-products .onsale{background:#003399!important;color:#FFFFFF!important;
  font-family:"Poppins",sans-serif;font-size:12px;font-weight:600;letter-spacing:0;}
/* the gallery sizes to the source image, leaving the column half empty */
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img{width:100%;height:auto;}
/* WooCommerce wraps the old price in <del> and the price you actually pay in
   <ins>. Elementor's price_color paints the wrapper, so <del> inherits the loud
   colour and <ins> keeps a browser underline. Set them explicitly. */
.elementor-widget-woocommerce-product-price del,
.elementor-widget-woocommerce-products del{color:#6B7280!important;font-weight:400;opacity:1;}
.elementor-widget-woocommerce-product-price ins,
.elementor-widget-woocommerce-products ins{color:#003399!important;text-decoration:none;font-weight:800;background:transparent;}

/* WOOCOMMERCE CART / CHECKOUT */
/* These keep WooCommerce's own block templates, which are the maintained path.
   They only need the fixed-header offset, the site container, and brand buttons. */
/* .site-main sits straight in <body> with no constraining wrapper, so the header
   band can run full width without any 100vw breakout trick. */
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main{max-width:none;padding:0;}
body.woocommerce-cart .page-header,
body.woocommerce-checkout .page-header,
body.woocommerce-account .page-header{background:#F8F9FA;text-align:center;padding:144px 24px 56px;margin:0;}
@media(max-width:1024px){body.woocommerce-cart .page-header,body.woocommerce-checkout .page-header,
  body.woocommerce-account .page-header{padding:144px 24px 48px;}}
@media(max-width:767px){body.woocommerce-cart .page-header,body.woocommerce-checkout .page-header,
  body.woocommerce-account .page-header{padding:136px 12px 40px;}}
body.woocommerce-cart .page-header .entry-title,
body.woocommerce-checkout .page-header .entry-title,
body.woocommerce-account .page-header .entry-title{max-width:1152px;margin:0 auto;
  font-family:"Poppins",sans-serif;font-size:44px;line-height:54px;font-weight:800;
  letter-spacing:-0.9px;color:#0C0C0C;}
@media(max-width:1024px){body.woocommerce-cart .page-header .entry-title,
  body.woocommerce-checkout .page-header .entry-title,
  body.woocommerce-account .page-header .entry-title{font-size:38px;line-height:48px;}}
@media(max-width:767px){body.woocommerce-cart .page-header .entry-title,
  body.woocommerce-checkout .page-header .entry-title,
  body.woocommerce-account .page-header .entry-title{font-size:30px;line-height:40px;letter-spacing:-0.6px;}}
body.woocommerce-cart .page-content,
body.woocommerce-checkout .page-content,
body.woocommerce-account .page-content{max-width:1152px;margin:0 auto;padding:56px 24px 88px;}
@media(max-width:767px){body.woocommerce-cart .page-content,body.woocommerce-checkout .page-content,
  body.woocommerce-account .page-content{padding:40px 12px 56px;}}
/* the theme paints these dark grey with a link-coloured label */
.woocommerce-page .wc-block-components-button:not(.is-link),
.woocommerce-page .woocommerce a.button,
.woocommerce-page .woocommerce button.button,
.woocommerce-page .wp-element-button{background:#003399!important;color:#FFFFFF!important;
  border:0!important;border-radius:12px!important;font-family:"Poppins",sans-serif;
  font-size:15px!important;font-weight:600!important;min-height:48px;
  display:inline-flex!important;align-items:center;justify-content:center;text-align:center;}
.woocommerce-page .wc-block-components-button:not(.is-link):hover,
.woocommerce-page .woocommerce a.button:hover,
.woocommerce-page .wp-element-button:hover{background:#0047D6!important;}
.woocommerce-page .wc-block-components-button__text{color:#FFFFFF!important;}
.woocommerce-page .wc-block-components-button:not(.is-link){text-decoration:none!important;}
/* give the totals column a surface so it reads as a panel */
.wp-block-woocommerce-cart-totals-block,
.wc-block-checkout__sidebar .wc-block-components-sidebar{background:#FFFFFF;border:1px solid #E5E7EB;
  border-radius:16px;padding:24px;}
@media(max-width:767px){.wp-block-woocommerce-cart-totals-block,
  .wc-block-checkout__sidebar .wc-block-components-sidebar{padding:18px;}}
.woocommerce-page .wc-block-components-totals-item__value,
.woocommerce-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:#003399;}

/* Product cards: box_border_width alone emits no border without a style */
.osc-prodgrid li.product{border:1px solid #E5E7EB!important;border-radius:16px;padding:16px;background:#FFFFFF;}
.osc-prodgrid li.product img{border-radius:12px;}
.osc-prodgrid .woocommerce-loop-product__title{font-family:"Poppins",sans-serif;font-size:15px;line-height:22px;font-weight:600;color:#0C0C0C;}
/* the theme's ordering select is unstyled next to everything else */
.woocommerce-ordering select{font-family:"Poppins",sans-serif;font-size:14px;color:#1F2937;
  border:1px solid #E5E7EB;border-radius:10px;padding:10px 14px;min-height:44px;background:#FFFFFF;}
.woocommerce-result-count{font-family:"Poppins",sans-serif;font-size:14px;color:#6B7280;}

/* EMPTY CART + MY ACCOUNT */
/* The empty cart uses the legacy .wc-block-grid, whose buttons, prices and titles
   sit outside every .elementor-kit-19679 written for the filled cart and the archive. */
.wp-block-woocommerce-empty-cart-block{text-align:center;}
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon{font-family:"Poppins",sans-serif;
  font-size:20px;line-height:28px;font-weight:600;color:#1F2937;margin:0 0 56px;}
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon:before{opacity:.28;}
.wp-block-woocommerce-empty-cart-block .wp-block-separator{display:none;}
.wp-block-woocommerce-empty-cart-block > h2.wp-block-heading:not(.with-empty-cart-icon){
  font-family:"Poppins",sans-serif;font-size:36px;line-height:40px;font-weight:800;
  letter-spacing:-0.9px;color:#0C0C0C;margin:0 0 32px;padding-top:10px;}
@media(max-width:767px){.wp-block-woocommerce-empty-cart-block > h2.wp-block-heading:not(.with-empty-cart-icon){
  font-size:24px;line-height:30px;letter-spacing:-0.6px;margin-bottom:22px;}}
.wc-block-grid__products{gap:24px;}
.wc-block-grid__product{border:1px solid #E5E7EB;border-radius:16px;padding:16px;background:#FFFFFF;text-align:center;}
.wc-block-grid__product-image img{border-radius:12px;}
.wc-block-grid__product-title{font-family:"Poppins",sans-serif;font-size:15px;line-height:22px;
  font-weight:600;color:#0C0C0C;text-decoration:none;}
.wc-block-grid__product-link,.wc-block-grid__product-title a{text-decoration:none;color:#0C0C0C;}
.wc-block-grid__product-price del{color:#6B7280;font-weight:400;}
.wc-block-grid__product-price ins{color:#003399;text-decoration:none;font-weight:800;background:transparent;}
.wc-block-grid__product-onsale{background:#003399!important;color:#FFFFFF!important;border:0!important;
  border-radius:9999px;font-family:"Poppins",sans-serif;font-size:12px;font-weight:600;}
.wc-block-grid__product .wp-block-button__link{background:#003399!important;color:#FFFFFF!important;
  border:0!important;border-radius:10px!important;font-family:"Poppins",sans-serif;font-size:14px!important;
  font-weight:600!important;min-height:44px;display:inline-flex!important;align-items:center;
  justify-content:center;text-decoration:none!important;padding:10px 18px;}
.wc-block-grid__product .wp-block-button__link:hover{background:#0047D6!important;}

/* My Account: WooCommerce ships the account shell as a shortcode, so it is styled
   here rather than rebuilt. */
body.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;}
body.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0 0 6px;}
body.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px;
  border-radius:10px;font-family:"Poppins",sans-serif;font-size:15px;font-weight:500;
  color:#374151;text-decoration:none;min-height:44px;line-height:20px;}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:#EBEFF7;color:#003399;}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:#003399;color:#FFFFFF;}
body.woocommerce-account .woocommerce-MyAccount-content{font-family:"Poppins",sans-serif;color:#374151;}
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register{background:#FFFFFF;border:1px solid #E5E7EB;
  border-radius:16px;padding:28px;max-width:520px;margin:0 auto;}
body.woocommerce-account .woocommerce-form-login label,
body.woocommerce-account .woocommerce form .form-row label{font-family:"Poppins",sans-serif;
  font-size:14px;font-weight:600;color:#1F2937;margin-bottom:6px;display:block;}
body.woocommerce-account .woocommerce form .form-row input.input-text,
body.woocommerce-account .woocommerce form .form-row input[type=password]{width:100%;min-height:46px;
  padding:11px 14px;border:1px solid #E5E7EB;border-radius:10px;font-family:"Poppins",sans-serif;font-size:16px;color:#1F2937;}
body.woocommerce-account .woocommerce form .form-row input.input-text:focus{border-color:#003399;outline:none;}

/* WooCommerce notices ship with a 3px olive rule and square corners */
.woocommerce-message,.woocommerce-info,.woocommerce-error{font-family:"Poppins",sans-serif;
  font-size:15px;line-height:24px;color:#1F2937;background:#EBEFF7;border:0;border-left:4px solid #003399;
  border-radius:12px;padding:16px 20px;margin:0 0 28px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.woocommerce-error{background:#FEF2F2;border-left-color:#B91C1C;}
.woocommerce-message:before,.woocommerce-info:before,.woocommerce-error:before{position:static;margin:0;color:#003399;}
.woocommerce-error:before{color:#B91C1C;}
.woocommerce-message .button,.woocommerce-info .button{margin-left:auto;}
/* the account shell prints its own form heading */
body.woocommerce-account .woocommerce h2{font-family:"Poppins",sans-serif;font-size:24px;line-height:32px;
  font-weight:700;color:#0C0C0C;text-align:center;margin:0 0 20px;}
body.woocommerce-account .woocommerce-LostPassword a,
body.woocommerce-account .woocommerce-privacy-policy-text a{color:#003399;}
body.woocommerce-account .woocommerce-form-login__rememberme{display:inline-flex;align-items:center;gap:8px;margin:4px 0 14px;}

/* Login and Register sit in WooCommerce u-columns; without a flex context the two
   cards end up different heights beside each other. */
body.woocommerce-account .u-columns{display:flex;gap:24px;flex-wrap:wrap;align-items:stretch;}
body.woocommerce-account .u-columns:before,
body.woocommerce-account .u-columns:after{display:none;}
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2{flex:1 1 320px;min-width:0;width:auto!important;float:none!important;display:flex;flex-direction:column;}
body.woocommerce-account .u-column1 .woocommerce-form,
body.woocommerce-account .u-column2 .woocommerce-form{flex:1;max-width:none;margin:0;}
@media(max-width:767px){body.woocommerce-account .u-columns{gap:16px;}}

body.woocommerce-account .woocommerce-ResetPassword{background:#FFFFFF;border:1px solid #E5E7EB;border-radius:16px;padding:28px;max-width:520px;margin:0 auto;}
body.woocommerce-account .woocommerce-ResetPassword > p:first-of-type{font-family:"Poppins",sans-serif;font-size:15px;line-height:24px;color:#6B7280;margin:0 0 20px;text-align:center;}
body.woocommerce-account .woocommerce-ResetPassword .form-row-first{width:100%;float:none;}

body.woocommerce-account .woocommerce-form-login__rememberme{min-height:44px;gap:10px;margin:4px 0 8px;font-family:"Poppins",sans-serif;font-size:15px;line-height:20px;color:#374151;cursor:pointer;}
body.woocommerce-account .woocommerce-form-login__rememberme input[type=checkbox]{width:18px;height:18px;margin:0;flex:0 0 18px;accent-color:#003399;cursor:pointer;}
body.woocommerce-account p.woocommerce-LostPassword{margin:8px 0 0;}
body.woocommerce-account .woocommerce-LostPassword a{display:inline-flex;align-items:center;min-height:44px;font-family:"Poppins",sans-serif;font-size:15px;line-height:20px;font-weight:500;text-decoration:none;}
body.woocommerce-account .woocommerce-LostPassword a:hover{text-decoration:underline;}

body.woocommerce-account .password-input{position:relative;display:block;}
body.woocommerce-account .password-input input.input-text{padding-right:52px;}
body.woocommerce-account .password-input button.show-password-input{width:44px;height:44px;top:50%;right:2px;margin:0;padding:0;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;background:transparent;border:0;cursor:pointer;}

/* the 44px reveal button overlays the field; the generic .form-row input rule outranks
   a shorter .elementor-kit-19679, so the right padding has to be restated at that weight. */
body.woocommerce-account .woocommerce form .form-row .password-input input.input-text{padding-right:52px;}

/* The block theme pulls .alignwide out by -80px on each side, but the element keeps
   its computed width, so it only shifts left instead of widening - the whole cart
   lands 80px off-centre. .page-content is already the 1152 container, so the
   breakout is redundant here. */
body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide{margin-left:0;margin-right:0;width:auto;max-width:none;}

/* WooCommerce sizes these cards with flex:1 0 25% and max-width:25%, which assumes
   no gap; adding one pushes the fourth card onto a second row. Grid owns the gap. */
body.woocommerce-cart .wc-block-grid__products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none;}
body.woocommerce-cart .wc-block-grid__product{flex:none;width:auto;max-width:none;margin:0;}
@media(max-width:1024px){body.woocommerce-cart .wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767px){body.woocommerce-cart .wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}}

/* .wc-block-grid.has-4-columns .wc-block-grid__product carries three classes and
   outranks a two-class override, so max-width:25% survived and - once the parent
   became a grid - resolved against the 258px track, collapsing each card to 65px. */
body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__product{flex:none;width:auto;max-width:none;min-width:0;margin:0;}

/* the theme underlines every link inside .page-content at (0,1,1); a bare
   .wc-block-grid__product-link is (0,1,0) and loses. */
body.woocommerce-cart .page-content .wc-block-grid__product-link,
body.woocommerce-cart .page-content .wc-block-grid__product-link:hover,
body.woocommerce-cart .page-content .wc-block-grid__product-title a{text-decoration:none;color:#0C0C0C;}

body.woocommerce-cart .page-content .wc-block-components-product-name,
body.woocommerce-checkout .page-content .wc-block-components-product-name{text-decoration:none;color:#0C0C0C;font-weight:600;}
body.woocommerce-cart .page-content .wc-block-components-product-name:hover,
body.woocommerce-checkout .page-content .wc-block-components-product-name:hover{color:#003399;}
body.woocommerce-cart .page-content .wc-block-cart-item__image a,
body.woocommerce-checkout .page-content .wc-block-cart-item__image a{text-decoration:none;}

/* WooCommerce reverts this container to display:block below 480px at three classes,
   which outranks a two-class rule and drops the grid back to one card per row. */
body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none;}
@media(max-width:1024px){body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767px){body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}}
@media(max-width:767px){body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__product{padding:12px;}}

/* grid stretches the cards to equal height, but a title that wraps to two lines still
   pushes its own button down; margin-top:auto pins every button to the card floor. */
body.woocommerce-cart .wc-block-grid[class*="has-"] .wc-block-grid__product{display:flex;flex-direction:column;}
body.woocommerce-cart .wc-block-grid__product .wc-block-grid__product-add-to-cart{margin-top:auto;padding-top:12px;}

/* Elementor prints padding:0 on the loop card at five classes, so the card rule
   loses and the image and button sit on the border. */
.osc-prodgrid ul.products li.product{padding:16px!important;}
.osc-prodgrid ul.products li.product .woocommerce-loop-product__buttons{margin-top:12px;}

/* WooCommerce draws this badge as a 44px circle (.woocommerce span.onsale carries
   border-radius:100%); the rest of the site uses the flat pill. */
.osc-prodgrid li.product span.onsale{background:#003399!important;color:#FFFFFF!important;border:0!important;
  border-radius:9999px!important;font-family:"Poppins",sans-serif;font-size:12px!important;line-height:16px!important;
  font-weight:600!important;letter-spacing:.02em;text-transform:uppercase;padding:6px 12px!important;
  min-width:0!important;min-height:0!important;width:auto!important;height:auto!important;
  top:8px!important;right:8px!important;left:auto!important;margin:0!important;position:absolute;}

/* <ins> is underlined by the UA default */
.osc-prodgrid .price ins{text-decoration:none;background:transparent;}
.osc-prodgrid .price del{color:#6B7280;font-weight:400;}

@media(max-width:767px){.osc-prodgrid li.product span.onsale{font-size:11px!important;line-height:14px!important;padding:5px 10px!important;top:6px!important;right:6px!important;}}

/* ISO certification badges.
   Elementor zeroes the item padding at .elementor-widget .elementor-icon-list-item
   and sizes the label at .elementor-widget-icon-list .elementor-icon-list-item >
   .elementor-icon-list-text, both of which load after the kit stylesheet, so every
   .elementor-kit-19679 here is compounded onto the widget class to win outright. */
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-items{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0;padding:0;list-style:none;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item{background:#EBEFF7;border:1px solid #CCD6EB;
  border-radius:9999px;padding:9px 18px;margin:0;display:inline-flex;align-items:center;gap:8px;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item:after,
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item:before{display:none;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>a,
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>span{display:inline-flex;align-items:center;gap:8px;padding:0;margin:0;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>.elementor-icon-list-text,
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>a>.elementor-icon-list-text{color:#003399;
  font-family:"Poppins",sans-serif;font-size:14px;line-height:20px;font-weight:600;padding:0;margin:0;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-icon{display:inline-flex;align-items:center;margin:0;padding:0;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-icon i{color:#003399;font-size:15px;}
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:#003399;width:15px;height:15px;}
@media(max-width:767px){
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-items{gap:8px;}
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item{padding:8px 14px;}
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>.elementor-icon-list-text,
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>a>.elementor-icon-list-text{font-size:13px;}}

/* inline mode adds margin:0 8px per item on top of the flex gap, at four classes */
.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin:0;}

/* Three badges plus their icons need 363px and the content box is 321px at a 360px
   viewport, so they wrap 2+1. Dropping the icon buys 23px per badge and keeps the
   row intact with slack to spare; the label is the content, the icon is decoration. */
@media(max-width:480px){.osc-isobadges.elementor-widget-icon-list .elementor-icon-list-icon{display:none!important;}
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>a,
  .osc-isobadges.elementor-widget-icon-list .elementor-icon-list-item>span{gap:0;}}

/* the parent centres its children, so the widget shrinks to content and the flex row
   wraps against a box narrower than the badges themselves */
.osc-isobadges.elementor-widget-icon-list{width:100%;}


/* CONTACT CHANNEL LIST */
/* The global 44px tap-target rule above adds 20px of dead space to every
   icon-list row, so a 7px item spacing renders as 27px. Released here only. */
.osc-contactlist.elementor-widget-icon-list .elementor-icon-list-item>a{min-height:0;}


/* HEADER MOBILE DROPDOWN */
/* Elementor anchors the dropdown to the nav-menu widget, which sits inside the
   header row's padding, then adds its own offset - that left a hairline seam
   below the bar. Making the widget static hands the containing block to
   .osc-header, so top:100% lands exactly on the header edge at any height.
   !important is required: the stretch script writes top/left/width inline. */
@media(max-width:1024px){
  .osc-header .elementor-widget-nav-menu{position:static;}
  .osc-header .elementor-nav-menu--dropdown{top:100%!important;left:0!important;width:100%!important;margin-top:0!important;}
}


/* EMPTY CART PRODUCT BADGE */
/* The legacy wc-block-grid paints its own onsale chip at a higher specificity
   than the shop archive rule, so the pill has to be restated here to keep both
   grids showing the same badge. */
.wc-block-grid__product-onsale{border-radius:9999px!important;font-size:12px!important;
  line-height:16px!important;font-weight:600!important;letter-spacing:.02em!important;
  padding:6px 12px!important;min-width:0!important;min-height:0!important;width:auto!important;
  height:auto!important;top:8px!important;right:8px!important;left:auto!important;margin:0!important;}


/* EMPTY CART ICON */
/* WooCommerce masks a sad-face SVG onto the heading's ::before. The mask is
   swapped for a tote outline - this is a bag maker, so an empty bag says
   'nothing in here yet' in the site's own vocabulary. */
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before{
  height:4em;margin:0 auto 1.4em;background-color:#003399;opacity:.25;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 17h30l-2.2 23.2a3 3 0 0 1-3 2.8H14.2a3 3 0 0 1-3-2.8L9 17Z'/%3E%3Cpath d='M17 17v-3a7 7 0 0 1 14 0v3'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 17h30l-2.2 23.2a3 3 0 0 1-3 2.8H14.2a3 3 0 0 1-3-2.8L9 17Z'/%3E%3Cpath d='M17 17v-3a7 7 0 0 1 14 0v3'/%3E%3C/svg%3E");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;}

/* ACCOUNT NOTICES */
/* Rebuilt as a plain card so notices sit in the same family as every other
   surface on the site (white, hairline border, soft radius) instead of the
   tinted panel with a coloured left rule.
   Two WooCommerce quirks are handled here. Its icon is a glyph from the
   "WooCommerce" icon font, which the front end never enqueues, so it drew a
   tofu box - the pseudo-element becomes a round chip carrying an inline SVG.
   And the message text is a bare text node, so it cannot be sized or ordered;
   floating the button keeps it top-right whether the link is printed before the
   text (email notice) or after it (empty orders), with the text flowing around. */
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error{
  display:block;position:relative;overflow:hidden;
  background:#FFFFFF;border:1px solid #E5E7EB;border-radius:14px;
  padding:18px 20px 18px 68px;margin:0 0 20px;
  font-family:"Poppins",sans-serif;font-size:15px;line-height:24px;color:#374151;
  box-shadow:0 1px 2px rgba(16,24,40,.04);}
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-error::before{
  content:""!important;font-family:inherit!important;font-size:0!important;
  position:absolute;left:20px;top:17px;width:34px;height:34px;border-radius:9999px;
  margin:0!important;padding:0!important;
  background:#EBEFF7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003399' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11.5v4.5'/%3E%3Cpath d='M12 7.9h.01'/%3E%3C/svg%3E") center/18px 18px no-repeat;}
body.woocommerce-page .woocommerce-message::before{
  background:#EBEFF7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003399' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 4.5 4.5 10-10.5'/%3E%3C/svg%3E") center/18px 18px no-repeat;}
body.woocommerce-page .woocommerce-error{background:#FFF7F7;border-color:#F3C9C9;}
body.woocommerce-page .woocommerce-error::before{
  background:#FDECEC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B91C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.9 18a2 2 0 0 0 1.7 3h16.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3Cpath d='M12 9v4.2'/%3E%3Cpath d='M12 17.2h.01'/%3E%3C/svg%3E") center/18px 18px no-repeat;}
body.woocommerce-page .woocommerce-message>a.button,
body.woocommerce-page .woocommerce-info>a.button,
body.woocommerce-page .woocommerce-error>a.button{
  float:right;margin:0 0 6px 16px!important;
  background:#FFFFFF!important;color:#003399!important;border:1px solid #003399!important;
  border-radius:10px!important;min-height:38px!important;padding:7px 16px!important;
  font-size:14px!important;font-weight:600!important;line-height:22px!important;
  white-space:nowrap;transition:background-color var(--osc-t-fast),color var(--osc-t-fast);}
body.woocommerce-page .woocommerce-message>a.button:hover,
body.woocommerce-page .woocommerce-info>a.button:hover,
body.woocommerce-page .woocommerce-error>a.button:hover{
  background:#003399!important;color:#FFFFFF!important;}
body.woocommerce-page .woocommerce-error>a.button{color:#B91C1C!important;border-color:#B91C1C!important;}
body.woocommerce-page .woocommerce-error>a.button:hover{background:#B91C1C!important;color:#FFFFFF!important;}
@media(max-width:600px){
  body.woocommerce-page .woocommerce-message,
  body.woocommerce-page .woocommerce-info,
  body.woocommerce-page .woocommerce-error{padding:16px 16px 16px 58px;
    display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
  body.woocommerce-page .woocommerce-message::before,
  body.woocommerce-page .woocommerce-info::before,
  body.woocommerce-page .woocommerce-error::before{left:16px;top:15px;width:30px;height:30px;background-size:16px 16px;}
  body.woocommerce-page .woocommerce-message>a.button,
  body.woocommerce-page .woocommerce-info>a.button,
  body.woocommerce-page .woocommerce-error>a.button{float:none;order:2;display:inline-flex;margin:0!important;}
}


/* ACCOUNT EDIT FORM */
/* WooCommerce ships this form with 6px between rows, a browser-default
   2px groove fieldset, and the submit button sitting flush against it. The
   spacing is rebuilt on the same rhythm as the rest of the account panels and
   the fieldset is restyled as a card so the password group reads as a group. */
body.woocommerce-account .woocommerce-EditAccountForm .form-row{margin:0 0 18px;}
body.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
body.woocommerce-account .woocommerce-EditAccountForm .form-row-last{width:48.5%;}
body.woocommerce-account .woocommerce-EditAccountForm .form-row label{display:block;margin-bottom:6px;}
body.woocommerce-account .woocommerce-EditAccountForm em,
body.woocommerce-account .woocommerce-EditAccountForm span.description{display:block;margin-top:7px;font-style:normal;
  font-size:13px;line-height:20px;color:#6B7280;}
body.woocommerce-account .woocommerce-EditAccountForm fieldset{
  border:1px solid #E5E7EB;border-radius:14px;background:#FFFFFF;
  padding:22px 22px 4px;margin:28px 0 0;}
body.woocommerce-account .woocommerce-EditAccountForm fieldset legend{
  padding:0 8px;margin:0 0 0 -8px;background:#FFFFFF;
  font-family:"Poppins",sans-serif;font-size:15px;line-height:22px;
  font-weight:700;color:#1F2937;width:auto;border:0;}
body.woocommerce-account .woocommerce-EditAccountForm fieldset .form-row:last-child{margin-bottom:18px;}
body.woocommerce-account .woocommerce-EditAccountForm > p:last-of-type{margin:28px 0 0;}
body.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button[type=submit],
body.woocommerce-account .woocommerce-EditAccountForm button[type=submit]{margin-top:0;}
body.woocommerce-account .woocommerce-EditAccountForm .woocommerce-password-strength,
body.woocommerce-account .woocommerce-EditAccountForm .woocommerce-password-hint{display:block;margin-top:8px;border-radius:10px;
  font-size:13px;line-height:20px;padding:8px 12px;}
@media(max-width:767px){
  body.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
  body.woocommerce-account .woocommerce-EditAccountForm .form-row-last{width:100%;float:none;}
  body.woocommerce-account .woocommerce-EditAccountForm fieldset{padding:18px 16px 2px;margin-top:22px;}
}/* End custom CSS */