/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Oct 09 2026 | 20:26:18 */
/* =====================================================================
   Cube World USA - responsive fixes for phone and tablet
   ---------------------------------------------------------------------
   Load this file AFTER the theme, Elementor and "Additional CSS" styles
   (enqueue it with a late priority, or paste it at the very bottom of
   Appearance > Customize > Additional CSS).

   Breakpoints   phone  : up to 767px
                 tablet : 768px - 1024px
   Two rules reach wider screens: section 12 (footer spinner, safe at
   every width) and section 15 (desktop header on 992-1199px screens,
   i.e. tablets held sideways and small laptops).
   ===================================================================== */


/* ---------------------------------------------------------------------
   1. Global safety net (phone + tablet)
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* Stop any stray element from widening the page */
  #wrapper-container { overflow-x: clip; }

  #goal-main-content img,
  #goal-main-content video,
  #goal-main-content iframe,
  #goal-footer img { max-width: 100%; }

  /* 16px text stops iOS Safari zooming in when a field is tapped */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="password"],
  input[type="search"],
  input[type="url"],
  select,
  textarea { font-size: 16px !important; }
}

/* Pages with a sidebar: the content column was stuck at 75% width and
   pushed to the right, leaving a narrow strip of text on phones. */
@media (max-width: 991px) {
  #main-container > .row > #main-content {
    width: 100% !important;
    float: none !important;
  }
}


/* ---------------------------------------------------------------------
   2. Undo two "Additional CSS" rules that were written for desktop only
        .page-template-default .col-md-4   { width: 25% }
        .row-products-wrapper .col-md-4    { width: 33.3333% }
      They forced 3-4 columns on phones (shop, blog, category pages).
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .page-template-default .col-md-4.col-xs-12,
  .page-template-default .col-md-4:not([class*="col-xs-"]) { width: 100%; }
  .page-template-default .col-md-4.col-xs-6 { width: 50%; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .page-template-default .col-md-4.col-sm-12,
  .page-template-default .col-md-4:not([class*="col-sm-"]):not([class*="col-xs-"]) { width: 100%; }
  .page-template-default .col-md-4.col-sm-6 { width: 50%; }
  .page-template-default .col-md-4.col-sm-4 { width: 33.3333%; }
}


/* ---------------------------------------------------------------------
   3. Page banner / breadcrumb
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .goal-breadscrumb .wrapper-breads {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .goal-breadscrumb .bread-title {
    font-size: 26px !important;
    line-height: 1.25 !important;
    overflow-wrap: break-word;
  }
  #goal-breadscrumb .cw-product-bread-title {
    font-size: 24px !important;
    line-height: 1.25 !important;
    margin-bottom: 10px !important;
    overflow-wrap: break-word;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .goal-breadscrumb .wrapper-breads {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }
  #goal-breadscrumb .cw-product-bread-title { font-size: 32px !important; line-height: 1.2 !important; }
}


/* ---------------------------------------------------------------------
   4. Floating UI: bottom bar, back-to-top, language switcher, shop
      filter button. The bottom bar shows up to 991px, so this does too.
   --------------------------------------------------------------------- */
@media (max-width: 991px) {
  /* Bottom bar is 68px tall; keep the last line of the page clear of it */
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important; }
  .goal-footer-mobile { padding-bottom: env(safe-area-inset-bottom, 0px); }

  #back-to-top {
    right: 10px !important;
    bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Compact language switcher so it covers less of the page */
  #gt_float_wrapper {
    left: 8px !important;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .gt_float_switcher {
    font-size: 13px !important;
    line-height: 16px !important;
    border-radius: 8px !important;
  }
  .gt_float_switcher img { width: 20px !important; }
  .gt_float_switcher .gt-selected .gt-current-lang { padding: 6px 9px !important; }
  .gt_float_switcher .gt_options a { padding: 8px 10px !important; }

  /* Shop filter button: it sat mid-screen on top of the product cards.
     Park it in the bottom-left corner, just above the language switcher. */
  a.mobile-sidebar-btn {
    top: auto !important;
    bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
    left: 8px !important;
    width: 40px !important;
    height: 40px !important;
    line-height: 40px !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
  }
}


/* ---------------------------------------------------------------------
   5. Product grids (shop, categories, search, "New/Pre-owned" pages)
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .row-products-wrapper > [class*="col-"] {
    width: 50% !important;
    clear: none !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    margin-bottom: 12px;
  }
  .row-products-wrapper > [class*="col-"]:nth-child(2n+1) { clear: left !important; }

  .row-products-wrapper > [class*="col-"] .product-block .grid-inner { padding: 10px !important; }

  /* Two-line titles of equal height keep each row of cards aligned */
  .row-products-wrapper > [class*="col-"] .product-block .name {
    font-size: 13px;
    line-height: 1.3;
    min-height: 2.6em;
  }
  .row-products-wrapper > [class*="col-"] .product-block .name a {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .row-products-wrapper > [class*="col-"] .cw-final-v17-details,
  .row-products-wrapper > [class*="col-"] .cw-final-v17-city,
  .row-products-wrapper > [class*="col-"] .cw-final-v17-item-qty-line,
  .row-products-wrapper > [class*="col-"] .cw-final-v17-price {
    font-size: 13px !important;
    line-height: 1.4 !important;
    overflow-wrap: break-word;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .row-products-wrapper > [class*="col-"] {
    width: 33.3333% !important;
    clear: none !important;
  }
  .row-products-wrapper > [class*="col-"]:nth-child(3n+1) { clear: left !important; }
}

/* Bigger tap targets for the - / + quantity buttons on product cards */
@media (max-width: 1024px) {
  .cw-final-v17-qty-btn {
    width: 28px !important;
    height: 28px !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }
}


/* ---------------------------------------------------------------------
   6. Blog listing
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .layout-blog .row { margin-left: -8px; margin-right: -8px; }
  .layout-blog .row > [class*="col-"] {
    width: 50% !important;
    clear: none !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .layout-blog .row > [class*="col-"]:nth-child(2n+1) { clear: left !important; }
  .post-grid-v2 .entry-title {
    font-size: 15px !important;
    line-height: 1.35 !important;
    -webkit-line-clamp: 3 !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .layout-blog .row > [class*="col-"] {
    width: 33.3333% !important;
    clear: none !important;
  }
  .layout-blog .row > [class*="col-"]:nth-child(3n+1) { clear: left !important; }
}


/* ---------------------------------------------------------------------
   7. Image galleries (Rentals, Liquidations, Shipping, Installation,
      Relocation, Testimonials, Portfolio ...)
      Phones showed one huge image per row, 55-86 rows deep.
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Only the 5-column photo galleries and the logo wall are changed;
     the small 3- and 4-column galleries (brand logos etc.) already fit. */
  .elementor-image-gallery .gallery.gallery-columns-5,
  .clientel .elementor-image-gallery .gallery {
    display: flex !important;
    flex-wrap: wrap;
    margin: 0 -4px !important;
  }
  .elementor-image-gallery .gallery.gallery-columns-5 .gallery-item,
  .clientel .elementor-image-gallery .gallery .gallery-item {
    width: 50% !important;
    max-width: 50% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 4px 8px !important;
  }
  .elementor-image-gallery .gallery.gallery-columns-5 .gallery-item img,
  .clientel .elementor-image-gallery .gallery .gallery-item img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin: 0 !important;
  }

  /* Rentals page: the six single photos above the gallery, two per row */
  .elementor-element-c460c68 {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px !important;
  }
  .elementor-element-c460c68 > .elementor-widget-image { width: 100%; margin: 0 !important; }
  .elementor-element-c460c68 > .elementor-widget-image img { width: 100%; height: auto; }

  /* Client logo wall (Portfolio) */
  .clientel .elementor-image-gallery .gallery .gallery-item {
    width: 33.3333% !important;
    max-width: 33.3333% !important;
  }
  .clientel .elementor-image-gallery .gallery .gallery-item img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 8px !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-image-gallery .gallery.gallery-columns-5 .gallery-item {
    width: 33.3333% !important;
    max-width: 33.3333% !important;
  }
  .elementor-image-gallery .gallery.gallery-columns-5 .gallery-item img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin: 0 !important;
  }
}


/* ---------------------------------------------------------------------
   8. Justified body text -> left aligned on phones
      (justify leaves wide gaps between words on a narrow screen)
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .elementor-element-09057db,
  .elementor-element-85f9f06,
  .elementor-element-69c9f6e,
  .elementor-element-9d31693,
  .elementor-element-8c0aaec,
  .elementor-element-5809719,
  .elementor-element-4a5e590,
  .elementor-element-2835bdf,
  .elementor-element-6d93062,
  .elementor-element-b9f9876,
  .elementor-element-c2ea189,
  .elementor-element-3469a45 { text-align: left !important; }
}


/* ---------------------------------------------------------------------
   9. Home page - "Product Categories" tiles
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .elementor-element-89a5da0 > .e-con .elementor-widget-image img,
  .elementor-element-36d0a79 > .e-con .elementor-widget-image img,
  .elementor-element-5d69a2b > .e-con .elementor-widget-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }
}
@media (max-width: 767px) {
  .elementor-element-89a5da0,
  .elementor-element-36d0a79,
  .elementor-element-5d69a2b {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .elementor-element-89a5da0 > .e-con,
  .elementor-element-36d0a79 > .e-con,
  .elementor-element-5d69a2b > .e-con {
    --width: 50%;
    width: 50% !important;
    padding: 6px !important;
    gap: 6px !important;
  }
  .elementor-element-89a5da0 > .e-con > .elementor-widget-heading,
  .elementor-element-36d0a79 > .e-con > .elementor-widget-heading,
  .elementor-element-5d69a2b > .e-con > .elementor-widget-heading {
    padding: 9px 4px !important;
  }
  .elementor-element-89a5da0 > .e-con > .elementor-widget-heading .elementor-heading-title,
  .elementor-element-36d0a79 > .e-con > .elementor-widget-heading .elementor-heading-title,
  .elementor-element-5d69a2b > .e-con > .elementor-widget-heading .elementor-heading-title {
    font-size: 12px !important;
    line-height: 1.2 !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  /* Six tiles were squeezed into one row; show three per row */
  .elementor-element-89a5da0,
  .elementor-element-36d0a79,
  .elementor-element-5d69a2b { flex-wrap: wrap !important; }
  .elementor-element-89a5da0 > .e-con,
  .elementor-element-36d0a79 > .e-con,
  .elementor-element-5d69a2b > .e-con {
    --width: 33.3333%;
    width: 33.3333% !important;
  }

  /* Home page - service icons: 8 in a row overlapped; use 4 x 2 */
  .elementor-element-4680ffc {
    grid-template-columns: repeat(4, 1fr) !important;
    grid-template-rows: auto !important;
    row-gap: 24px !important;
  }

  /* Home page - intro text touched both screen edges */
  .elementor-element-27bb50d > .elementor-widget-text-editor,
  .elementor-element-27bb50d > .elementor-widget-heading {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Home page - "New Furniture / Pre-owned Furniture" buttons were clipped */
  .widget-countdown .url-bottom .btn {
    font-size: 22px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}


/* ---------------------------------------------------------------------
   10. "Services We Offer" boxes - remove the fixed 550px height
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  .widget-features-box .item-inner-features {
    height: auto !important;
    margin-bottom: 0 !important;
  }
  .widget-features-box .row > .item { margin-bottom: 16px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .widget-features-box .row { display: flex; flex-wrap: wrap; }
  .widget-features-box .row > .item { display: flex; margin-bottom: 30px; }
  .widget-features-box .item-inner-features {
    width: 100%;
    height: auto !important;
    margin-bottom: 0 !important;
  }
}


/* ---------------------------------------------------------------------
   11. Contact page
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Info panel and form panel had no inner padding: text touched the edge */
  .elementor-element-98b3704,
  .elementor-element-6d29cce { padding: 18px 16px !important; }

  .contact-us .row { margin-left: 0 !important; margin-right: 0 !important; }
  .contact-us .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
  .contact-us .form-control { padding-left: 18px !important; padding-right: 18px !important; }

  .codedropz-upload-inner h3 { font-size: 20px !important; line-height: 1.3 !important; }

  /* Maps: use the full width */
  .elementor-element-2472df8 { padding-left: 15px !important; padding-right: 15px !important; }
  .elementor-element-4e64c6d { padding-left: 0 !important; padding-right: 0 !important; }
  .elementor-widget-shortcode iframe[src*="maps"] { width: 100% !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-98b3704,
  .elementor-element-6d29cce { padding: 20px !important; }

  .contact-us .row { margin-left: -8px !important; margin-right: -8px !important; }
  .contact-us .row > [class*="col-"] { padding-left: 8px !important; padding-right: 8px !important; }

  .codedropz-upload-inner h3 { font-size: 20px !important; line-height: 1.3 !important; }
}


/* ---------------------------------------------------------------------
   12. Footer
   --------------------------------------------------------------------- */
/* Hidden Contact Form 7 spinner used to sit outside the screen (all widths) */
.footer-subscribe-form .footer-submit-field p { position: relative; }
.footer-subscribe-form .wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: 10px;
  left: auto;
  margin: 0;
  transform: translateY(-50%);
}

@media (max-width: 767px) {
  /* Footer menus: two tidy columns instead of comma-separated wrapping text */
  #goal-footer .widget-nav-menu ul.menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
  }
  #goal-footer .widget-nav-menu ul.menu > li { display: block; }
  #goal-footer .widget-nav-menu ul.menu > li::before {
    content: none !important;
    display: none !important;
  }
  #goal-footer .widget-nav-menu ul.menu > li > a {
    display: block;
    padding: 6px 0;
  }

  /* 11px label was too small to read */
  #goal-footer p.elementor-heading-title { font-size: 12px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  /* Location titles had line-height: 0, so two-line titles printed on
     top of each other ("Corporate Headquarters") */
  #goal-footer .elementor-icon-box-title {
    line-height: 1.3 !important;
    margin-bottom: 8px !important;
  }
}


/* ---------------------------------------------------------------------
   13. Single product page
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* One tall photo made every slide tall, leaving a blank gap under
     landscape photos. Give all slides the same frame. */
  .details-product .goal-woocommerce-product-gallery .woocommerce-product-gallery__image {
    aspect-ratio: 4 / 3;
    background: #f5f5f5;
  }
  .details-product .goal-woocommerce-product-gallery .woocommerce-product-gallery__image > a {
    display: block;
    height: 100%;
  }
  .details-product .goal-woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg) {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
  }
}


/* ---------------------------------------------------------------------
   14. Small fixes
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* 404 page used 100vw, which is wider than the page when a scrollbar shows */
  .page-404 { width: 100% !important; }

  /* Review widget tooltips could poke outside the card */
  .ti-widget .ti-reviews-container { overflow-x: hidden; }
}
@media (max-width: 767px) {
  .yrc-video-date,
  .post-grid-v2 .blog-time .date { font-size: 12px !important; }
}


/* ---------------------------------------------------------------------
   15. Desktop header on 992-1199px screens (tablet held sideways,
       small laptops). The menu wrapped onto a second row and the phone
       number broke in two, making the header twice as tall.
   --------------------------------------------------------------------- */
@media (min-width: 992px) and (max-width: 1199px) {
  #goal-header .megamenu > li { padding: 24px 5px !important; }
  #goal-header .megamenu > li > a { font-size: 12px !important; }
  #goal-header .elementor-element-225a142,
  #goal-header .elementor-element-225a142 p {
    font-size: 13px !important;
    white-space: nowrap;
  }
}


/* ---------------------------------------------------------------------
   16. Home page - fixes found on the retest with this file installed
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* The third tile group (Outdoor Furniture ... Tables) has a 20px gap
     that the other two groups do not, so its tiles no longer fitted
     side by side: one per row on phones, two per row on tablets. */
  .elementor-element-89a5da0,
  .elementor-element-36d0a79,
  .elementor-element-5d69a2b { gap: 0 !important; }

  /* "Shop Clearance" carousel ran edge to edge; inset it */
  .elementor-element-6dc4168 {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}
@media (max-width: 991px) {
  /* Room under the copyright line so the language switcher does not
     sit on top of it at the very bottom of the page */
  .elementor-element-74871a2 { padding-bottom: 44px !important; }
}
@media (max-width: 767px) {
  /* New / Used buttons were touching (a -10px margin on the first one) */
  .elementor-element-89a5da0 > .e-con > .elementor-widget-heading,
  .elementor-element-36d0a79 > .e-con > .elementor-widget-heading,
  .elementor-element-5d69a2b > .e-con > .elementor-widget-heading { margin-bottom: 0 !important; }

  /* "Shop Clearance" shows two cards per view on phones: use the same
     compact card text as the shop grid so both cards line up */
  .elementor-element-6dc4168 .product-block .grid-inner { padding: 8px !important; }
  .elementor-element-6dc4168 .product-block .name {
    font-size: 13px;
    line-height: 1.3;
    min-height: 2.6em;
  }
  .elementor-element-6dc4168 .product-block .name a {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .elementor-element-6dc4168 .cw-final-v17-details,
  .elementor-element-6dc4168 .cw-final-v17-city,
  .elementor-element-6dc4168 .cw-final-v17-item-qty-line,
  .elementor-element-6dc4168 .cw-final-v17-price {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }
}