/* Lower pages: one coherent reading axis. 2026-10-10 */
.s-modern-lower #main{
  background:#fafaf8;
}

/* Every lower-page section uses the same parent column. */
.s-modern-lower #main .page-header-inner,
.s-modern-lower #main .section > .container,
.s-modern-lower #main .reading-cta-inner{
  width:min(800px, calc(100% - 40px)) !important;
  max-width:800px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
.s-modern-lower #main .page-header{
  padding:56px 0 48px !important;
}
.s-modern-lower #main .section{
  padding:68px 0 !important;
}

/* Titles and copy start from the same left edge. */
.s-modern-lower #main .page-header-inner,
.s-modern-lower #main .section-header,
.s-modern-lower #main .article-body,
.s-modern-lower #main .article-card,
.s-modern-lower #main .step-body,
.s-modern-lower #main .faq-list,
.s-modern-lower #main .blog-grid,
.s-modern-lower #main .symptom-card-grid,
.s-modern-lower #main .subpage-grid,
.s-modern-lower #main .points-grid,
.s-modern-lower #main .card-grid,
.s-modern-lower #main .price-grid,
.s-modern-lower #main .s-route-block,
.s-modern-lower #main .s-jr-video-guide{
  text-align:left !important;
}
.s-modern-lower #main .section-header,
.s-modern-lower #main .article-body,
.s-modern-lower #main .article-card,
.s-modern-lower #main .step-list,
.s-modern-lower #main .faq-list,
.s-modern-lower #main .blog-grid,
.s-modern-lower #main .symptom-card-grid,
.s-modern-lower #main .subpage-grid,
.s-modern-lower #main .points-grid,
.s-modern-lower #main .card-grid,
.s-modern-lower #main .price-grid,
.s-modern-lower #main .s-route-block,
.s-modern-lower #main .s-jr-video-guide{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}
.s-modern-lower #main .section-header{
  margin-bottom:36px !important;
}
.s-modern-lower #main .page-title,
.s-modern-lower #main .ja-title,
.s-modern-lower #main .article-body h2,
.s-modern-lower #main .article-body h3,
.s-modern-lower #main .step-title,
.s-modern-lower #main .point-title,
.s-modern-lower #main .card-title{
  text-align:left !important;
}
.s-modern-lower #main .page-sub{
  max-width:720px !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Cards may have inner padding, but their outer edges stay on the parent axis. */
.s-modern-lower #main .article-card{
  padding:32px !important;
}
.s-modern-lower #main .article-card > :first-child{margin-top:0 !important;}
.s-modern-lower #main .article-card > :last-child{margin-bottom:0 !important;}

/* Bottom consultation is a full-width band with the same internal reading column. */
.s-modern-lower #main .reading-cta{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:64px 0 !important;
  border-top:1px solid #d4d9d3 !important;
  background:#fff !important;
  text-align:left !important;
}
.s-modern-lower #main .reading-cta-inner{
  text-align:left !important;
}
.s-modern-lower #main .reading-cta h2,
.s-modern-lower #main .reading-cta p{
  max-width:720px !important;
  margin-left:0 !important;
  margin-right:0 !important;
  text-align:left !important;
}
.s-modern-lower #main .reading-cta a{
  margin:22px 0 0 !important;
}

/* Price page: full-width card inside the common column; text inside the price block stays centered. */
.s-modern-lower.s-price-page #main .price-grid,
.s-modern-lower.s-price-page #main .price-card{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.s-modern-lower.s-price-page #main .price-header,
.s-modern-lower.s-price-page #main .price-body,
.s-modern-lower.s-price-page #main .price-note{
  text-align:center !important;
}
.s-modern-lower.s-price-page #main .price-card + p{
  max-width:720px !important;
  margin:18px 0 0 !important;
  text-align:left !important;
}

/* First-visit page: one stable number/content grid. */
.s-modern-lower.s-first-visit #main .step-list{
  gap:0 !important;
}
.s-modern-lower.s-first-visit #main .step-item{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:30px 0 !important;
  display:grid !important;
  grid-template-columns:52px minmax(0,1fr) !important;
  gap:24px !important;
  align-items:start !important;
  border-top:1px solid #d4d9d3 !important;
}
.s-modern-lower.s-first-visit #main .step-item:last-child{
  border-bottom:1px solid #d4d9d3 !important;
}
.s-modern-lower.s-first-visit #main .step-num{
  margin:0 !important;
  text-align:left !important;
}
.s-modern-lower.s-first-visit #main .step-body{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.s-modern-lower.s-first-visit #main .step-title{
  margin:0 0 10px !important;
}
.s-modern-lower.s-first-visit #main .step-desc{
  text-align:left !important;
}

/* Access page: map, shop information and directions all belong to the same column. */
.s-modern-lower.s-access-page #main .s-access-overview{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:28px !important;
  align-items:start !important;
}
.s-modern-lower.s-access-page #main .s-access-visual,
.s-modern-lower.s-access-page #main .s-access-info{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.s-modern-lower.s-access-page #main .s-access-visual .map-box{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.s-modern-lower.s-access-page #main .s-access-visual iframe{
  display:block !important;
  width:100% !important;
  height:320px !important;
}
.s-modern-lower.s-access-page #main .s-access-info{
  padding:28px 32px !important;
}
.s-modern-lower.s-access-page #main .info-row{
  display:grid !important;
  grid-template-columns:110px minmax(0,1fr) !important;
  gap:20px !important;
  align-items:start !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .info-key{
  min-width:0 !important;
}
.s-modern-lower.s-access-page #main .s-access-building-photo{
  display:block !important;
  width:100% !important;
  max-width:520px !important;
  margin:42px 0 0 !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-access-building-photo img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
}
.s-modern-lower.s-access-page #main .s-access-building-note{
  max-width:620px !important;
  margin:12px 0 0 !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-jr-video-guide{
  margin-top:48px !important;
  padding-top:34px !important;
  border-top:1px solid #d4d9d3 !important;
}
.s-modern-lower.s-access-page #main .s-jr-video-guide h3,
.s-modern-lower.s-access-page #main .s-route-block > h3{
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-route-video-button{
  width:auto !important;
  margin:18px 0 0 !important;
}
.s-modern-lower.s-access-page #main .s-route-block{
  margin-top:56px !important;
}
.s-modern-lower.s-access-page #main .s-route-step{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:28px 0 !important;
  display:grid !important;
  grid-template-columns:230px minmax(0,1fr) !important;
  gap:28px !important;
  align-items:start !important;
  border-top:1px solid #d4d9d3 !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-route-step:last-child{
  border-bottom:1px solid #d4d9d3 !important;
}
.s-modern-lower.s-access-page #main .s-route-step > p{
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-route-step .s-photo-open{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  text-align:left !important;
}
.s-modern-lower.s-access-page #main .s-route-step .s-photo-open img{
  display:block !important;
  width:auto !important;
  max-width:min(100%, 380px) !important;
  height:auto !important;
  max-height:360px !important;
  margin:0 0 8px !important;
  object-fit:contain !important;
}
.s-modern-lower.s-access-page #main .s-route-step .s-photo-open span{
  text-align:left !important;
}

/* Case / explanation pages use the same text column, with media allowed to be narrower. */
.s-modern-lower.s-case-page #main .article-body,
.s-modern-lower #main .article-body{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.s-modern-lower.s-case-page #main .article-body > img,
.s-modern-lower.s-case-page #main .article-body > .case-hero-image{
  margin-left:0 !important;
  margin-right:0 !important;
}

@media (max-width:640px){
  .s-modern-lower #main .page-header-inner,
  .s-modern-lower #main .section > .container,
  .s-modern-lower #main .reading-cta-inner{
    width:calc(100% - 40px) !important;
  }
  .s-modern-lower #main .page-header{
    padding:40px 0 34px !important;
  }
  .s-modern-lower #main .section{
    padding:48px 0 !important;
  }
  .s-modern-lower #main .article-card{
    padding:22px 20px !important;
  }
  .s-modern-lower #main .reading-cta{
    padding:48px 0 !important;
  }
  .s-modern-lower.s-first-visit #main .step-item{
    grid-template-columns:36px minmax(0,1fr) !important;
    gap:14px !important;
    padding:24px 0 !important;
  }
  .s-modern-lower.s-access-page #main .s-access-info{
    padding:22px 20px !important;
  }
  .s-modern-lower.s-access-page #main .info-row{
    grid-template-columns:1fr !important;
    gap:4px !important;
  }
  .s-modern-lower.s-access-page #main .s-access-building-photo{
    max-width:100% !important;
  }
  .s-modern-lower.s-access-page #main .s-route-step{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .s-modern-lower.s-access-page #main .s-route-step .s-photo-open img{
    max-width:100% !important;
  }
  .s-modern-lower #main .points-grid,
  .s-modern-lower #main .card-grid,
  .s-modern-lower #main .blog-grid,
  .s-modern-lower #main .symptom-card-grid{
    grid-template-columns:1fr !important;
  }
}

/* Keep the price summary readable after the site's white-theme overrides. */
.s-modern-lower.s-price-page #main .price-card{
  border:1px solid #d4d9d3 !important;
  background:#fff !important;
}
.s-modern-lower.s-price-page #main .price-header{
  background:#17201f !important;
  color:#fff !important;
  padding:28px !important;
}
.s-modern-lower.s-price-page #main .price-name,
.s-modern-lower.s-price-page #main .price-amount{
  color:#fff !important;
}


/* v40: price summary — one centered message, no redundant service label. */
.s-modern-lower.s-price-page #main .price-header{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  padding:28px 24px!important;
}
.s-modern-lower.s-price-page #main .price-summary{
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:12px!important;
  margin:0 auto!important;
}
.s-modern-lower.s-price-page #main .price-duration{
  display:inline-block!important;
  background:#fff!important;
  color:#17201f!important;
  border-radius:20px!important;
  padding:2px 10px!important;
  font-size:.8rem!important;
  font-weight:700!important;
  line-height:1.6!important;
}
.s-modern-lower.s-price-page #main .price-amount{
  margin:0!important;
}
