/** Shopify CDN: Minification failed

Line 12:33 Unexpected "-"
Line 19:39 Expected ":"
Line 20:40 Expected ":"
Line 22:19 Expected identifier but found whitespace
Line 22:20 Unexpected "80px"
Line 22:246 Unterminated string token
Line 38:235 Unterminated string token

**/
Fix Theme Code to Match Resource - Manus
Reading the CSS file now to find the white space source.
Found it! Lines 52–57 in theme.css are the exact cause:
CSS
.main-content {
  width: 100%;
  max-width: 500px;
  min-height: calc(100vh - 200px);  ← forces a huge minimum height
  padding-bottom: 80px;              ← adds 80px white space above footer
}
The padding-bottom: 80px was added as "space for bottom nav" — but it creates a visible white gap above the footer on every page. The min-height: calc(100vh - 200px) also forces the content area to be very tall even when there's little content.
Fixing both now.
I discovered the white space caused by `padding-bottom` and `min-height` on `.main-content` in `theme.css`. I will remove these styles to eliminate the gap above the footer.

Based on the CSS review, I removed the padding-bottom and adjusted min-height on `.main-content` to eliminate the white space above the footer. Next, I will deliver the edited theme.css.

Here is the fixed theme.css. Only 2 lines changed in the .main-content rule (lines 55–56):
Property
Before
After
min-height
calc(100vh - 200px)
0
padding-bottom
80px
0
The padding-bottom: 80px comment said "Space for bottom nav" — but since the bottom nav is position: fixed, it doesn't need padding in the content area. That 80px was creating the white gap above the footer on every page of the site.
Upload this file to Assets → theme.css in your Shopify theme editor and the white space will be gone on all pages.
theme.css
Code · 5.94 KB
View all files in this task
Task completed
How was this result?
Suggested follow-ups




/* WithMuu Theme - Main CSS */

/* Reset & Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ============================================================
   KTOWN4U-STYLE: Centered mobile column on desktop
   - html/body = grey background (sidebars)
   - #page-outer = full-width flex container, centres the column
   - #page-column = the white 500px mobile column
   - All position:fixed elements are also constrained to 500px
     via  left:50% + translateX(-50%) + max-width:500px
   ============================================================ */
html {
  background: #f0f0f0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  background: #f0f0f0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Outer grey wrapper - full viewport width */
#page-outer {
  display: flex;
  justify-content: center;
  min-height: 100vh;
  background: #f0f0f0;
  width: 100%;
}

/* Centered white mobile column */
#page-column {
  width: 100%;
  max-width: 500px;
  background: #ffffff;
  min-height: 100vh;
  position: relative;
  /* overflow-x intentionally not set - allows product cards to render fully */
}

/* Mobile-First Layout */
.main-content {
  width: 100%;
  max-width: 500px;
  min-height: 0;
  padding-bottom: 0;
}

/* ============================================================
   FIXED ELEMENTS: constrained to the 500px column
   All position:fixed UI elements use left:50% + translateX(-50%)
   so they stay within the white column on wide screens.
   ============================================================ */

/* Header: position:fixed, left/width set by JS to match #page-column bounds */
/* The header element is moved to document.body by JS so fixed works correctly */

/* Bottom nav: constrain to column */
.mobile-bottom-nav {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  max-width: 500px !important;
  width: 100% !important;
}

/* Floating menu button: position is controlled entirely by JS (positionMenuButton)
   which reads the header's actual getBoundingClientRect() at runtime.
   Do NOT set right/top here as it would conflict with the JS. */

/* Menu panel: let mobile-navigation.liquid handle this - no override here */

/* Menu overlay: full screen is fine */

/* Search overlay: constrain to column */
#mobile-search-overlay {
  max-width: 460px !important;
}

/* Recently viewed sheet: constrain to column */
#rv-sheet {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) translateY(100%) !important;
  max-width: 500px !important;
  width: 100% !important;
}

#rv-sheet.rv-open {
  transform: translateX(-50%) translateY(0) !important;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 15px;
}

h1 { font-size: 32px; }
h2 { font-size: 28px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }

p {
  margin-bottom: 15px;
}

a {
  color: #6B5FFF;
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: #5a4fd6;
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 12px 30px;
  background: #6B5FFF;
  color: white;
  border: none;
  border-radius: 25px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}

.btn:hover {
  background: #5a4fd6;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(107, 95, 255, 0.3);
}

.btn-secondary {
  background: white;
  color: #6B5FFF;
  border: 2px solid #6B5FFF;
}

.btn-secondary:hover {
  background: #6B5FFF;
  color: white;
}

/* Cards */
.card {
  background: white;
  border-radius: 15px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: all 0.3s ease;
}

.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

/* Utility Classes */
.text-center { text-align: center; }

.mt-1 { margin-top: 10px; }
.mt-2 { margin-top: 20px; }
.mt-3 { margin-top: 30px; }
.mt-4 { margin-top: 40px; }

.mb-1 { margin-bottom: 10px; }
.mb-2 { margin-bottom: 20px; }
.mb-3 { margin-bottom: 30px; }
.mb-4 { margin-bottom: 40px; }

.p-1 { padding: 10px; }
.p-2 { padding: 20px; }
.p-3 { padding: 30px; }
.p-4 { padding: 40px; }

/* Responsive Images */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Loading Animation */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.loading {
  border: 3px solid #f3f3f3;
  border-top: 3px solid #6B5FFF;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
  margin: 20px auto;
}

/* Fade In Animation */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fadeIn 0.6s ease-out;
}

/* Container */
.container {
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
  padding: 0 15px;
}

/* Grid */
.grid {
  display: grid;
  gap: 20px;
}

.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 480px) {
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
}

/* Responsive */
@media (max-width: 600px) {
  h1 { font-size: 28px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }
}

/* Print Styles */
@media print {
  .withmuu-menu-btn,
  .withmuu-bottom-nav,
  .withmuu-menu-panel {
    display: none !important;
  }
}

/* ── One Theme: Force mobile sections to show on all screen sizes ── */
/* These override the inline @media (min-width: 769px) { display: none !important } rules */
/* Target only the outer wrapper divs, NOT inner flex containers like the slider track */
[id^="mbs-"]:not([id*="track"]):not([id*="dots"]):not([id*="ctrl"]):not([id*="num"]):not([id*="btn"]):not([id*="bar"]) {
  display: block !important;
}
[id^="mcb-wrapper"] {
  display: block !important;
}
[id^="mcb-sentinel"] {
  display: block !important;
}
