/* Firm Pillow Styles - cloned from pregnancy with firm-specific prefix */

.hero-firm {
    background: linear-gradient(135deg, #fce7f3 0%, #f3e8ff 100%);
    padding: 100px 0 70px;
    margin-top: 0;
    position: relative;
}

.hero-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hero-content { width: 100%; text-align: center; display: flex; flex-direction: column; align-items: center; }
.hero-content .cta-button { margin-left: auto; margin-right: auto; }
.hero-title { font-family: 'Montserrat', sans-serif; font-size: 3.2rem; font-weight: 700; color: #1e40af; margin-bottom: 1.5rem; line-height: 1.2; letter-spacing: -0.02em; }
.hero-subtitle { font-family: 'Open Sans', sans-serif; font-size: 1.3rem; font-weight: 400; color: #475569; margin-bottom: 2.5rem; max-width: 850px; line-height: 1.6; }

/* Breadcrumb */
.breadcrumb-nav { background-color: #f8fafc; padding: 12px 0; border-bottom: 1px solid #e2e8f0; }
.breadcrumb-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100%; box-sizing: border-box; }
.breadcrumb { display: flex; flex-wrap: nowrap; align-items: center; list-style: none; padding: 0; margin: 0; white-space: nowrap; overflow-x: auto; min-width: 0; }
.breadcrumb li { position: relative; margin: 0; font-size: 0.875rem; color: #64748b; flex-shrink: 0; white-space: nowrap; }
.breadcrumb li+li:before { content: "/"; color: #b3b3b3; padding: 0 8px; }
.breadcrumb li.active { color: #0c4a6e; font-weight: 600; }
.breadcrumb a { color: #1e40af; text-decoration: none; transition: color 0.3s ease; }
.breadcrumb a:hover { color: #6ec1e4; text-decoration: underline; }

/* Sections */
.section { padding: 80px 0; }
.section-alt { background-color: #f8fafc; padding: 80px 0; }
.content-section { padding: 80px 0; background-color: #ffffff; }
.section-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.section-header { text-align: center; margin-bottom: 50px; }
.section-header h2 { font-family: 'Montserrat', sans-serif; font-size: 2.5rem; font-weight: 700; color: #1e40af; margin-bottom: 1.2rem; line-height: 1.3; letter-spacing: -0.01em; }
.section-header p { font-family: 'Open Sans', sans-serif; font-size: 1.2rem; font-weight: 400; color: #64748b; max-width: 750px; margin: 0 auto; line-height: 1.6; }
.new-ux-modules { padding: 40px 0; background: #fff; }
.new-ux-modules > section { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.quick-picks-title, .toc-title { text-align: center; font-family: 'Montserrat', sans-serif; font-weight: 700; color: #1e40af; }
.quick-picks-title { font-size: 1.8rem; margin: 0 0 10px; }
.toc-title { font-size: 1.6rem; margin: 40px 0 10px; }
.toc-list { list-style: none; padding: 0; margin: 0 auto; max-width: 900px; justify-content: center; }
.toc-list li { margin: 6px 0; }
.toc-list a { color: #1e40af; text-decoration: none; }
.toc-list a:hover { color: #6ec1e4; text-decoration: underline; }

@media (max-width: 768px) {
  .toc-list { display: grid; grid-template-columns: 1fr; }
}

/* Quick Picks & TOC */
.quick-picks-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 30px; }
.quick-pick-card { background: #fff; border-radius: 12px; padding: 30px 20px; text-align: center; box-shadow: 0 8px 16px rgba(0,0,0,0.1); transition: transform 0.3s, box-shadow 0.3s; }
.quick-pick-card:hover { transform: translateY(-5px); box-shadow: 0 12px 24px rgba(0,0,0,0.15); }
.toc-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.toc-list a { color: #1e40af; text-decoration: none; }
.toc-list a:hover { text-decoration: underline; color: #6ec1e4; }

/* Challenges */
.challenges-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap: 30px; margin-top: 40px; max-width: 900px; margin-left: auto; margin-right: auto; }
.challenge-card { background:#fff; border-radius:12px; padding:30px 20px; text-align:center; box-shadow:0 8px 16px rgba(0,0,0,0.1); transition: transform 0.3s, box-shadow 0.3s; }
.challenge-card:hover { transform: translateY(-8px); box-shadow: 0 12px 24px rgba(0,0,0,0.15); }
.challenge-icon { font-size:3rem; margin-bottom:20px; }

/* Types */
.types-grid { display:grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap:32px; margin-top:32px; max-width:900px; margin-left:auto; margin-right:auto; }
.type-card { background:#fff; border-radius:12px; padding:24px; text-align:center; border:1px solid #e5e7eb; box-shadow:0 2px 8px rgba(30,64,175,0.04); transition: transform 0.3s, box-shadow 0.3s; }
.type-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(30,64,175,0.1); }
.type-icon { font-size:2.5rem; margin-bottom:15px; }
.type-features { list-style:none; padding:0; text-align:left; }
.type-features li { position:relative; padding-left:25px; margin-bottom:8px; color:#334155; font-size:0.95rem; line-height:1.6; }
.type-features li:before { content:"✓"; position:absolute; left:0; top:0; color:#1e40af; font-weight:bold; font-size:1.1em; }

/* Product Cards */
.products-grid-rows { display:flex; flex-direction:column; gap:25px; max-width:1200px; margin:0 auto; }
.product-row { display:flex; gap:25px; width:100%; }
.product-row:nth-child(1) .pillow-card, .product-row:nth-child(2) .pillow-card { flex:1; width:calc(33.333% - 17px); }
.product-row:nth-child(3) { justify-content:center; }
.product-row:nth-child(3) .pillow-card { flex:0 0 calc(33.333% - 17px); max-width:calc(33.333% - 17px); }

@media (max-width: 1024px) {
  .product-row { flex-wrap: wrap; }
  .product-row:nth-child(1) .pillow-card, .product-row:nth-child(2) .pillow-card, .product-row:nth-child(3) .pillow-card { flex:0 0 calc(50% - 12.5px); max-width:calc(50% - 12.5px); }
}
@media (max-width: 768px) {
  .product-row { flex-direction: column; }
  .hero-title { font-size: 2.2rem; }
  .section { padding: 50px 0; }
  .pillow-card { width: 100%; max-width: 100%; }
}

.pillow-card { background:#fff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.08); overflow:hidden; transition: transform 0.3s, box-shadow 0.3s; display:flex; flex-direction:column; height:100%; width:100%; border:1px solid #e5e7eb; position:relative; }
.pillow-card:hover { transform: translateY(-5px); box-shadow: 0 12px 24px rgba(0,0,0,0.15); }
.card-badge { position:absolute; top:15px; left:15px; background:#1e40af; color:#fff; padding:6px 12px; border-radius:20px; font-size:0.9rem; font-weight:700; z-index:10; }
.pillow-image { height:200px; width:100%; background:#f8fafc; overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center; padding:20px; }
.pillow-image img { max-width:100%; max-height:100%; object-fit:contain; transition: transform 0.5s ease; }
.pillow-card:hover .pillow-image img { transform: scale(1.05); }
.pillow-info { padding: 1.5rem; display:flex; flex-direction:column; gap:10px; }
.pillow-info h3 { margin: 0 0 6px; font-size: 1.1rem; color: #1e40af; }
.pillow-rating { display:flex; align-items:center; gap:10px; color:#475569; }
.pillow-description p { color:#64748b; line-height:1.6; }
.pillow-features ul { list-style:none; padding:0; margin:0; }
.pillow-features li { position:relative; padding-left:22px; margin-bottom:6px; color:#334155; }
.pillow-features li:before { content:"✓"; position:absolute; left:0; top:0; color:#1e40af; font-weight:700; }
.pillow-actions { display:flex; gap:12px; margin-top:10px; }
.pillow-button { background:#1e40af; color:#fff; padding:10px 16px; border-radius:8px; text-decoration:none; font-weight:600; }
.pillow-button:hover { background:#0c4a6e; }

/* Comparison Table */
.comparison-section {}
.comparison-table-wrapper { overflow-x:auto; background:#fff; border-radius:12px; box-shadow:0 8px 16px rgba(0,0,0,0.1); }
.table-scroll-hint { text-align:center; color:#64748b; font-size:0.9rem; margin:10px 0; }
.comparison-table { width:100%; border-collapse:collapse; background:#fff; }
.comparison-table th { background:#1e40af; color:#fff; padding:20px 15px; font-weight:600; text-align:left; }
.comparison-table td { padding:14px 12px; border-bottom:1px solid #e5e7eb; color:#334155; }

/* FAQ & Conclusion */
.faq-section { padding:80px 0; background:#fff; }
.faq-container { max-width: 900px; margin: 0 auto; padding: 0 20px; }
.faq-accordion .faq-item { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:16px 18px; margin-bottom:12px; }
.faq-accordion .faq-item.active { box-shadow: 0 0 0 2px rgba(30,64,175,0.15); }
.conclusion-section { padding: 60px 0 90px; background: #f8fafc; }
.conclusion-container { max-width:900px; margin:0 auto; padding:0 20px; text-align:center; }

/* Floating nav */
.floating-price-nav { position: fixed; right: 16px; bottom: 20px; display: none; align-items: center; gap: 8px; background: #1e40af; color: #fff; padding: 10px 14px; border-radius: 24px; text-decoration: none; box-shadow: 0 6px 16px rgba(0,0,0,0.2); }
.floating-price-nav svg { width: 18px; height: 18px; }

/* Detailed Reviews - image sizing & layout */
.review-card .review-content { display: flex; gap: 20px; flex-wrap: wrap; align-items: flex-start; }
.review-card .review-image { flex: 0 0 300px; max-width: 300px; width: 100%; margin: 0; }
.review-card .review-image img { display: block; width: 100%; height: auto; max-width: 100%; max-height: 220px; object-fit: contain; }
.review-card .review-details { flex: 1 1 0; min-width: 280px; }
.review-cta { flex-basis: 100%; display: flex; justify-content: center; align-items: center; margin-top: 16px; }
.review-cta .cta-button { display: inline-flex; align-items: center; justify-content: center; }
.review-features h4, .specifications h4 { font-family: 'Montserrat', sans-serif; color: #1e40af; font-size: 1.2rem; font-weight: 600; margin-bottom: 15px; margin-top: 0; }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; margin-bottom: 20px; }
.feature-item { display: flex; align-items: center; gap: 10px; font-size: 0.95rem; color: #374151; }
.feature-icon { color: #10b981; font-weight: bold; font-size: 1.1rem; }
.feature-text { font-family: 'Open Sans', sans-serif; line-height: 1.5; }

@media (max-width: 768px) {
  .review-card .review-content { flex-direction: column; }
  .review-card .review-image { max-width: 100%; }
}

/* Detailed Reviews - blue header bar (match pregnancy page) */
.review-card .review-header {
  background: linear-gradient(135deg, #1e40af, #0c4a6e);
  padding: 14px 16px;
  border-radius: 12px;
  color: #fff;
}
.review-card .review-header .review-rank { color: #3b82f6 !important; }
.review-card .review-header .review-title h3 { color: #fff !important; }
.review-card .review-header .review-subtitle { color: #e0e7ef !important; }
.review-card .review-header .review-rating .rating-text { color: #fff !important; }

@media (min-width: 1024px) {
  .review-cta .cta-button { transform: translateX(-120px); }
}
@media (max-width: 1023px) {
  .review-cta .cta-button { transform: none; }
}


