.shopping_cart_page
{
   --cart-ink: #1c2430;
   --cart-muted: #606b78;
   --cart-line: #d9dee5;
   --cart-soft: #f6f7f8;
   --cart-red: #9d292d;
   --cart-blue: #233c59;
   width: 85%;
   max-width: none;
   margin: 0px auto;
   padding-right: 0px;
   padding-left: 0px;
   color: var( --cart-ink );
}

.shopping_cart_page.cart_ajax_busy
{
   cursor: progress;
}

.shopping_cart_page.cart_ajax_busy .cart_items_column,
.shopping_cart_page.cart_ajax_busy .cart_summary_column
{
   opacity: .55;
   pointer-events: none;
   transition: opacity 160ms ease;
}

.cart_page_shell
{
   width: 100%;
   max-width: none;
}

.cart_page_shell .compact-page-hero
{
   width: 100%;
   max-width: none;
   margin-right: 0px;
   margin-left: 0px;
}

.cart_intro
{
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   margin: 16px 0px 20px;
   padding-bottom: 18px;
   border-bottom: 1px solid var( --cart-line );
}

.cart_intro h1
{
   margin: 0px;
   color: #202b3a;
   font-size: clamp( 1.55rem, 2.2vw, 2rem );
   font-weight: 800;
   line-height: 1.15;
}

.cart_title_group
{
   display: flex;
   align-items: baseline;
   gap: 12px;
}

.cart_item_count
{
   flex: 0 0 auto;
   color: var( --cart-muted );
   font-size: .9rem;
   font-weight: 650;
}

.cart_intro_tools
{
   display: flex;
   flex: 0 0 auto;
   flex-direction: column;
   gap: 8px;
   align-items: flex-end;
}

.cart_primary_actions
{
   display: flex;
   gap: 10px;
   margin: 0px;
}

.cart_continue_action
{
   display: inline-flex;
   min-height: 44px;
   align-items: center;
   justify-content: center;
   margin: 0px;
   padding: 0px 17px;
   border: 1px solid #aeb8c4;
   border-radius: 4px;
   background: #ffffff;
   color: #233c59;
   cursor: pointer;
   font-size: .92rem;
   font-weight: 750;
   letter-spacing: .01em;
   text-align: center;
   transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.cart_continue_action:hover
{
   border-color: #233c59;
   background: #f4f7fa;
}

.cart_continue_action.primary
{
   border-color: #233c59;
   background: #233c59;
   color: #ffffff;
}

.cart_continue_action.primary:hover
{
   border-color: #172a40;
   background: #172a40;
}

.cart_content_grid
{
   display: grid;
   grid-template-columns: minmax( 700px, 1fr ) 450px;
   gap: 28px;
   align-items: start;
}

.cart_shipping_debug,
.cart_shipping_debug #tdiv_1
{
   width: 100%;
}

.cart_shipping_debug
{
   margin-top: 30px;
}

.cart_summary_column
{
   position: sticky;
   top: calc( var( --cart-sticky-header-height, 0px ) + 18px );
   width: 450px;
   min-width: 450px;
   max-width: 450px;
   justify-self: end;
}

.shopping_cart_page .cart_productsection
{
   margin: 0px;
   border: 0px;
   background: #ffffff !important;
}

.shopping_cart_page .cart_productsection > .hbox
{
   display: none;
}

.shopping_cart_page .cart_productsection .htype
{
   color: #244f79;
   font-size: 1.2rem;
   font-weight: 750;
   text-align: left;
}

.shopping_cart_page .cart_productsection .htext,
.shopping_cart_page .cart_productsection .hsctext
{
   margin-top: 7px;
   color: var( --cart-muted );
   line-height: 1.45;
   text-align: left;
}

.shopping_cart_page .cart_productsection .slist
{
   display: block;
   padding: 0px;
}

.shopping_cart_page .cart_productsection .slist .item
{
   position: relative;
   display: flex;
   min-width: 0px;
   min-height: 0px;
   flex-direction: row;
   align-items: center;
   justify-content: flex-start;
   gap: 18px;
   padding: 64px 0px;
   border: 0px;
   border-radius: 0px;
   background: #ffffff !important;
   text-align: left;
}

.shopping_cart_page .cart_productsection .slist .item img
{
   display: block;
   max-width: 84px;
   max-height: 84px;
   object-fit: contain;
}

.shopping_cart_page .cart_productsection > .product
{
   position: relative;
   padding: 64px 0px;
   background: #ffffff !important;
}

.cart_items_column > .cart_productsection:first-child > .hbox + .product,
.cart_items_column > .cart_productsection:first-child .slist .item:first-child
{
   padding-top: 24px;
}

.shopping_cart_page .cart_productsection .slist .item::after,
.shopping_cart_page .cart_productsection > .product::after
{
   position: absolute;
   bottom: 0px;
   left: 10%;
   width: 80%;
   height: 1px;
   background: linear-gradient( 90deg, rgba( 207, 215, 224, 0 ) 0%, #cfd7e0 12%, #cfd7e0 88%, rgba( 207, 215, 224, 0 ) 100% );
   content: "";
   pointer-events: none;
}

.shopping_cart_page .subtotal
{
   display: none;
}

.cart_item_overview
{
   display: grid;
   grid-template-columns: minmax( 240px, 1fr ) minmax( 260px, 1.25fr ) 190px;
   gap: 24px;
   align-items: start;
}

.cart_item_identity
{
   display: flex;
   min-width: 0px;
   gap: 8px;
   align-items: flex-start;
}

.cart_design_image_actions
{
   display: flex;
   flex: 0 0 104px;
   flex-direction: column;
   gap: 7px;
   align-items: center;
}

.cart_design_image_actions .cart_product_image
{
   flex-basis: auto;
   border-radius: 0px;
}

.cart_design_image_actions .cart_product_image_master
{
   border-radius: 4px;
}

.cart_design_image_button
{
   display: block;
   margin: 0px;
   padding: 0px;
   border: 0px;
   background: transparent;
   cursor: zoom-in;
}

.cart_design_image_overlay
{
   position: fixed;
   z-index: 1000010;
   inset: 0px;
   display: flex;
   padding: 24px;
   background: linear-gradient( 135deg, #f7f8f9 0%, #eef1f3 100% );
   align-items: center;
   justify-content: center;
}

.cart_design_image_overlay[hidden]
{
   display: none;
}

.cart_design_image_modal
{
   position: relative;
   display: flex;
   max-width: calc( 100vw - 48px );
   max-height: calc( 100vh - 48px );
   padding: 20px;
   border-radius: 6px;
   background: transparent;
   box-shadow: none;
   align-items: center;
   justify-content: center;
}

.cart_design_image_modal img
{
   display: block;
   width: auto;
   height: auto;
   max-width: calc( 100vw - 88px );
   max-height: calc( 100vh - 88px );
   object-fit: contain;
   box-shadow: 0px 3px 14px rgba( 61, 69, 78, .22 );
}

.cart_design_image_modal img[hidden],
.cart_design_image_status[hidden]
{
   display: none;
}

.cart_design_image_status
{
   padding: 40px 16px;
   color: #243142;
   text-align: center;
}

.cart_design_image_loading::before
{
   content: "";
   display: block;
   width: 36px;
   height: 36px;
   margin: 0px auto 16px;
   border: 4px solid #cfd7e0;
   border-top-color: #243142;
   border-radius: 50%;
   animation: cart_design_image_spin .8s linear infinite;
}

@keyframes cart_design_image_spin
{
   to { transform: rotate( 360deg ); }
}

@media (prefers-reduced-motion: reduce)
{
   .cart_design_image_loading::before
   {
      animation: none;
   }
}

.cart_design_image_close
{
   position: absolute;
   z-index: 1;
   top: 8px;
   right: 8px;
   width: 36px;
   height: 36px;
   padding: 0px;
   border: 1px solid #cfd7e0;
   border-radius: 50%;
   background: rgba( 255, 255, 255, .94 );
   color: #243142;
   cursor: pointer;
   font-size: 1.6rem;
   line-height: 32px;
}

body.cart_design_image_open
{
   overflow: hidden;
}

.cart_expedite_popup_overlay
{
   position: fixed;
   z-index: 1000010;
   inset: 0px;
   display: flex;
   padding: 20px;
   background: rgba( 16, 24, 40, .78 );
   align-items: center;
   justify-content: center;
}

.cart_expedite_popup_overlay[hidden]
{
   display: none;
}

.cart_expedite_popup_modal
{
   position: relative;
   width: min( 920px, calc( 100vw - 40px ) );
   height: min( 840px, calc( 100vh - 40px ) );
   overflow: hidden;
   border-radius: 12px;
   background: #f7f7f6;
   box-shadow: 0px 24px 70px rgba( 0, 0, 0, .35 );
}

.cart_expedite_popup_modal iframe
{
   display: block;
   width: 100%;
   height: 100%;
   border: 0px;
   background: #f7f7f6;
}

.cart_expedite_popup_close
{
   position: absolute;
   z-index: 2;
   top: 10px;
   right: 10px;
   width: 38px;
   height: 38px;
   padding: 0px;
   border: 1px solid #cfd7e0;
   border-radius: 50%;
   background: rgba( 255, 255, 255, .96 );
   color: #243142;
   cursor: pointer;
   font-size: 1.7rem;
   line-height: 34px;
   box-shadow: 0px 2px 8px rgba( 0, 0, 0, .12 );
}

body.cart_expedite_popup_open
{
   overflow: hidden;
}

@media screen and (max-width: 620px)
{
   .cart_expedite_popup_overlay
   {
      padding: 8px;
   }

   .cart_expedite_popup_modal
   {
      width: calc( 100vw - 16px );
      height: calc( 100vh - 16px );
      border-radius: 8px;
   }
}

.cart_modify_link
{
   color: #8d3034;
   font-size: .8rem;
   font-weight: 750;
   text-decoration: underline;
   text-decoration-color: #9aaabd;
   text-underline-offset: 3px;
}

.cart_modify_link:hover
{
   color: #671f23;
   text-decoration-color: #671f23;
}

.cart_item_identity .cart_product_image
{
   width: 104px !important;
   height: 104px;
   flex: 0 0 104px;
   margin: 0px;
   border: 0px;
   border-radius: 4px;
   background: #ffffff;
   object-fit: contain;
}

.cart_item_identity .cart_product_image_mat_outer
{
   background: transparent;
   box-shadow: none;
   filter: drop-shadow( 0px 3px 5px rgba( 61, 69, 78, .2 ) );
}

.cart_item_identity .cart_matboard_image
{
   background: transparent;
   filter: drop-shadow( 0 0 5px rgba( 0, 0, 0, .25 ) );
}

.cart_item_facts
{
   display: flex;
   width: 100%;
   flex-direction: column;
   align-self: flex-start;
   min-width: 0px;
   gap: 7px;
   text-align: left;
}

.cart_item_fact
{
   display: grid;
   width: 100%;
   grid-template-columns: 45px minmax( 0px, 1fr );
   align-items: baseline;
   column-gap: 10px;
}

.cart_item_fact span
{
   color: #737d89;
   font-size: .7rem;
   font-weight: 750;
   text-align: left;
}

.cart_item_fact strong
{
   min-width: 0px;
   overflow-wrap: anywhere;
   color: #1c2430;
   font-size: .82rem;
   font-weight: 700;
   text-align: left;
}

.cart_design_name_row
{
   display: flex;
   width: 100%;
   align-items: baseline;
   gap: 8px;
   text-align: left;
}

.cart_design_name
{
   min-width: 0px;
   overflow-wrap: anywhere;
   color: #1c2430;
   font-size: .88rem;
   font-weight: 700;
   line-height: 1.3;
   text-align: left;
}

.cart_item_actions
{
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   align-items: center;
   justify-content: flex-start;
   align-self: start;
}

.cart_item_purchase
{
   display: flex;
   min-width: 0px;
   flex-direction: column;
   gap: 14px;
   align-items: stretch;
   padding-left: 0px;
   padding-right: 40px;
   border-left: 0px;
   align-self: start;
}

.cart_quantity_control
{
   display: flex;
   width: 100%;
   flex-wrap: wrap;
   grid-column: 1 / -1;
   justify-content: flex-start;
   align-items: center;
   margin-top: 5px;
   color: #586472;
   font-size: .78rem;
   font-weight: 750;
   text-align: left;
}

.cart_quantity_actions
{
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   align-items: center;
}

.cart_quantity_stepper
{
   display: inline-grid;
   grid-template-columns: 24px minmax( 28px, auto ) 24px;
   min-height: 26px;
   overflow: hidden;
   border: 1px solid #aab7c5;
   border-radius: 3px;
   background: #ffffff;
   box-shadow: 0px 1px 3px rgba( 22, 48, 75, .08 );
}

.cart_quantity_stepper button,
.cart_quantity_stepper output
{
   display: flex;
   min-width: 0px;
   min-height: 26px;
   align-items: center;
   justify-content: center;
   margin: 0px;
   padding: 0px;
   border: 0px;
   background: transparent;
   color: #1d2937;
   font: inherit;
   line-height: 1;
}

.cart_quantity_stepper button
{
   color: #244f79;
   font-size: .84rem;
   cursor: pointer;
}

.cart_quantity_stepper button:first-child
{
   border-right: 1px solid #d7dee6;
}

.cart_quantity_stepper button:last-child
{
   border-left: 1px solid #d7dee6;
}

.cart_quantity_stepper button:hover:not( :disabled )
{
   background: #edf4fa;
}

.cart_quantity_stepper button:focus-visible
{
   position: relative;
   z-index: 1;
   outline: 2px solid #244f79;
   outline-offset: -2px;
}

.cart_quantity_stepper button:disabled
{
   color: #aeb7c1;
   cursor: default;
}

.cart_quantity_stepper output
{
   padding: 0px 4px;
   font-size: .72rem;
   font-weight: 800;
}

.cart_quantity_remove
{
   padding: 2px 0px;
   border: 0px;
   background: transparent;
   color: #8d3034;
   cursor: pointer;
   font-size: .76rem;
   font-weight: 700;
   text-decoration: underline;
   text-decoration-color: #caa9aa;
   text-underline-offset: 3px;
}

.cart_quantity_remove:hover,
.cart_quantity_remove:focus-visible
{
   color: #671f23;
   text-decoration-color: #671f23;
}

.cart_line_price
{
   display: flex;
   align-items: baseline;
   justify-content: flex-end;
   gap: 10px;
}

.cart_line_price span
{
   color: #6b7580;
   font-size: .8rem;
}

.cart_line_price strong
{
   color: #172333;
   font-size: 1.2rem;
   white-space: nowrap;
}

.cart_quantity_readonly
{
   display: flex;
   justify-content: space-between;
   gap: 10px;
}

.shopping_cart_page .product > table
{
   width: 100%;
   border-collapse: collapse;
}

.shopping_cart_page .product > table > tbody > tr
{
   display: grid;
   grid-template-columns: minmax( 190px, .8fr ) minmax( 360px, 1.5fr ) minmax( 135px, .45fr );
   gap: 20px;
   align-items: center;
}

.shopping_cart_page .product > table > tbody > tr > td
{
   display: block;
   padding: 0px;
}

.shopping_cart_page .product .pdetails
{
   text-align: left;
}

.shopping_cart_page .product .quantity
{
   width: auto;
   justify-self: end;
   text-align: right;
}

.shopping_cart_page .product .pdetails img
{
   display: block;
   width: 112px !important;
   height: 112px;
   margin: 6px 0px 10px;
   object-fit: contain;
   border: 1px solid var( --cart-line );
   background: #ffffff;
}

.shopping_cart_page .options
{
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   justify-content: flex-start;
   align-items: center;
}

.shopping_cart_page .options > div
{
   width: auto !important;
}

.cart_text_action
{
   display: inline-flex;
   min-height: 38px;
   align-items: center;
   padding: 0px 13px;
   border: 1px solid #bfc7d1;
   border-radius: 4px;
   background: #ffffff;
   color: var( --cart-blue );
   font-size: .9rem;
   font-weight: 700;
   text-decoration: none;
}

.cart_text_action:hover
{
   border-color: var( --cart-blue );
   background: #f3f6f8;
}

.cart_text_action.primary
{
   border-color: var( --cart-blue );
   background: var( --cart-blue );
   color: #ffffff;
}

.cart_text_action.danger
{
   border-color: transparent;
   color: #8d2529;
}

.shopping_cart_page .qty_price
{
   margin: 0px;
   justify-content: flex-end;
}

.shopping_cart_page .qty_price .price
{
   color: var( --cart-ink );
   font-size: 1.25rem;
   font-weight: 750;
}

.cart_design_details
{
   margin-top: 0px;
}

.cart_design_details > summary
{
   display: none;
}

.cart_design_detail_controls
{
   display: flex;
   flex-wrap: wrap;
   gap: 18px;
   align-items: center;
   margin-top: 40px;
}

.cart_design_details_toggle,
.cart_design_notes_toggle
{
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 0px;
   border: 0px;
   background: transparent;
   color: #244f79;
   cursor: pointer;
   font-size: .88rem;
   font-weight: 750;
   line-height: 1.35;
   text-decoration: none;
}

.cart_design_notes_toggle
{
   padding-left: 18px;
   border-left: 1px solid #d6dde5;
}

.cart_design_details_toggle:hover,
.cart_design_notes_toggle:hover
{
   color: #173c60;
}

.cart_design_details_toggle::before
{
   width: 7px;
   height: 7px;
   border-right: 2px solid currentColor;
   border-bottom: 2px solid currentColor;
   content: "";
   transform: rotate( 45deg );
   transition: transform .18s ease;
}

.cart_design_details_toggle[aria-expanded="true"]::before
{
   transform: rotate( 225deg );
}

.cart_design_details_toggle .cart_details_open_text
{
   display: none;
}

.cart_design_details_toggle[aria-expanded="true"] .cart_details_closed_text
{
   display: none;
}

.cart_design_details_toggle[aria-expanded="true"] .cart_details_open_text
{
   display: inline;
}

.cart_design_notes_guidance
{
   max-width: 680px;
   margin-top: 8px;
   color: #74808c;
   font-size: .74rem;
   line-height: 1.45;
}

.cart_design_notes_editor
{
   max-width: 680px;
   padding-top: 16px;
   text-align: left;
}

.cart_design_notes_editor label
{
   display: block;
   margin-bottom: 6px;
   color: #263343;
   font-size: .82rem;
   font-weight: 750;
   text-align: left;
}

.cart_design_notes_editor textarea
{
   display: block;
   width: 100%;
   min-height: 112px;
   box-sizing: border-box;
   resize: vertical;
   padding: 10px 12px;
   border: 1px solid #c8d2dd;
   border-radius: 4px;
   background: #ffffff;
   color: #263343;
   font: inherit;
   font-size: .84rem;
   line-height: 1.5;
}

.cart_design_notes_editor textarea:focus
{
   border-color: #6889a9;
   outline: 2px solid rgba( 66, 112, 153, .14 );
   outline-offset: 1px;
}

.cart_design_notes_actions
{
   display: flex;
   gap: 12px;
   align-items: center;
   margin-top: 10px;
}

.cart_design_notes_remove
{
   padding: 0px;
   border: 0px;
   background: transparent;
   color: #8d3034;
   cursor: pointer;
   font-size: .76rem;
   font-weight: 700;
   text-decoration: underline;
   text-underline-offset: 3px;
}

@media screen and ( max-width: 380px )
{
   .cart_design_notes_toggle
   {
      padding-left: 0px;
      border-left: 0px;
   }
}

.cart_design_details_panel
{
   height: 0px;
   overflow: hidden;
   opacity: 0;
   transition: height .65s cubic-bezier( .22, 1, .36, 1 ), opacity .48s ease;
}

.cart_design_details[open] .cart_design_details_panel
{
   opacity: 1;
}

.cart_design_details.is_closing .cart_design_details_panel
{
   opacity: 0;
}

@media ( prefers-reduced-motion: reduce )
{
   .cart_design_details_panel
   {
      transition-duration: 0s;
   }
}

.cart_design_details h3
{
   margin: 16px 0px 2px;
   font-size: 1.05rem;
}

.cart_design_details_intro
{
   margin: 0px;
   color: var( --cart-muted );
   font-size: .9rem;
}

.shopping_cart_page .item_details
{
   overflow-x: auto;
   padding-top: 16px;
}

.cart_component_grid
{
   display: flex;
   flex-wrap: wrap;
   gap: 14px;
   align-items: stretch;
   justify-content: flex-start;
}

.cart_component_shipping_notice
{
   flex: 1 0 100%;
   padding: 12px 14px;
   border: 1px solid #e1c97b;
   border-left: 5px solid #c99616;
   border-radius: 4px;
   background: #fff9df;
   color: #493b16;
   font-weight: 700;
}

.cart_component_card
{
   display: flex;
   width: fit-content;
   min-width: 350px;
   max-width: 380px;
   flex: 0 1 auto;
   flex-direction: column;
   overflow: hidden;
   border: 1px solid #dce2e8;
   border-radius: 6px;
   background: #ffffff;
   box-shadow: 0px 2px 7px rgba( 23, 36, 58, .05 );
}

.cart_component_card_header
{
   display: flex;
   min-height: 46px;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
   padding: 10px 13px;
   border-bottom: 1px solid #e4e8ec;
   background: #f4f6f8;
}

.cart_component_type
{
   color: #263343;
   font-size: .88rem;
   font-weight: 800;
   line-height: 1.25;
}

.cart_component_heading
{
   min-width: 0px;
}

.cart_component_header_meta
{
   display: flex;
   flex: 0 0 auto;
   gap: 9px;
   align-items: center;
   justify-content: flex-end;
}

.cart_component_sku
{
   margin-top: 3px;
   overflow-wrap: anywhere;
   color: #596675;
   font-size: .78rem;
   font-weight: 700;
}

.cart_component_quantity
{
   flex: 0 0 auto;
   padding: 3px 7px;
   border-radius: 999px;
   background: #e5eaf0;
   color: #4c5867;
   font-size: .72rem;
   font-weight: 750;
}

.cart_component_body
{
   display: grid;
   grid-template-columns: 60px minmax( 0px, 1fr );
   gap: 12px;
   align-items: start;
   padding: 14px 13px;
}

.cart_component_image
{
   display: flex;
   width: 60px;
   height: 60px;
   align-items: flex-start;
   justify-content: center;
   border: 0px;
   background: transparent;
}

.cart_component_image:empty
{
   display: none;
}

.cart_component_image:empty + .cart_component_description
{
   grid-column: 1 / -1;
}

.cart_component_card.no_image .cart_component_description
{
   grid-column: 1 / -1;
}

.cart_component_image img
{
   display: block;
   width: 52px;
   height: 52px;
   object-fit: contain;
}

.cart_component_mat .cart_component_image img
{
   filter: drop-shadow( 0px 2px 3px rgba( 68, 77, 88, .24 ) );
}

.cart_component_body_sku
{
   color: #596675;
   font-size: .78rem;
   font-weight: 700;
}

.cart_component_size_note
{
   margin-top: auto;
   padding: 0px 13px 10px;
   color: #89939f;
   font-size: .68rem;
   font-weight: 500;
   line-height: 1.3;
}

.cart_component_fact
{
   display: contents;
}

.cart_component_fact strong,
.cart_component_fact span
{
   min-width: 0px;
   text-align: left;
}

.cart_component_description
{
   display: grid;
   grid-template-columns: max-content minmax( 0px, 1fr );
   min-width: 0px;
   column-gap: 7px;
   row-gap: 4px;
   color: #54606e;
   font-size: .84rem;
   line-height: 1.35;
}

.cart_component_description > span,
.cart_component_description > .cart_component_body_sku
{
   grid-column: 1 / -1;
}

.cart_component_description strong
{
   overflow-wrap: anywhere;
   color: #1d2937;
   font-size: .94rem;
}

.cart_component_description span strong
{
   color: #46515e;
   font-size: inherit;
}

.cart_component_description .cart_component_fact > strong
{
   overflow-wrap: normal;
   color: #737d89;
   font-size: .7rem;
   font-weight: 750;
   white-space: nowrap;
}

.cart_component_description .cart_component_fact > span
{
   color: #1c2430;
   font-size: .82rem;
   font-weight: 700;
}

.cart_component_prices
{
   display: flex;
   gap: 9px;
   justify-content: flex-end;
   padding: 0px;
}

.cart_component_prices > div
{
   display: flex;
   flex-direction: column;
   gap: 2px;
   align-items: center;
   text-align: center;
}

.cart_component_prices span
{
   color: #697583;
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .04em;
   text-transform: uppercase;
}

.cart_component_prices strong
{
   color: #202c3b;
   font-size: .84rem;
   white-space: nowrap;
}

.cart_component_prices .cart_component_free
{
   color: #2f5b42;
   font-size: 1rem;
   font-weight: 850;
   letter-spacing: .03em;
   line-height: 1;
}

.shopping_cart_page .product.cart_item_removal_pending,
.shopping_cart_page .slist .item.cart_item_removal_pending
{
   overflow: hidden;
   box-sizing: border-box;
   background: #fff0f0 !important;
   transition: background-color .18s ease, height .46s cubic-bezier( .4, 0, .2, 1 ), padding .46s cubic-bezier( .4, 0, .2, 1 ), opacity .28s ease, transform .46s cubic-bezier( .4, 0, .2, 1 );
}

.shopping_cart_page .product.cart_item_removal_collapsing,
.shopping_cart_page .slist .item.cart_item_removal_collapsing
{
   height: 0px !important;
   min-height: 0px;
   padding-top: 0px;
   padding-bottom: 0px;
   opacity: 0;
   transform: scale( .985 );
}

.shopping_cart_page .item_details table
{
   width: 100%;
   table-layout: auto;
   border-collapse: collapse;
}

.shopping_cart_page .item_details td
{
   padding: 10px 9px;
   border-bottom: 1px solid #e6e9ed;
   text-align: left;
   vertical-align: middle;
}

.shopping_cart_page .item_details td:first-child
{
   width: 150px;
   font-weight: 700;
}

.shopping_cart_page .item_details td.ppimage
{
   width: 62px;
   text-align: center;
}

.shopping_cart_page .item_details td.price,
.shopping_cart_page .item_details td:last-child
{
   width: 120px;
   text-align: right;
   white-space: nowrap;
}

.shopping_cart_page .item_details tr:first-child td
{
   color: #475363;
   font-size: .83rem;
   font-weight: 750;
   text-transform: uppercase;
   letter-spacing: .03em;
}

.shopping_cart_page .item_details .ppimage img
{
   width: 42px !important;
   height: 42px;
   object-fit: contain;
}

.shopping_cart_page .subtotal
{
   padding: 13px 18px;
   background: var( --cart-soft );
   color: var( --cart-ink );
   font-size: 1.05rem;
   font-weight: 750;
   text-align: right;
}

.shopping_cart_page .framer_notes
{
   margin-top: 14px;
   padding: 13px 15px;
   border-left: 3px solid #b98940;
   background: #fff9ed;
}

.cart_checkout_area
{
   padding: 18px;
   border: 1px solid #d5dee8;
   border-radius: 7px;
   background: linear-gradient( 180deg, #f8fafc 0%, #f3f6f9 100% );
   box-shadow: 0px 5px 18px rgba( 31, 51, 73, .09 );
}

.cart_design_overview .cart_item_purchase
{
   padding-left: 0px;
   border-left: 0px;
}

.cart_design_overview .cart_line_price
{
   justify-content: flex-end;
}

.cart_checkout_help
{
   margin-top: 20px;
   padding-top: 16px;
   border-top: 1px solid var( --cart-line );
   color: var( --cart-muted );
   font-size: .94rem;
   line-height: 1.5;
   text-align: left;
}

.cart_checkout_help.shipping_timing + .cart_checkout_help
{
   margin-top: 12px;
   padding-top: 12px;
}

.cart_checkout_tools
{
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
   justify-content: center;
   margin-top: 16px;
}

.cart_checkout_tools .daa,
.cart_checkout_tools a
{
   color: var( --cart-blue );
   font-weight: 700;
   text-decoration: underline;
}

.cart_order_summary
{
   text-align: left;
}

.cart_order_summary_title
{
   padding-bottom: 14px;
   border-bottom: 1px solid var( --cart-line );
   color: var( --cart-ink );
   font-size: 1.3rem;
   font-weight: 750;
}

.cart_order_summary_rows
{
   padding-top: 8px;
}

.cart_order_summary_row,
.cart_order_summary_total
{
   display: flex;
   justify-content: space-between;
   gap: 16px;
   padding: 8px 0px;
   align-items: baseline;
}

.cart_summary_options
{
   display: grid;
   margin: 14px 0px 4px;
   gap: 5px;
}

.cart_summary_option
{
   position: relative;
   overflow: hidden;
   border: 1px solid #d8e0e9;
   border-radius: 5px;
   background: #ffffff;
}

.cart_order_summary_rows > .cart_summary_option
{
   margin: 14px 0px 5px;
}

.cart_order_summary_rows > .cart_summary_option + .cart_summary_options
{
   margin-top: 0px;
}

.cart_summary_option_link,
.cart_summary_option_selection
{
   display: flex;
   min-height: 48px;
   padding: 7px 34px 7px 12px;
   flex-direction: column;
   align-items: flex-start;
   justify-content: center;
   text-align: left;
}

.cart_summary_option_link
{
   color: #243142;
   cursor: pointer;
   transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.cart_summary_option_link::after
{
   position: absolute;
   top: 50%;
   right: 13px;
   color: #8d3034;
   content: ">";
   font-size: 1rem;
   font-weight: 800;
   transform: translateY( -50% );
}

.cart_summary_option:hover,
.cart_summary_option:focus-within
{
   border-color: #aab8c8;
   background: #f8fafc;
}

.cart_summary_option_link span,
.cart_summary_option_selection span
{
   color: #687588;
   font-size: .65rem;
   font-weight: 700;
   letter-spacing: .035em;
   line-height: 1.2;
   text-transform: uppercase;
}

.cart_summary_option_link strong,
.cart_summary_option_selection strong
{
   display: block;
   margin-top: 3px;
   color: #243142;
   font-size: .82rem;
   font-weight: 750;
   line-height: 1.25;
}

.cart_summary_option_selection
{
   padding-right: 12px;
   flex-direction: row;
   gap: 12px;
   align-items: center;
   justify-content: space-between;
}

.cart_summary_option.selected
{
   border-color: #b8c9be;
   background: #f6faf7;
}

.cart_summary_option_change
{
   flex: 0 0 auto;
   padding: 5px 7px;
   color: #8d3034;
   cursor: pointer;
   font-size: .74rem;
   font-weight: 750;
   text-decoration: underline;
   text-underline-offset: 2px;
}

.cart_summary_pickup_link
{
   display: inline-flex;
   margin: 4px 0px 8px;
   color: #647184;
   cursor: pointer;
   font-size: .74rem;
   font-weight: 650;
   line-height: 1.35;
   text-align: left;
   text-decoration: underline;
   text-decoration-color: #aeb8c5;
   text-underline-offset: 3px;
}

.cart_summary_pickup_link:hover,
.cart_summary_pickup_link:focus-within
{
   color: #8d3034;
   text-decoration-color: #8d3034;
}

.cart_summary_pickup_link.selected
{
   cursor: default;
   gap: 8px;
   text-decoration: none;
}

.cart_summary_pickup_change
{
   color: #8d3034;
   cursor: pointer;
   font-weight: 750;
   text-decoration: underline;
   text-underline-offset: 2px;
}

.cart_order_summary_row strong,
.cart_order_summary_total strong
{
   text-align: right;
   white-space: nowrap;
}

.cart_order_summary_row
{
   color: #46515e;
}

.cart_order_summary_total
{
   margin-top: 8px;
   padding-top: 15px;
   border-top: 1px solid var( --cart-line );
   color: var( --cart-ink );
   font-size: 1.25rem;
   font-weight: 750;
}

.header_notification
{
   background: #f8f800;
   width: 100%;
}

.header_notification .text
{
   color: #555555;
   padding: 10px;
   font-familiy: raleway;
   font-size: 1.2rem;
   font-weight: bold;
   
}

.qty_price
{
   display: flex;
   flex-direction: row;
   margin: 0px 15px;
   justify-content: center;
   align-items: center;
   color: #333333;
}

.qty_price > div
{
   display: flex;
   align-items: center;
   flex-direction: column;
   font-size: 1.4rem;
}

.qty_price > div > div
{
   font-size: 1.2rem;
   margin-bottom: 5px;
}

.qty_price > div:first-child
{
   margin-right: 20px;
}   

.catc_button{
   background-color: #a42d2d;
   color: #ffffff;
   font-size: 1.15rem;
   border: none;
   border-radius: 4px;
   cursor: pointer;
   transition: background-color 0.3s ease, transform 0.2s ease;
   box-shadow: none;
   text-decoration: none;
   white-space: nowrap;
   display: flex;
   width: 100%;
   min-height: 54px;
   align-items: center;
   justify-content: center;
   box-sizing: border-box;
   padding: 16px 20px;
   text-align: center;
   line-height: 1.25;
}

.catc_button:hover {
   background-color: #862323;
   transform: translateY(-2px);
}

.catc_button:active {
   background-color: #001122;
   transform: translateY(0);
}

.cerror_button{
   background-color: #d10000; /* deep navy blue */
   color: #ffffff;
   padding: 10px 14px;
   font-size: 1.1rem;
   border: none;
   border-radius: 6px; /* gently rounded corners */
   cursor: pointer;
   transition: background-color 0.3s ease, transform 0.2s ease;
   box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
   text-decoration: none;
   white-space: nowrap;
   display: inline-block; 
}

.cerror_button:hover {
   background-color: #ff1111;
   transform: translateY(-2px);
}

.cerror_button:active {
   background-color: #001122;
   transform: translateY(0);
}

@media screen and (max-width: 600px) 
{
   .atc_button
   {
      width: 90%;
   }      
}

@media screen and (max-width: 1475px)
{
   .shopping_cart_page
   {
      width: 95%;
   }
}

@media screen and (max-width: 1240px)
{
   .cart_content_grid
   {
      grid-template-columns: minmax( 0px, 1fr );
   }

   .cart_summary_column
   {
      position: static;
      width: 100%;
      min-width: 0px;
      max-width: 600px;
      justify-self: center;
   }
}

@media screen and (max-width: 900px)
{
   .cart_item_overview
   {
      grid-template-columns: minmax( 0px, 1fr ) 180px;
   }

   .cart_item_actions
   {
      grid-column: 1 / -1;
      grid-row: 2;
   }

   .cart_item_purchase
   {
      grid-column: 2;
      grid-row: 1;
   }
}

@media screen and (max-width: 800px) 
{
   .shopping_cart_page
   {
      width: 100%;
      padding-right: 14px;
      padding-left: 14px;
   }

   .cart_intro
   {
      align-items: flex-start;
      flex-direction: column;
   }

   .cart_intro_tools
   {
      width: 100%;
      align-items: flex-start;
   }

   .cart_primary_actions
   {
      justify-content: center;
      flex-wrap: wrap;
   }

   .shopping_cart_page .product > table,
   .shopping_cart_page .product > table > tbody,
   .shopping_cart_page .product > table > tbody > tr
   {
      display: block;
   }

   .shopping_cart_page .product > table > tbody > tr > td
   {
      display: block;
      width: auto;
      padding: 8px 0px;
      text-align: center;
   }

   .shopping_cart_page .product .pdetails
   {
      text-align: center;
   }

   .shopping_cart_page .product .quantity
   {
      justify-self: auto;
      text-align: center;
   }

   .shopping_cart_page .product .pdetails img
   {
      margin-right: auto;
      margin-left: auto;
   }

   .shopping_cart_page .options
   {
      justify-content: center;
   }

   .qty_price
   {
      flex-direction: column;
   }
   
   .qty_price > div:first-child
   {
      margin-bottom: 10px;
      margin-right: 0px;
   }   
}

@media screen and (max-width: 620px)
{
   .cart_component_card
   {
      width: 100%;
      min-width: 0px;
      max-width: none;
      flex-basis: 100%;
   }

   .cart_item_overview
   {
      display: flex;
      flex-direction: column;
      align-items: stretch;
   }

   .cart_item_identity
   {
      align-items: flex-start;
   }

   .cart_item_actions
   {
      order: 3;
   }

   .cart_item_purchase
   {
      padding: 14px 0px 0px;
      border-top: 1px solid #e2e6eb;
      border-left: 0px;
   }

   .cart_design_overview .cart_item_purchase
   {
      padding-top: 0px;
      border-top: 0px;
   }
}

/* Cart presentation is intentionally self-contained in this file. */
.shopping_cart_page .cart_notice
{
   display: flex;
   gap: 12px;
   align-items: flex-start;
   margin: 0px 0px 18px;
   padding: 15px 18px;
   border: 1px solid #e2c96f;
   border-left: 7px solid #d39b16;
   border-radius: 4px;
   background: #fff8d8;
   box-shadow: 0px 2px 7px rgba( 23, 36, 58, .06 );
}

.shopping_cart_page .cart_notice::before
{
   display: inline-flex;
   width: 24px;
   height: 24px;
   flex: 0 0 24px;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: #d39b16;
   color: #ffffff;
   content: "!";
   font-size: .9rem;
   font-weight: 800;
}

.shopping_cart_page .cart_notice .text
{
   padding: 0px;
   color: #433713;
   font-size: 1rem;
   font-weight: 500;
   line-height: 1.5;
   text-align: left !important;
}

.shopping_cart_page .cart_notice a
{
   color: #193f61;
   font-weight: 750;
}

.shopping_cart_page .cart_notice_close
{
   display: inline-flex;
   width: 30px;
   height: 30px;
   flex: 0 0 30px;
   align-items: center;
   justify-content: center;
   margin: -4px -7px -4px auto;
   padding: 0px;
   border: 0px;
   border-radius: 50%;
   background: transparent;
   color: #655319;
   cursor: pointer;
   font-size: 1.35rem;
   line-height: 1;
}

.shopping_cart_page .cart_notice_close:hover,
.shopping_cart_page .cart_notice_close:focus-visible
{
   background: rgba( 123, 95, 15, .1 );
   color: #342a0d;
   outline: 2px solid rgba( 123, 95, 15, .25 );
}

.shopping_cart_page .cart_notice.success
{
   border-left-color: #32704b;
   background: #f4faf6;
}

.shopping_cart_page .cart_notice.success::before
{
   background: #32704b;
   content: "OK";
   font-size: .63rem;
}

.shopping_cart_page .cart_notice.danger
{
   border-left-color: #aa3036;
   background: #fff6f6;
}

.shopping_cart_page .cart_notice.danger::before
{
   background: #aa3036;
}

.cart_checkout_choices
{
   display: grid;
   width: 100%;
   gap: 10px;
   margin-top: 16px;
}

.cart_checkout_choices > div
{
   width: 100%;
   margin: 0px;
}

.cart_checkout_choices .catc_button
{
   display: flex;
   width: 100%;
   min-height: 54px;
   align-items: center;
   justify-content: center;
   margin: 0px;
   padding: 14px 18px;
   box-sizing: border-box;
   text-align: center;
   line-height: 1.25;
}

.cart_checkout_choices .catc_button.secondary
{
   border: 1px solid #a42d2d;
   background: #ffffff;
   color: #862323;
}

.cart_checkout_choices .catc_button.secondary:hover
{
   background: #fff5f5;
}

.shopping_cart_page .cart_section_bulk_action
{
   display: flex;
   justify-content: flex-start;
   padding: 0px 18px 18px;
}

.shopping_cart_page .cart_sample_section
{
   margin: 24px 0px !important;
   overflow: hidden;
   padding: 0px;
   border: 1px solid #d8e0e9;
   border-radius: 8px;
   background: #ffffff !important;
   box-shadow: 0px 5px 18px rgba( 31, 51, 73, .08 );
}

.shopping_cart_page .cart_sample_section > .cart_sample_group_header
{
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   margin: 0px;
   padding: 16px 18px 14px;
   border-bottom: 1px solid #d8e0e9;
   background: linear-gradient( 180deg, #f9fbfd 0%, #f2f6f9 100% );
}

.shopping_cart_page .cart_sample_section .htype
{
   color: #243142;
   font-size: 1.05rem;
}

.shopping_cart_page .cart_sample_section .htext,
.shopping_cart_page .cart_sample_section .hsctext
{
   width: 100%;
   max-width: none;
   margin: 6px 0px 0px;
   padding: 0px;
   color: #657184;
   font-size: .8rem;
   font-weight: 500;
   letter-spacing: .002em;
   line-height: 1.48;
   text-align: left !important;
}

.shopping_cart_page .cart_sample_section .hsctext
{
   width: min( 100%, 640px );
   margin: 14px 0px 0px;
   padding: 13px 18px;
   border: 1px solid #cbd9e3;
   border-left: 6px solid #4f728b;
   border-radius: 8px;
   background: linear-gradient( 135deg, #f7fafc 0%, #edf4f8 100% );
   box-shadow: 0px 3px 10px rgba( 55, 82, 101, .09 );
   color: #27343c;
   font-size: 1rem;
   font-weight: 650;
   line-height: 1.45;
   text-align: center !important;
}

.shopping_cart_page .cart_sample_section .hsctext .hscount
{
   display: inline-flex;
   min-width: 32px;
   min-height: 32px;
   margin: 0px 4px;
   padding: 3px 8px;
   border: 1px solid #abc0ce;
   border-radius: 6px;
   background: #ffffff;
   box-shadow: 0px 1px 3px rgba( 55, 82, 101, .1 );
   color: #263f50;
   font-size: 1rem;
   font-weight: 750;
   align-items: center;
   justify-content: center;
   line-height: 1;
   vertical-align: middle;
}

.cart_sample_group_body
{
   padding: 16px 18px 14px;
   background: #ffffff;
}

.shopping_cart_page .cart_sample_section .slist
{
   display: grid;
   grid-template-columns: repeat( auto-fill, 128px );
   gap: 8px;
   justify-content: start;
}

.shopping_cart_page .cart_sample_section .slist .cart_sample_item_card
{
   display: block;
   overflow: hidden;
   min-width: 0px;
   padding: 0px !important;
   border: 1px solid #dce3eb;
   border-radius: 5px;
   background: #ffffff !important;
}

.shopping_cart_page .cart_sample_section .slist .cart_sample_item_card::after
{
   display: none;
}

.cart_sample_item_header
{
   position: relative;
   display: flex;
   min-height: 31px;
   padding: 8px 32px 7px 9px;
   border-bottom: 1px solid #e1e6ec;
   background: #f3f6f9;
   color: #243142;
   font-size: .72rem;
   gap: 7px;
   align-items: flex-start;
   flex-wrap: wrap;
   line-height: 1.2;
   text-align: left;
}

.cart_sample_item_header strong
{
   align-self: flex-start;
}

.cart_sample_header_price
{
   color: #536174;
   font-size: .68rem;
   font-weight: 750;
   white-space: nowrap;
}

.cart_sample_item_remove
{
   position: absolute;
   top: 3px;
   right: 4px;
   width: 25px;
   height: 25px;
   padding: 0px;
   border: 0px;
   border-radius: 3px;
   background: transparent;
   color: #8d3034;
   cursor: pointer;
   font-size: 1.15rem;
   font-weight: 700;
   line-height: 23px;
}

.cart_sample_item_remove:hover,
.cart_sample_item_remove:focus-visible
{
   background: #f8e9ea;
   color: #671f23;
}

.cart_sample_item_body
{
   display: flex;
   min-height: 82px;
   padding: 8px;
   gap: 8px;
   align-items: center;
   justify-content: center;
}

.shopping_cart_page .cart_sample_section .slist .cart_sample_item_body img
{
   max-width: 66px;
   max-height: 66px;
}

.shopping_cart_page .cart_sample_section .slist .cart_sample_item_body .cart_mat_sample_image
{
   border-radius: 2px;
   box-shadow: 0px 4px 11px rgba( 61, 69, 78, .24 );
}

.shopping_cart_page .cart_sample_section .cart_section_bulk_action
{
   padding: 10px 0px 0px;
}

.cart_sample_remove_all
{
   display: inline-flex;
   padding: 2px 0px;
   color: #7e3034;
   cursor: pointer;
   font-size: .72rem;
   font-weight: 700;
   line-height: 1.3;
   text-align: left;
   text-decoration: underline;
   text-decoration-color: #b9a1a3;
   text-underline-offset: 3px;
}

.cart_sample_remove_all:hover,
.cart_sample_remove_all:focus-visible
{
   color: #5f1f23;
   text-decoration-color: #5f1f23;
}

.shopping_cart_page .cart_sample_section .cart_sample_group_body > .subtotal
{
   display: flex;
   margin-top: 10px;
   padding: 11px 0px 0px;
   border-top: 1px solid #d8e0e9;
   background: transparent;
   color: #172333;
   font-size: 1.2rem;
   font-weight: 700;
   justify-content: flex-end;
}

.shopping_cart_page .cart_sample_remove
{
   margin-top: auto;
   color: #8d2529;
   font-size: .85rem;
   font-weight: 700;
}

.shopping_cart_page .cart_product_image
{
   display: block;
   width: 112px;
   height: 112px;
   object-fit: contain;
}

.shopping_cart_page .cart_product_sku
{
   color: #1c2430;
   font-weight: 750;
}

.shopping_cart_page .cart_discount_notice
{
   display: grid;
   grid-template-columns: repeat( 3, minmax( 0px, 1fr ) );
   gap: 12px;
   margin-top: 12px;
   padding: 14px;
   border: 1px solid #d9cfa9;
   border-left: 5px solid #9a7d22;
   background: #fffdf5;
   color: #413a28;
   font-size: .92rem;
   line-height: 1.45;
}

.shopping_cart_page .cart_discount_notice > div
{
   padding: 0px !important;
}

@media screen and (max-width: 800px)
{
   .shopping_cart_page .cart_discount_notice
   {
      grid-template-columns: minmax( 0px, 1fr );
   }
}

.cart_aux_page
{
   width: min( 920px, calc( 100% - 32px ) );
   margin: 24px auto 56px;
}

.cart_aux_page .ebox
{
   padding: clamp( 20px, 4vw, 42px );
   border: 1px solid #d9dee5;
   border-radius: 6px;
   background: #ffffff;
   box-shadow: 0px 8px 24px rgba( 23, 36, 58, .07 );
   text-align: left;
}

.cart_aux_page .instructions
{
   margin-bottom: 18px;
   padding: 0px;
   color: #4f5b68;
   font-size: 1rem;
   line-height: 1.65;
}

.cart_aux_page .nl1_rowtocolumn
{
   display: block;
}

.cart_aux_page .nl1_inputpair
{
   width: 100%;
   padding: 10px 0px;
}

.cart_aux_page .nl1_inputdescription
{
   margin-bottom: 8px;
   color: #273445;
   font-size: 1rem;
   font-weight: 750;
}

.cart_aux_page .nl1_inputbox,
.cart_aux_page textarea,
.cart_aux_page input[type="text"]
{
   width: 100%;
   padding: 12px 13px;
   border: 1px solid #bfc7d1;
   border-radius: 4px;
   background: #ffffff;
   color: #1c2430;
   font-size: 1rem;
}

.cart_aux_page .nl1_inputbox:focus,
.cart_aux_page textarea:focus,
.cart_aux_page input[type="text"]:focus,
.cart_quantity_select:focus
{
   border-color: #233c59;
   outline: 3px solid rgba( 35, 60, 89, .14 );
}

.cart_aux_field
{
   padding: 20px 0px;
}

.cart_quantity_select
{
   min-width: 240px;
   padding: 12px;
   border: 1px solid #aeb8c4;
   border-radius: 4px;
   background: #ffffff;
   color: #1c2430;
   font-size: 1.1rem;
}

.cart_aux_actions
{
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   align-items: center;
   justify-content: flex-start;
   margin-top: 20px;
}

.cart_aux_actions > div
{
   margin: 0px !important;
}


.cart_admin_bar
{
   width: 100%; 
   padding: 15px; 
   background: var( --color-palette-7 );
   display: flex;
   flex-direction: row;
   align-items: center;
   justify-content: left;
   flex-wrap: wrap;
}

.cart_admin_bar > div
{
   display: flex;
   flex-direction: row;
   align-items: center;
   justify-content: center;
   margin: 0px 20px;
}
