.navbar .navbar-nav .nav-item > .nav-link::before{
    display:none;
}
.fast_label_printing a {
  border-radius: 15px;}
  
  .card-footer .carousel-control-next {
  left: 49px;
}

@media only screen and (max-width:768px){
    .footer-content #footersubscribe_sidebar .form-row .col-md-6 h3,.help-block,#footersubscribe_sidebar .custom-control.custom-checkbox{
        text-align: left;
    }
    footer .container .d-flex.justify-content-center{
        margin-bottom:0 !important;
    }
    .bottom-social{
       justify-content: flex-start !important;
    }
    footer .container .d-flex.justify-content-center{
       justify-content: flex-start !important; 
    }
    footer .container {
  display: flex !important;
  flex-direction: column;
}
footer .row.mb-4.align-items-center {
    margin-top: 1rem;
  order: 2;
}

}
footer .col-12.col-md-4.text-md-right.order-2.order-md-3 {
  display: none;
}
#top-banner .carousel-inner a.d-block {
  position: relative;
  z-index: 1;
}
#top-banner .carousel-inner a.d-block::after {
  content: "";
  display: block;
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: rgba(0,0,0,.35);
  top: 0;
  left: 0;
  z-index: 1;
}
#top-banner .carousel-inner .carousel-item::after{display:none;}


    /* Banner styling */
    #top-banner .carousel-inner .carousel-item {
        background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
        background-size: cover;
        background-position: center;
    }

    #top-banner .carousel-inner img {
        width: 100%;
        height: 700px;
        object-fit: cover;
        /* Force the image to blend into its own background color */
        mix-blend-mode: multiply;
    }

    #top-banner .carousel-inner .carousel-caption {
        right: 0;
        bottom: 100px;
        left: 0;
        text-align: left;
    }

    #top-banner .carousel-inner .banner-main-text {
        font-family: "Poppins-Semibold",sans-serif;
        font-size: 70px;
        line-height: 70px;
        font-weight: 600;
    }

    #top-banner .carousel-inner .banner-sub-text {
        font-size: 26px;
    }

    /* home testimonial formatting */
    .testimonial_section #testimonial_multi_sidebar .card-body {
        padding: 0;
    }

    .testimonial_section #testimonial_multi_sidebar .carousel-inner .carousel-item {
        background: none;
    }

    .testimonial_section #testimonial_multi_sidebar .carousel-item .card {
        background-color: #f5f5f5;
    }

        .testimonial_section #testimonial_multi_sidebar .carousel-item .card > .card-body {
            padding: 3rem;
        }

            .testimonial_section #testimonial_multi_sidebar .carousel-item .card > .card-body .testimonial-description small {
                display: none;
            }
            
    /* product description styling */
    #product-description h2 {
        font-size: 30px;
        line-height: 1.3em;
        margin: 10px 0 15px 0;
    }

    #product-description h3 {
        color: #F26A21;
        font-size: 22px;
        line-height: 1.3em;
        margin: 10px 0 15px 0;
    }
    .dynamicHelpTemplateMain .row.mt-4.mb-5.narrow-gutter {
    display: none !important;
}
div#help-template #help_template_list .row:first-child {
    margin-bottom: 2rem;
}
.top-header {
  background-color: #000;
}





/* ==========================================================================
   AMAZING LABELS — Online Calculator marketing layer
   --------------------------------------------------------------------------
   Append this to the existing custom CSS (amazinglabels.css), below your
   current additions. It does not modify any rule you already have.

   VERIFIED AGAINST THE LIVE STAGING SITE (amazinglabels.onprintshop.com):
     Bootstrap 4.6.2 + jQuery 3.7.1     .container max-width 1440px
     Fonts  Poppins-SemiBold / Poppins-Regular, 16px base
     Accent #F26A21 (product h3, headings)   .btn-primary is YELLOW #F8DA3B
     Nav    .navbar > .container.position-relative > .navbar-collapse > .navbar-nav
     Banner #top-banner carousel, .banner-main-text / .banner-sub-text (HTML caption)
     CMS    .header-content > .container                         (intro slot)
            .middle-footer-content section.label_solution        (lower slot)

   Sections 1-4 are the page components (used by the pasted HTML blocks).
   Sections 5-7 restyle things you CANNOT edit through the CMS: the Products
   dropdown, the banner, and the nav item.
   Sections 8-9 are CMS slot and page-title tweaks.
   ========================================================================== */

/* ==========================================================================
   1. TOKENS
   ========================================================================== */
:root {
  --al-ink:          #1d2330;
  --al-ink-soft:     #545c6b;
  --al-line:         #e4e8ef;
  --al-bg-soft:      #f6f8fb;

  --al-accent:       #F26A21;   /* confirmed brand orange */
  --al-accent-dark:  #d2540f;
  --al-accent-tint:  #fef1ea;
  --al-yellow:       #F8DA3B;   /* theme .btn-primary — reserved for "Request a Quote" */

  --al-card:         #00263A;   /* THE dark surface: product cards, CTA panel,
                                   comparison column, compact hero gradient */
  --al-card-line:    #0b3b54;   /* card border, one step lighter */

  --al-live:         #17a673;

  --al-radius:       14px;
  --al-radius-pill:  999px;
  --al-shadow:       0 6px 24px rgba(29,35,48,.08);
  --al-shadow-lift:  0 16px 36px rgba(29,35,48,.16);
}

/* ==========================================================================
   2. SECTION SCAFFOLD + TYPE
   Fonts are inherited from the theme (Poppins) — we only set size/weight.
   ========================================================================== */
.al-section          { padding: 60px 0; color: var(--al-ink); }
.al-section--tight   { padding: 34px 0; }
.al-section--soft    { background: var(--al-bg-soft); }
.al-section--edge    { border-top: 1px solid var(--al-line);
                       border-bottom: 1px solid var(--al-line); }

.al-wrap             { max-width: 1440px; margin: 0 auto; padding: 0 15px; }
.al-narrow           { max-width: 820px; margin-left: auto; margin-right: auto; }
.al-center           { text-align: center; }
.al-section .al-narrow.al-center { margin-bottom: 34px; }

.al-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--al-accent);
  margin: 0 0 12px;
}
.al-h1 { font-size: clamp(30px, 4.2vw, 50px); line-height: 1.08; font-weight: 600; margin: 0 0 18px; }
.al-h2 { font-size: clamp(26px, 3.1vw, 38px); line-height: 1.18; font-weight: 600; margin: 0 0 16px; }
.al-h3 { font-size: 20px; line-height: 1.3;  font-weight: 600; margin: 0 0 10px; }
.al-h1, .al-h2, .al-h3 { font-family: "Poppins-SemiBold", sans-serif; color: var(--al-ink); }

.al-lede  { font-size: clamp(16px, 1.5vw, 18px); line-height: 1.65; color: var(--al-ink-soft); margin: 0 0 24px; }
.al-lede strong { color: var(--al-ink); font-weight: 600; }
.al-note  { font-size: 14px; line-height: 1.6; color: var(--al-ink-soft); margin: 14px 0 0; }
.al-note--onDark { color: rgba(255,255,255,.7); }
.al-note--onDark a { color: rgba(255,255,255,.92); text-decoration: underline; }

/* ==========================================================================
   3. BUTTONS
   Orange = self-serve / calculator.  Yellow (.btn-primary) stays reserved for
   "Request a Quote" so the two paths read as different things.

   FONT WEIGHT - read this before changing it. The theme ships Poppins as FOUR
   separate families (Poppins-Regular, Poppins-Medium, Poppins-SemiBold,
   Poppins-Bold), and every @font-face is declared with NO weight descriptor,
   so each family contains exactly one face, at weight 400.

   So font-weight: 700 on Poppins-Regular has no bold face to reach for, and
   the browser SYNTHESISES one by smearing the regular glyphs. That is the
   fuzziness - it is faux bold, not a real weight. Confirmed on the live site:
   Regular at 400, 500 and 700 all measure an identical advance width.

   The fix is to change FAMILY, not the number. Poppins-Medium is a real face,
   so it renders clean AND carries weight. font-weight: 500 is kept as an
   honest declaration. The same applies anywhere else in the theme that puts
   600/700 on body copy.
   ========================================================================== */
.al-btn {
  display: inline-block; padding: 14px 30px;
  border: 2px solid transparent; border-radius: var(--al-radius-pill);
  font-family: "Poppins-Medium", sans-serif;
  font-size: 17px; font-weight: 500; line-height: 1.2;
  text-align: center; text-decoration: none; cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.al-btn:hover, .al-btn:focus { text-decoration: none; transform: translateY(-2px); }

.al-btn--primary { background: var(--al-accent); border-color: var(--al-accent); color: #fff;
                   box-shadow: 0 8px 22px rgba(242,106,33,.34); }
.al-btn--primary:hover, .al-btn--primary:focus { background: var(--al-accent-dark);
                   border-color: var(--al-accent-dark); color: #fff; box-shadow: 0 12px 28px rgba(242,106,33,.42); }

.al-btn--ghost   { background: transparent; border-color: #c8d0dd; color: var(--al-ink); }
.al-btn--ghost:hover, .al-btn--ghost:focus { border-color: var(--al-ink); color: var(--al-ink); }

.al-btn--onDark  { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; }
.al-btn--onDark:hover, .al-btn--onDark:focus { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }

/* Theme yellow, for the quote path. Same geometry and font as the other
   .al-btn variants, so a pair of them line up - unlike .btn.btn-lg.btn-primary,
   which sets a different height and a synthesised bold. */
.al-btn--yellow  { background: var(--al-yellow); border-color: var(--al-yellow); color: var(--al-ink); }
.al-btn--yellow:hover, .al-btn--yellow:focus { background: #ecca24; border-color: #ecca24; color: var(--al-ink); }

.al-btnRow        { margin: 0 -8px -12px; }
.al-btnRow .al-btn{ margin: 0 8px 12px; }

/* Live badge */
.al-live {
  display: inline-block; padding: 7px 16px 7px 14px; border-radius: var(--al-radius-pill);
  background: rgba(23,166,115,.12); color: #0d7f57; font-size: 13px; font-weight: 600;
}
.al-live::before {
  content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 9px;
  border-radius: 50%; background: var(--al-live); vertical-align: 1px;
  animation: al-pulse 1.8s ease-in-out infinite;
}
.al-live--onDark { background: rgba(255,255,255,.15); color: #fff; }
.al-live--onDark::before { background: #6ff0bd; }
@keyframes al-pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.78)} }
@media (prefers-reduced-motion: reduce) {
  .al-live::before { animation: none !important; }
  .al-btn:hover, .al-pcard:hover { transform: none; }
}

/* Proof / tick lists */
.al-proof    { list-style: none; margin: 22px 0 0; padding: 0; font-size: 14.5px; }
.al-proof li { display: inline-block; margin: 0 20px 8px 0; color: var(--al-ink-soft); font-weight: 600; }
.al-proof li::before { content: "\2713"; display: inline-block; margin-right: 8px; color: var(--al-live); font-weight: 700; }
.al-proof--onDark li { color: rgba(255,255,255,.9); }
.al-proof--onDark li::before { color: #6ff0bd; }

/* ==========================================================================
   4. PAGE COMPONENTS  (used by /create-labels.html and the CMS blocks)
   ========================================================================== */

/* --- Hero (content page only; the homepage uses the carousel, see §6) --- */
.al-hero { position: relative; overflow: hidden; background-color: var(--al-card);
           background-position: center; background-size: cover; color: #fff; }
.al-hero--calc { background-image: url('/upload/hero-calculator.jpg'); } /* &lt;-- set your image */
.al-hero::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(95deg, rgba(10,14,20,.90) 0%, rgba(10,14,20,.70) 45%, rgba(10,14,20,.25) 100%); }
.al-hero__inner { position: relative; z-index: 1; max-width: 1440px; margin: 0 auto; padding: 78px 15px; }
.al-hero__body  { max-width: 640px; }
.al-hero .al-h1 { color: #fff; }
.al-hero .al-lede { color: rgba(255,255,255,.85); }
.al-hero .al-lede strong { color: #fff; }
.al-hero__badge { margin: 0 0 18px; }
@media (max-width: 767px) {
  .al-hero__inner { padding: 52px 15px; }
  .al-hero::after { background: linear-gradient(180deg, rgba(10,14,20,.86) 0%, rgba(10,14,20,.78) 100%); }
}

/* --- Numbered steps --- */
.al-steps { counter-reset: al-step; }
.al-step  { position: relative; height: 100%; padding: 26px 24px 24px; margin-bottom: 24px;
            background: #fff; border: 1px solid var(--al-line); border-radius: var(--al-radius);
            box-shadow: var(--al-shadow); }
.al-step::before {
  counter-increment: al-step; content: counter(al-step);
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; margin-bottom: 15px; border-radius: 50%;
  background: var(--al-accent-tint); color: var(--al-accent); font-size: 17px; font-weight: 700;
}
.al-step p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--al-ink-soft); }

/* --- Product picker cards --- */
.al-group       { margin-bottom: 42px; }
.al-group__head { padding-bottom: 13px; margin-bottom: 22px; border-bottom: 2px solid var(--al-line); }
.al-group__head .al-h3 { margin-bottom: 4px; }
.al-group__head p      { margin: 0; font-size: 15px; color: var(--al-ink-soft); }

.al-pcard { display: block; height: 100%; padding: 24px 22px 20px; margin-bottom: 24px;
            background: var(--al-card); border: 1px solid var(--al-card-line); border-radius: var(--al-radius);
            color: #fff; text-decoration: none;
            transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.al-pcard:hover, .al-pcard:focus { text-decoration: none; color: #fff;
            border-color: var(--al-accent); box-shadow: var(--al-shadow-lift); transform: translateY(-3px); }

/* CSS-drawn shape swatches — no images, no SVG (editor-safe) */
/* Fill matches the card so the swatch reads as a clean orange outline. */
.al-shape { display: block; width: 46px; height: 46px; margin-bottom: 15px;
            background: var(--al-card); border: 3px solid var(--al-accent); }
.al-shape--circle    { border-radius: 50%; }
.al-shape--square    { border-radius: 4px; }
.al-shape--rectangle { width: 62px; height: 38px; border-radius: 4px; }

.al-pcard__title { display: block; font-size: 17px; font-weight: 600; line-height: 1.3; margin-bottom: 6px;
                   font-family: "Poppins-SemiBold", sans-serif; color: #fff; }
.al-pcard__meta  { display: block; font-size: 14px; line-height: 1.55; margin-bottom: 15px;
                   color: rgba(255,255,255,.72); }
/* Poppins-Medium rather than weight 700 - see the note in section 3 */
.al-pcard__cta   { display: block; font-size: 14px; color: var(--al-accent);
                   font-family: "Poppins-Medium", sans-serif; font-weight: 500; }
.al-pcard__cta::after { content: " \2192"; }

/* --- Them vs us --- */
.al-compare       { height: 100%; margin-bottom: 24px; padding: 28px 26px; border-radius: var(--al-radius); }
.al-compare--them { background: #fff; border: 1px solid var(--al-line); }
.al-compare--us   { background: var(--al-card); color: #fff; border: 1px solid var(--al-card); box-shadow: var(--al-shadow-lift); }
.al-compare--us .al-h3 { color: #fff; }
.al-compare ul    { list-style: none; margin: 0; padding: 0; }
.al-compare li    { position: relative; padding-left: 30px; margin-bottom: 12px; font-size: 15.5px; line-height: 1.55; }
.al-compare li:last-child { margin-bottom: 0; }
.al-compare li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.al-compare--them li { color: var(--al-ink-soft); }
.al-compare--them li::before { content: "\2715"; color: #c2c8d4; }
.al-compare--us   li { color: rgba(255,255,255,.92); }
.al-compare--us   li::before { content: "\2713"; color: #6ff0bd; }

/* --- Closing CTA panel --- */
.al-cta { padding: 48px 30px; border-radius: var(--al-radius); background: var(--al-card); color: #fff; text-align: center; }
.al-cta .al-h2   { color: #fff; }
.al-cta .al-lede { color: rgba(255,255,255,.82); max-width: 640px; margin-left: auto; margin-right: auto; }

/* --- Equal-height helper (BS4 .row is flex, this just guarantees it) --- */
.al-equal { display: flex; flex-wrap: wrap; }
.al-equal > [class*="col-"] { display: flex; flex-direction: column; }
.al-equal > [class*="col-"] > * { width: 100%; }


/* ==========================================================================
   5. PRODUCTS MEGA MENU  — CSS ONLY, NO MENU-MANAGER CHANGES NEEDED
   --------------------------------------------------------------------------
   All 30 menu links are already in the DOM on every page load. This turns the
   three-level hover menu into a flat three-column panel with all 9 products
   visible on first open, and injects the calculator message onto every link.

   Tested live on the staging site. Desktop only (>= 768px, the navbar-expand-md
   breakpoint) — the mobile accordion is deliberately untouched.
   ========================================================================== */
@media (min-width: 768px) {

  /* full-width panel anchored to .container.
     ------------------------------------------------------------------
     SCOPING: every panel rule below is matched through
       > a[href*="product_list"] + ul.dropdown-menu
     i.e. the panel is selected as the SIBLING of the Products link, so only
     the Products dropdown becomes a mega menu. This matters because "My
     Account" appears for logged-in customers with the identical markup
     (li.nav-item.dropdown > a.dropdown-toggle.nav-link) and nothing else
     distinguishes the two - no id, no data attribute, no extra class. CSS has
     no parent selector and :has() is rejected by OnPrintShop's validator, so
     the adjacent-sibling combinator is the only precise hook available.

     position: static CANNOT be scoped the same way (it applies to the <li>,
     not the panel), so it stays on every dropdown and the next rule puts the
     other panels back where they belong. */
  .navbar .navbar-nav > li.nav-item.dropdown { position: static; }

  /* Any dropdown that is NOT Products - My Account today, anything added
     later. With the <li> static, the panel's containing block is
     .container.position-relative, so left/right must fall back to the static
     position, which is exactly under the menu item where it belongs. */
  .navbar .navbar-nav > li.nav-item.dropdown > a:not([href*="product_list"]) + ul.dropdown-menu {
    left: auto !important; right: auto !important; width: auto !important; max-width: none !important;
  }
  .navbar .navbar-nav > li.nav-item.dropdown > a[href*="product_list"] + ul.dropdown-menu {
    left: 0; right: 0; width: auto; max-width: none; margin: 0;
    padding: 0 !important; border: 0; border-top: 3px solid var(--al-accent);
    border-radius: 0 0 10px 10px; box-shadow: 0 18px 40px rgba(0,0,0,.22); background: #fff;
  }
  .navbar .navbar-nav > li.nav-item.dropdown > a[href*="product_list"] + ul.dropdown-menu.show {
    display: flex !important; flex-wrap: wrap; align-items: stretch;
  }

  /* the message the client can't get into the menu manager */
  .navbar .navbar-nav > li.nav-item.dropdown > a[href*="product_list"] + ul.dropdown-menu.show::before {
    content: "Every option below opens the online calculator: select your size, quantity and finish, and see the price update.";
    flex: 0 0 100%; padding: 14px 24px; background: #111820; color: #fff;
    font-size: 15px; font-weight: 500;
  }
  /* flex line-break so the two footer links share one row */
  .navbar .navbar-nav > li.nav-item.dropdown > a[href*="product_list"] + ul.dropdown-menu.show::after {
    content: ""; flex: 0 0 100%; order: 8; height: 0;
  }

  /* three material columns */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li.dropdown-submenu {
    position: relative; flex: 1 1 28%; min-width: 220px; padding: 22px 22px 20px;
    border-right: 1px solid #ececf1;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li.dropdown-submenu:nth-of-type(3) { border-right: 0; }

  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li.dropdown-submenu > a.all-product {
    display: block; padding: 0 0 9px !important; margin: 0 0 6px;
    border-bottom: 2px solid var(--al-accent);
    font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: #6b7280 !important; background: none !important; white-space: normal;
  }
  /* the theme's absolutely-positioned submenu carets would fly to the panel corner */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu li.dropdown-submenu > a.dropdown-item::after {
    display: none !important; content: none !important;
  }

  /* reveal the nested product lists in place.
     The theme hides them with visibility/opacity/rotateX, so all three must be
     overridden — and ONLY while the parent panel is .show, or they leak out. */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu {
    display: block !important; position: static !important; float: none !important;
    visibility: visible !important; opacity: 1 !important; transform: none !important;
    transition: none !important; border: 0 !important; box-shadow: none !important;
    margin: 0 !important; padding: 0 !important; background: none !important; min-width: 0 !important;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu > li { display: block !important; }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu > li > a {
    display: block !important; padding: 10px 0 !important; white-space: normal;
    font-size: 14.5px; font-weight: 600; line-height: 1.3;
    color: var(--al-ink) !important; background: none !important;
  }
  /* the calculator promise, on every product link, without touching the CMS */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu > li > a::after {
    content: "See live pricing \2192"; display: block; margin-top: 3px;
    font-size: 11.5px; font-weight: 700; color: var(--al-accent);
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu > li > a:hover {
    color: var(--al-accent) !important;
  }

  /* footer bar: Browse by Shape (shape links only) + View All
     --------------------------------------------------------------------
     Targeted structurally, NOT with :has() — OnPrintShop's CSS validator
     rejects :has() ("Expected RPAREN").

     The Products dropdown children are, in order:
       1 Paper Labels        (li.dropdown-submenu)
       2 Synthetic Film      (li.dropdown-submenu)
       3 PVC Vinyl           (li.dropdown-submenu)
       4 Browse by Shape     (li.dropdown-submenu)  &lt;- second to last
       5 View All            (li)                   &lt;- last

     :nth-last-child(2) picks Browse by Shape counting from the END, so it
     keeps working if the client adds a fourth material category. These rules
     come after the column rules above, so they override them by cascade order.
     If Browse by Shape is ever moved or removed, change this one selector. */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li.dropdown-submenu:nth-last-child(2) {
    flex: 1 1 auto !important; order: 9; display: flex !important; align-items: center; flex-wrap: wrap;
    padding: 12px 22px; background: var(--al-bg-soft);
    border-top: 1px solid #e6e9f0; border-right: 0;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li.dropdown-submenu:nth-last-child(2) > a {
    display: inline-block !important; width: auto !important; flex: 0 0 auto;
    padding: 0 18px 0 0 !important; margin: 0; border: 0;
    font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: #6b7280 !important; background: none !important;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show > li.dropdown-submenu:nth-last-child(2) > ul.dropdown-menu {
    display: inline-flex !important; width: auto !important; flex: 0 1 auto; flex-wrap: wrap;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show > li.dropdown-submenu:nth-last-child(2) > ul.dropdown-menu > li > a {
    padding: 0 18px 0 0 !important; font-size: 13.5px; font-weight: 600;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show > li.dropdown-submenu:nth-last-child(2) > ul.dropdown-menu > li > a::after { display: none !important; }

  /* Hide Browse by Shape's own "View All" (the panel already has one) and its
     THIRD-level product lists.
     Specificity note: the reveal rule above is
       .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu
     which scores (0,7,4). Both rules are !important, so specificity decides —
     these two must out-score it or the shape lists render expanded. Do not
     shorten them. */
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show > li.dropdown-submenu:nth-last-child(2) > ul.dropdown-menu > li:last-child {
    display: none !important;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu.show li.dropdown-submenu > ul.dropdown-menu ul.dropdown-menu {
    display: none !important;
  }

  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li:last-child {
    flex: 0 0 auto !important; order: 10; padding: 12px 22px; background: var(--al-bg-soft);
    border-top: 1px solid #e6e9f0; text-align: right;
  }
  .navbar .navbar-nav > li.dropdown > a[href*="product_list"] + ul.dropdown-menu > li:last-child > a {
    padding: 0 !important; font-size: 13.5px; font-weight: 700;
    color: var(--al-ink) !important; background: none !important;
  }
}


/* ==========================================================================
   6. BANNER — real HTML buttons in the caption editor
   --------------------------------------------------------------------------
   The banner caption is a full HTML editor (OnPrintShop gives you a main one
   and a separate MOBILE one), so the CTAs are real <a> elements, not drawn
   with ::after. Nothing here creates a whole-slide link — do NOT set the
   slide's link field; a full-bleed tap target is hostile on touch.

   The new images carry their artwork on the right and leave a dark area on
   the left, so the copy is constrained to the left 42% on desktop and the
   heavy scrim is gone — it was flattening the calculator artwork. A softer
   bottom-weighted scrim only kicks in below 992px, where the copy has to sit
   over the image.

   Caption markup lives in banner-content.html. Tested live on both slides.
   ========================================================================== */

/* Copy is anchored to the BOTTOM of the banner, not centred.
   Centring pushed the headline up under the sticky navbar - measured at -21px,
   i.e. actually overlapping it. Anchoring to the bottom puts the clear space
   where it is needed (between the menu and the copy) and lets the block grow
   downward-up as slide copy changes length, instead of growing into the nav.
   At 64px this measures 94px clear of the navbar and 72px off the banner
   bottom on both slides. */
#top-banner .carousel-inner .carousel-caption {
  top: auto !important; bottom: 64px !important;
  transform: none !important; z-index: 2;
}
@media (max-width: 991px) {
  #top-banner .carousel-inner .carousel-caption { bottom: 40px !important; }
}
#top-banner .carousel-inner .carousel_content { position: relative; }

/* .banner-main-text is a class, so it works on <h1> as well as <p>.
   Use <h1> on slide 1 only — see banner-content.html. */
#top-banner .carousel-inner .banner-main-text {
  font-family: "Poppins-SemiBold", sans-serif; font-weight: 600; color: #fff;
  font-size: 34px !important; line-height: 1.08 !important;
}
#top-banner .carousel-inner .banner-sub-text {
  font-size: 16px !important; color: rgba(255,255,255,.88);
}
#top-banner .carousel-inner .banner-actions { margin: 0 -8px -12px; }
#top-banner .carousel-inner .banner-actions .al-btn {
  margin: 0 8px 12px; padding: 12px 26px; font-size: 16px;
}

/* Below the desktop breakpoint the copy overlays artwork, so protect it.
   This is also where the separate MOBILE caption editor content lands. */
@media (max-width: 991px) {
  #top-banner .carousel-inner .carousel-item::before {
    content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0;
    z-index: 1; pointer-events: none;
    background: linear-gradient(180deg, rgba(10,14,20,.30) 0%, rgba(10,14,20,.80) 100%) !important;
  }
}

@media (min-width: 992px) {
  /* keeps the copy clear of the artwork at every viewport width, because the
     images are width-scaled and cropped vertically — the artwork edge stays
     at a fixed percentage across the range */
  #top-banner .carousel-inner .carousel_content { max-width: 42%; }
  #top-banner .carousel-inner .banner-main-text { font-size: 44px !important; }
  #top-banner .carousel-inner .banner-sub-text  { font-size: 18px !important; }
  #top-banner .carousel-inner .banner-actions .al-btn { padding: 14px 30px; font-size: 17px; }
}

@media (min-width: 1440px) {
  #top-banner .carousel-inner .banner-main-text { font-size: 52px !important; }
}


/* ==========================================================================
   7. NAV — highlight the top-level "Create Labels" item
   Matched on href (/create-labels.html), so no class is needed in the menu
   manager. If the page is ever renamed again, this href fragment and the one
   in the caret rule below are the only two places to update.
   Colour and weight only; the item earns attention from its position and the
   accent colour rather than a badge.
   ========================================================================== */
.navbar .navbar-nav > li.nav-item > a.nav-link[href*="create-labels"] {
  color: var(--al-accent) !important;
  font-weight: 700 !important;
}

/* Kill the dropdown caret on it. OnPrintShop tags custom menu links as
   li.nav-item.dropdown.submenu_custom_link whether or not they have children,
   and the theme draws a caret off that. The <a> has no .dropdown-toggle class
   and the <li> has no <ul>, so the arrow is purely decorative and misleading -
   it promises a submenu that never opens.

   The caret is a border-triangle on ::after, and it inherits currentColor,
   which is why it turned orange when the rule above recoloured the link.

   Matched on href so it only ever affects this item. If you add more childless
   custom links later, the broader fix is:
     .navbar .navbar-nav > li.submenu_custom_link > a.nav-link::after
   but that would wrongly hide the caret on any custom link that DOES get
   children, so it is left narrow on purpose.

   The theme rule lives in style1/style2.css on the CDN, which is cross-origin
   and unreadable, so !important is used rather than guessing its specificity. */
.navbar .navbar-nav > li.nav-item > a.nav-link[href*="create-labels"]::after {
  content: none !important;
  display: none !important;
}


/* ==========================================================================
   8. CMS SLOT TWEAKS
   ========================================================================== */
/* Homepage intro slot - breathing room under the banner.
   The stock markup carried its own padding on a .header-section1.pt-5 wrapper.
   Replacing the slot content removes that wrapper, so .header-content > .container
   has no vertical padding at all and the copy ends up hard against the 700px
   banner image. This puts it back on the container itself, which survives any
   future edit to the slot's inner markup.
   Scoped under .header-content so it cannot touch other .container elements. */
.header-content > .container { padding-top: 40px; padding-bottom: 36px; }
@media (min-width: 768px) {
  .header-content > .container { padding-top: 64px; padding-bottom: 56px; }
}

/* Make "Request a Quote" read as the fallback, not the main path.
   It keeps the theme yellow; the calculator CTAs are orange. */
.middle-footer-content section.label_solution .btn { font-weight: 600; }

/* ==========================================================================
   9. CMS PAGE TITLE + COMPACT HERO  (used by /create-labels.html)
   --------------------------------------------------------------------------
   OnPrintShop renders the page title as an <h1> inside .page-header, ABOVE the
   editable content, and there is no setting to turn it off. Hiding it in CSS
   would be hiding the page's only h1 from users while leaving it for crawlers,
   which is exactly the pattern search engines treat as cloaking. So it stays
   and is styled as part of the design instead.

   These rules apply to every CMS content page (FAQ, testimonials, etc.), which
   is a tidy-up rather than a problem - all it does is drop a stray grey rule
   and give the title room to breathe.
   ========================================================================== */
.body-container .page-header {
  border: 0 !important;
  margin: 0 0 18px !important;
  padding: 0;
}
.body-container .page-header h1 {
  font-family: "Poppins-SemiBold", sans-serif;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.15;
}

/* --- Compact hero: sits directly under the page title --- */
.al-hero--compact {
  border-radius: var(--al-radius);
  background-image: linear-gradient(100deg, #00263A 0%, #02304a 55%, #3b2a1a 100%);
  margin-bottom: 8px;
}
.al-hero--compact::after { display: none; }            /* no photo, no scrim needed */
.al-hero--compact .al-hero__inner { max-width: none; padding: 38px 34px; }
.al-hero--compact .al-hero__body  { max-width: 760px; }

/* the hero's statement line. A <p>, not a heading - the page already has its h1. */
.al-hero__lead {
  font-family: "Poppins-SemiBold", sans-serif;
  font-size: clamp(23px, 2.5vw, 31px);
  line-height: 1.25;
  color: #fff;
  margin: 0 0 12px;
}
.al-hero--compact .al-lede { font-size: 16.5px; margin-bottom: 22px; }

@media (max-width: 575px) {
  .al-hero--compact .al-hero__inner { padding: 28px 22px; }
}

/* --- Product groups as separate grey panels on a white section --- */
.al-group--panel {
  background: var(--al-bg-soft);
  border: 1px solid var(--al-line);
  border-radius: var(--al-radius);
  padding: 28px 26px 6px;
  margin-bottom: 28px;
}
.al-group--panel .al-group__head { border-bottom-color: #dfe4ec; }
/* dark cards on the grey panel - no border override needed, the card
   carries its own --al-card-line */

@media (max-width: 575px) {
  .al-group--panel { padding: 22px 18px 2px; }
}

/* --- "Can't find it" fallback band --- */
.al-quote {
  border: 1px solid var(--al-line);
  border-left: 4px solid var(--al-accent);
  border-radius: var(--al-radius);
  background: #fff;
  padding: 34px 32px;
}
.al-quote .al-h3  { margin-bottom: 8px; }
.al-quote .al-lede { margin-bottom: 20px; max-width: 720px; }

/* --- Anchor targets must clear the sticky navbar (measured at 101px) --- */
.al-section[id] { scroll-margin-top: 120px; }


/* ==========================================================================
   10. VALUE-PROP CARDS  (homepage, replacing the testimonials module)
   --------------------------------------------------------------------------
   Question-led boxes. The orange question is the hook; the answer underneath
   is the mechanic. Same white-card language as .al-step, without the counter.
   ========================================================================== */
.al-vcard {
  height: 100%;
  padding: 28px 26px;
  margin-bottom: 24px;
  background: #fff;
  border: 1px solid var(--al-line);
  border-top: 3px solid var(--al-accent);
  border-radius: var(--al-radius);
  box-shadow: var(--al-shadow);
}
.al-vcard__q {
  font-family: "Poppins-SemiBold", sans-serif;
  font-size: 19px; line-height: 1.3; font-weight: 600;
  color: var(--al-accent);
  margin: 0 0 10px;
}
.al-vcard p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--al-ink-soft); }

@media (max-width: 575px) {
  .al-vcard { padding: 24px 20px; }
}