.elementor-kit-672398{--e-global-color-primary:#55799E;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#4286C0;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-672398 e-page-transition{background-color:#FFBC7D;}.elementor-kit-672398 h1{color:var( --e-global-color-primary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}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-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Product grids (shop, category tabs, You Might Also Like): keep the
   Select options buttons on a common baseline regardless of title length.
   !important is required to beat the theme/Elementor grid-item rules. */
.elementor-widget-woocommerce-products ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: 100% !important;
}
.elementor-widget-woocommerce-products ul.products li.product > .woocommerce-loop-product__link {
    width: 100% !important;
}
.elementor-widget-woocommerce-products ul.products li.product > a.button {
    margin-top: auto !important;
}

/* Lip Balm Bullet fills its frame more than the stick products - scale it to match */
ul.products li.product.post-1239 img {
    transform: scale(0.72);
}

/* Header search: Elementor 4.x e-search ships its input as visibility:hidden and
   relies on its own JS to reveal it. That script is not enqueued on this site, so
   the field was invisible and could not be clicked - only the icon responded.
   Force it visible and give it a comfortable click target. */
/* The submit button contains a text span that resolves to the page title.
   It was forcing the button ~232px wide and squeezing the input. Keep it for
   screen readers but take it out of layout. */
.elementor-widget-search .e-search-submit > span { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.elementor-widget-search .e-search-submit svg { flex: 0 0 auto !important; width: 22px !important; height: 22px !important; }
.elementor-widget-search .e-search-input {
    visibility: visible !important;
    min-height: 36px !important;
    padding-inline: 10px !important;
    cursor: text !important;
}
.elementor-widget-search .e-search-form {
    align-items: center !important;
}


/* ---- Search results page ----------------------------------------------
   Markup comes from the "Site search: results page layout" snippet in
   Code Snippets. Kept here so all site-wide CSS lives in one place. */
.ol-search {
    max-width: 1140px;
    margin: 0 auto;
    padding: 48px 20px 64px;
}
.ol-search__title {
    margin: 0 0 6px;
    font-size: 32px;
    line-height: 1.25;
    color: #14548f;
}
.ol-search__count {
    margin: 0 0 22px;
    font-size: 15px;
    color: #5b6b7c;
}
.ol-search__form {
    display: flex;
    gap: 8px;
    max-width: 520px;
    margin: 0 0 44px;
}
.ol-search__form input[type="search"] {
    flex: 1 1 auto;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid #cfd8e3;
    border-radius: 5px;
    font-size: 15px;
}
.ol-search__form button {
    min-height: 44px;
    padding: 0 22px;
    border: 0;
    border-radius: 5px;
    background: #1668b3;
    color: #fff;
    font-size: 15px;
    cursor: pointer;
}
.ol-search__form button:hover { background: #12558f; }
.ol-search__section { margin-bottom: 48px; }
.ol-search__subhead {
    margin: 0 0 18px;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #5b6b7c;
}
.ol-search__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 24px;
}
.ol-card {
    display: flex;
    flex-direction: column;
    padding: 18px;
    border: 1px solid #e3e9f0;
    border-radius: 8px;
    background: #fff;
}
.ol-card__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit;
}
.ol-card__media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 170px;
    margin-bottom: 14px;
}
.ol-card__media img {
    max-height: 170px;
    width: auto;
    object-fit: contain;
}
.ol-card__title {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    color: #14548f;
}
.ol-card__meta {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
    color: #5b6b7c;
}
.ol-card__cta {
    margin-top: auto;
    padding-top: 16px;
    align-self: center;
    font-size: 14px;
    font-weight: 600;
    color: #1668b3;
    text-decoration: none;
}
.ol-card__cta:hover { text-decoration: underline; }
.ol-search__pages {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ol-search__pages li {
    padding: 14px 0;
    border-top: 1px solid #e3e9f0;
}
.ol-search__pages li:last-child { border-bottom: 1px solid #e3e9f0; }
.ol-search__pages a {
    font-size: 17px;
    font-weight: 600;
    color: #14548f;
    text-decoration: none;
}
.ol-search__pages a:hover { text-decoration: underline; }
.ol-search__snippet {
    display: block;
    margin-top: 4px;
    font-size: 14px;
    color: #5b6b7c;
}
.ol-search__empty p {
    font-size: 16px;
    color: #5b6b7c;
}
@media (max-width: 600px) {
    .ol-search { padding: 32px 16px 48px; }
    .ol-search__title { font-size: 25px; }
    .ol-search__form { flex-direction: column; }
}


/* ---- Product page: Pricing and Shipping tab panels ----------------------
   Both are output by shortcodes and were rendering in the browser default
   font at default table/form metrics, which is why they looked foreign next
   to the rest of the site. #0063a7 is the same blue as the Select options
   buttons. */

#ajax_prod_content,
#get_shipping_quote_product {
    font-family: "Roboto", sans-serif;
    color: #22303c;
}

/* Panel headings - were H3 at 28px in the system font */
#ajax_prod_content > h3,
#get_shipping_quote_product > h3 {
    margin: 0 0 16px;
    font-family: "Roboto", sans-serif;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    color: #22303c;
}

/* --- Pricing table --- */
#ajax_prod_content {
    overflow-x: auto;
}
#ajax_prod_content table {
    width: 100%;
    min-width: 430px;
    border: 1px solid #dde5ee;
    border-radius: 8px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    font-size: 15px;
}
#ajax_prod_content table tr:first-child th {
    padding: 12px 14px;
    border: 0;
    background: #0063a7;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .02em;
    text-align: center;
    white-space: nowrap;
}
#ajax_prod_content table tr:first-child th:first-child {
    text-align: left;
}
#ajax_prod_content table td {
    padding: 14px;
    border: 0;
    border-top: 1px solid #eef2f7;
    background: #fff;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
#ajax_prod_content table td:first-child {
    background: #f7fafc;
    color: #5b6b7c;
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
}
#ajax_prod_content table tr:hover td { background: #f4f9fd; }
#ajax_prod_content table tr:hover td:first-child { background: #eaf2fa; }

/* --- Shipping quote form ---
   A flat sequence of label/input siblings, so grid pairs them up. */
#shipping_quote {
    display: grid !important;
    grid-template-columns: minmax(110px, max-content) minmax(150px, 1fr);
    gap: 12px 16px;
    align-items: center;
    max-width: 430px;
    margin: 0;
}
/* The form carries 3 hidden inputs; keep them out of the grid so they
   do not occupy cells and collapse the input column. */
#shipping_quote input[type="hidden"] {
    display: none !important;
}
#shipping_quote label {
    grid-column: 1;
    font-size: 14px;
    font-weight: 500;
    color: #5b6b7c;
}
#shipping_quote input[type="text"] {
    grid-column: 2;
    width: 100%;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid #cfd8e3;
    border-radius: 6px;
    background: #fff;
    color: #22303c;
    font-family: inherit;
    font-size: 15px;
}
#shipping_quote input[type="text"]:focus {
    outline: none;
    border-color: #0063a7;
    box-shadow: 0 0 0 3px rgba(0, 99, 167, .15);
}

/* The zip field ships wrapped in its own div with its label inside, so it
   arrives as one grid cell. Span it and mirror the parent columns so the
   row lines up with the others. */
#shipping_quote #zip_container_ship_quote {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(110px, max-content) minmax(150px, 1fr);
    gap: 12px 16px;
    align-items: center;
    margin: 0;
}
#shipping_quote input[type="submit"] {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 6px;
    min-height: 42px;
    padding: 0 22px;
    border: 0;
    border-radius: 6px;
    background: #0063a7 !important;
    color: #fff !important;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
}
#shipping_quote input[type="submit"]:hover { background: #00518a !important; }

@media (max-width: 600px) {
    #shipping_quote,
    #shipping_quote #zip_container_ship_quote {
        grid-template-columns: 1fr !important;
        gap: 6px;
    }
    #shipping_quote label { margin-top: 6px; }
}


/* ---- Home page category tiles: no sideways scroll on mobile -------------
   Those product images are 764x764 PNGs with the product centred in a lot of
   transparent space, scaled ~2.1x. That makes each box ~776px wide, so on a
   384px screen the page scrolled ~190px sideways and the Tidio chat bubble
   ended up off to the right of the content. Clipping horizontally kills the
   dead scroll; the visible product is pixel-identical, and nothing overflows
   this section at desktop so there is nothing to clip there. */
.elementor-element-3ca53478 {
    overflow-x: clip;
}

/* The header search input kept its intrinsic size instead of filling the
   form, so at narrower window widths the placeholder truncated and the icon
   sat mid-field with dead space after it. Make it fill the available width. */
.elementor-widget-search .e-search-input-wrapper { flex: 1 1 auto !important; min-width: 0 !important; }
.elementor-widget-search .e-search-submit { flex: 0 0 42px !important; width: 42px !important; min-width: 0 !important; }
.elementor-widget-search .e-search-input { width: 100% !important; flex: 1 1 auto !important; min-width: 0 !important; text-overflow: ellipsis; }

/* ---- Contact page ------------------------------------------------------
   Three floated 400px columns with an unreadable button set (white text on
   near-white). Laid out as a grid and given the site button styling. */
body.page-id-1113 .page-content { display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:40px; align-items:start; max-width:1200px; margin:0 auto; padding:10px 0 70px; }
body.page-id-1113 .page-content > div { float:none !important; width:auto !important; margin-bottom:0 !important; }
body.page-id-1113 .page-content h3 { font-size:18px; font-weight:600; color:#14548f; margin:0 0 14px; }
body.page-id-1113 .page-content > div:nth-child(3) { background:#f7fafc; border:1px solid #e3e9f0; border-radius:8px; padding:24px; }
body.page-id-1113 .page-content > div:nth-child(3) h3 { margin-top:24px; }
body.page-id-1113 .page-content > div:nth-child(3) h3:first-child { margin-top:0; }
body.page-id-1113 .page-content > div:nth-child(3) p { margin:0 0 4px; font-size:15px; line-height:1.6; }
body.page-id-1113 #contact-help { list-style:none; margin:0; padding:0; }
body.page-id-1113 #contact-help li { margin:0 0 10px; }
body.page-id-1113 #contact-help a.button { display:block; background:#0063a7 !important; color:#fff !important; border:0 !important; border-radius:5px; padding:12px 16px; font-size:15px; font-weight:600; text-align:center; text-decoration:none !important; }
body.page-id-1113 #contact-help a.button:hover { background:#00518a !important; }
body.page-id-1113 .wpcf7-form label { display:block; font-size:14px; font-weight:500; color:#5b6b7c; margin-bottom:14px; }
body.page-id-1113 .wpcf7-form input[type=text], body.page-id-1113 .wpcf7-form input[type=email], body.page-id-1113 .wpcf7-form input[type=tel] { width:100%; min-height:42px; padding:0 12px; border:1px solid #cfd8e3; border-radius:6px; font-size:15px; }
body.page-id-1113 .wpcf7-form textarea { width:100%; min-height:170px; padding:10px 12px; border:1px solid #cfd8e3; border-radius:6px; font-size:15px; }
body.page-id-1113 .wpcf7-form input:focus, body.page-id-1113 .wpcf7-form textarea:focus { outline:none; border-color:#0063a7; box-shadow:0 0 0 3px rgba(0,99,167,.15); }
body.page-id-1113 .wpcf7-form input[type=submit] { background:#0063a7 !important; color:#fff !important; border:0 !important; border-radius:6px; min-height:44px; padding:0 26px; font-size:15px; font-weight:600; cursor:pointer; }
body.page-id-1113 .wpcf7-form input[type=submit]:hover { background:#00518a !important; }
@media (max-width:900px) { body.page-id-1113 .page-content { grid-template-columns:1fr; gap:28px; } }

/* Breath Spray (1379) and Hand Sanitizer Spray (1353) - hide stray item code above MOQ and the Color Cap Pricing block */
body.postid-1379 #qtyboxd,
body.postid-1353 #qtyboxd { font-size: 0 !important; }
body.postid-1379 #qtyboxd > div,
body.postid-1353 #qtyboxd > div { font-size: 16px !important; }
body.postid-1379 #ajax_prod_content2,
body.postid-1353 #ajax_prod_content2 { display: none !important; }


/* Products page - hide price under products in Breath Care, Hand Sanitizer and Sun Care grids (Lip Care keeps pricing) */
.elementor-element-531d1f9d ul.products li.product .price,
.elementor-element-2047b585 ul.products li.product .price,
.elementor-element-52ac5dd3 ul.products li.product .price { display: none !important; }/* End custom CSS */