/* Final visual unification layer — 2026-10-05
   Keeps the approved white/SOWAKA direction consistent across Japanese pages. */

:root{
  --u-ink:#20251f;
  --u-muted:#6b746c;
  --u-line:rgba(32,37,31,.14);
  --u-soft:#f5f7f4;
  --u-paper:#ffffff;
}

/* ---------- TOP / LP price section ---------- */
@media (min-width:851px){
  .s-sowaka #price .s-reading-stack>div{
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
  }
  .s-sowaka #price .s-section-head{
    margin-bottom:32px;
  }
  .s-sowaka #price .s-price,
  .s-sowaka #price .s-reading-stack>div>p,
  .s-sowaka #price .s-reading-stack>div>.s-text-link{
    width:calc(100% - 220px);
    max-width:700px;
    margin-left:220px;
    margin-right:0;
  }
  .s-sowaka #price .s-price{margin-top:0;margin-bottom:28px}
  .s-sowaka #price .s-reading-stack>div>.s-text-link{display:inline-block}
}
@media (max-width:850px){
  .s-sowaka #price .s-price,
  .s-sowaka #price .s-reading-stack>div>p,
  .s-sowaka #price .s-reading-stack>div>.s-text-link{
    width:auto;
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
}

/* ---------- Japanese lower pages ---------- */
body:not(.s-sowaka){
  background:var(--u-paper)!important;
  color:var(--u-ink)!important;
}
body:not(.s-sowaka) main{background:var(--u-paper)}

body:not(.s-sowaka) .page-header{
  background:var(--u-soft)!important;
  border:0!important;
  padding-top:88px!important;
}
body:not(.s-sowaka) .page-header-inner{
  width:min(920px,calc(100% - 64px));
  max-width:920px!important;
  margin:0 auto;
  padding:72px 0 68px!important;
  text-align:left!important;
}
body:not(.s-sowaka) .page-label{
  display:block;
  font-family:'Noto Sans JP',sans-serif!important;
  font-style:normal!important;
  font-size:11px!important;
  font-weight:400!important;
  letter-spacing:.16em!important;
  color:var(--u-muted)!important;
  margin:0 0 18px!important;
}
body:not(.s-sowaka) .page-title{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(34px,3.4vw,48px)!important;
  font-weight:400!important;
  line-height:1.55!important;
  letter-spacing:.04em!important;
  color:var(--u-ink)!important;
  margin:0!important;
}
body:not(.s-sowaka) .page-sub{
  max-width:720px!important;
  margin:24px 0 0!important;
  color:var(--u-muted)!important;
  font-size:15px!important;
  line-height:2!important;
}

body:not(.s-sowaka) .section{
  background:var(--u-paper)!important;
  padding:88px 0!important;
  border:0!important;
}
body:not(.s-sowaka) .section.section-alt{background:var(--u-soft)!important}
body:not(.s-sowaka) .container{
  width:min(920px,calc(100% - 64px))!important;
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

body:not(.s-sowaka) .section-header{
  max-width:720px!important;
  margin:0 0 46px!important;
  padding:0!important;
  text-align:left!important;
}
body:not(.s-sowaka) .section-header::after{display:none!important}
body:not(.s-sowaka) .section-header .en-title,
body:not(.s-sowaka) .section-en{
  display:block!important;
  font-family:'Noto Sans JP',sans-serif!important;
  font-style:normal!important;
  font-size:11px!important;
  letter-spacing:.16em!important;
  color:var(--u-muted)!important;
  margin:0 0 14px!important;
}
body:not(.s-sowaka) .section-header .ja-title,
body:not(.s-sowaka) .section-title{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(28px,2.7vw,38px)!important;
  font-weight:400!important;
  line-height:1.65!important;
  letter-spacing:.035em!important;
  color:var(--u-ink)!important;
  margin:0!important;
  text-align:left!important;
}

/* Remove the old “card UI” feeling; keep content structure intact. */
body:not(.s-sowaka) .article-card,
body:not(.s-sowaka) .price-card,
body:not(.s-sowaka) .point-card,
body:not(.s-sowaka) .appeal-card,
body:not(.s-sowaka) .faq-item,
body:not(.s-sowaka) .symptom-card,
body:not(.s-sowaka) .blog-card,
body:not(.s-sowaka) .step-card,
body:not(.s-sowaka) .flow-card{
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  border-color:var(--u-line)!important;
}
body:not(.s-sowaka) .article-card{
  border-top:1px solid var(--u-line)!important;
  border-bottom:1px solid var(--u-line)!important;
  padding:36px 0!important;
}
body:not(.s-sowaka) .price-card{
  border:0!important;
  border-top:1px solid var(--u-line)!important;
  border-bottom:1px solid var(--u-line)!important;
}
body:not(.s-sowaka) .price-header,
body:not(.s-sowaka) .price-body{background:transparent!important}
body:not(.s-sowaka) .price-note{border-radius:0!important;box-shadow:none!important}

body:not(.s-sowaka) .points-grid,
body:not(.s-sowaka) .blog-grid,
body:not(.s-sowaka) .symptom-grid{gap:28px!important}
body:not(.s-sowaka) .point-card{
  border-top:1px solid var(--u-line)!important;
  padding:24px 0!important;
}
body:not(.s-sowaka) .point-icon{display:none!important}

body:not(.s-sowaka) .map-box{
  border-radius:0!important;
  box-shadow:none!important;
  border:1px solid var(--u-line)!important;
  overflow:hidden;
}
body:not(.s-sowaka) .map-box iframe{display:block;width:100%;height:100%;border:0}
body:not(.s-sowaka) img{border-radius:0!important}

body:not(.s-sowaka) .reading-cta{
  width:min(920px,calc(100% - 64px));
  max-width:920px!important;
  margin:0 auto 88px!important;
  padding:48px!important;
  background:var(--u-soft)!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body:not(.s-sowaka) .reading-cta h2{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(24px,2.3vw,32px)!important;
  font-weight:400!important;
  line-height:1.7!important;
  margin:0 0 16px!important;
}
body:not(.s-sowaka) .reading-cta p{color:var(--u-muted);line-height:2}

body:not(.s-sowaka) .breadcrumb{
  background:#fff!important;
  border:0!important;
  color:var(--u-muted)!important;
}
body:not(.s-sowaka) .article-body{max-width:760px!important;margin-left:auto!important;margin-right:auto!important}
body:not(.s-sowaka) .article-body h2{
  font-family:'Shippori Mincho',serif!important;
  font-weight:400!important;
  font-size:clamp(24px,2.3vw,32px)!important;
  line-height:1.75!important;
  text-align:left!important;
  border:0!important;
}
body:not(.s-sowaka) .article-body h3{
  font-family:'Shippori Mincho',serif!important;
  font-weight:400!important;
}
body:not(.s-sowaka) .article-highlight{
  background:var(--u-soft)!important;
  border-left:1px solid var(--u-ink)!important;
  border-radius:0!important;
}

/* Access: move away from a centered “old card” presentation. */
body.s-access-page .map-box{max-width:760px!important;margin-left:0!important;margin-right:0!important}
body.s-access-page .s-photo-open{display:block;max-width:420px;margin:22px 0 42px!important;text-align:left!important}
body.s-access-page .s-photo-open img{margin:12px 0!important;max-width:100%!important}
body.s-access-page .s-photo-open span{color:var(--u-muted);font-size:12px}
body.s-access-page .info-row{border-color:var(--u-line)!important}
body.s-access-page .s-route-step{padding:24px 0;border-top:1px solid var(--u-line)}
body.s-access-page .s-route-step .s-photo-open{margin-bottom:0!important}

/* Price page: same quiet editorial rhythm as TOP/LP. */
body.s-price-page .price-grid{max-width:760px!important;margin:0!important}
body.s-price-page .price-header{padding:28px 0!important}
body.s-price-page .price-body{padding:26px 0!important}
body.s-price-page .price-amount{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(38px,4vw,54px)!important;
  font-weight:400!important;
}

/* FAQ / reserve / first visit use simple lines, not floating rounded cards. */
body:not(.s-sowaka) .faq-list,
body:not(.s-sowaka) .step-list{max-width:760px!important;margin-left:0!important;margin-right:0!important}
body:not(.s-sowaka) .faq-q,
body:not(.s-sowaka) .faq-a,
body:not(.s-sowaka) .step-item{border-color:var(--u-line)!important}

@media(max-width:850px){
  body:not(.s-sowaka) .page-header{padding-top:72px!important}
  body:not(.s-sowaka) .page-header-inner,
  body:not(.s-sowaka) .container{
    width:calc(100% - 48px)!important;
  }
  body:not(.s-sowaka) .page-header-inner{padding:52px 0 48px!important}
  body:not(.s-sowaka) .section{padding:68px 0!important}
  body:not(.s-sowaka) .section-header{margin-bottom:34px!important}
  body:not(.s-sowaka) .reading-cta{
    width:calc(100% - 48px);
    padding:32px 24px!important;
    margin-bottom:68px!important;
  }
  body.s-access-page .s-photo-open{max-width:100%}
}


/* ===== 2026-10-10 v16: full horizontal alignment + hero typography unification ===== */

/* TOP and LP hero: use the same Mincho stack. This also neutralizes the LP's legacy global h1 rule. */
body.s-sowaka .s-hero h1{
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif!important;
  font-weight:400!important;
}

/* One centered page axis for TOP / LP sections. */
@media (min-width:851px){
  .s-sowaka.s-reading .s-section:not(#access) > .s-wrap{
    width:min(920px,calc(100% - 64px))!important;
    max-width:920px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* Section headings no longer jump right because of the old 150px + 70px SOWAKA grid. */
  .s-sowaka.s-reading .s-section:not(#access) .s-section-head{
    display:block!important;
    width:100%!important;
    max-width:760px!important;
    margin:0 auto 40px!important;
    padding:0!important;
    text-align:left!important;
  }
  .s-sowaka.s-reading .s-section:not(#access) .s-section-head .s-kicker{
    display:block!important;
    padding:0!important;
    margin:0 0 12px!important;
    text-align:left!important;
  }
  .s-sowaka.s-reading .s-section:not(#access) .s-section-head .s-heading,
  .s-sowaka.s-reading .s-section:not(#access) .s-section-head .s-section-lead{
    grid-column:auto!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    text-align:left!important;
  }

  /* Common reading-width blocks sit on the same centered axis. */
  .s-sowaka.s-reading #case > .s-wrap > p,
  .s-sowaka.s-reading #case .s-case-more,
  .s-sowaka.s-reading #case .s-case-instagram,
  .s-sowaka.s-reading #director .s-director-inner,
  .s-sowaka.s-reading #questions .s-faq,
  .s-sowaka.s-reading #questions .s-topic-links,
  .s-sowaka.s-reading #price .s-reading-stack > div,
  .s-sowaka.s-reading .s-first-time,
  .s-sowaka.s-reading .s-assurance > .s-wrap{
    width:100%!important;
    max-width:760px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* Reasons: heading/copy/action all share one x-axis instead of the old 220px indent. */
  .s-sowaka.s-reading #belief .s-reasons article{
    width:100%!important;
    max-width:760px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .s-sowaka.s-reading #belief .s-reasons article h3,
  .s-sowaka.s-reading #belief .s-reasons article p,
  .s-sowaka.s-reading #belief .s-reasons article .s-actions{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    text-align:left!important;
  }

  /* Price was visibly pushed 220px to the right. Return every element to the shared axis. */
  .s-sowaka.s-reading #price .s-price,
  .s-sowaka.s-reading #price .s-reading-stack > div > p,
  .s-sowaka.s-reading #price .s-reading-stack > div > .s-text-link{
    width:100%!important;
    max-width:760px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .s-sowaka.s-reading #price .s-price{
    margin-top:0!important;
    margin-bottom:28px!important;
  }

  /* Director section: photo-less copy uses the same axis as surrounding sections. */
  .s-sowaka.s-reading .s-director > .s-wrap{
    width:min(920px,calc(100% - 64px))!important;
    max-width:920px!important;
    margin:0 auto!important;
    padding:90px 0!important;
  }
  .s-sowaka.s-reading .s-director .s-director-inner,
  .s-sowaka.s-reading .s-director .s-director-inner > div{
    width:100%!important;
    max-width:760px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* FAQ was intentionally margin-left:auto in the old SOWAKA layer; center it instead. */
  .s-sowaka.s-reading .s-faq{
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* Reservation calendar and intro stay centered rather than starting from the wrapper's left edge. */
  .s-sowaka.s-reading #reserve .s-calendar{
    max-width:900px!important;
    margin:40px auto 0!important;
  }

  /* Instagram area follows its centered text treatment. */
  .s-sowaka.s-reading .s-case-instagram .s-actions{
    justify-content:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .s-sowaka.s-reading .s-case-instagram > h3,
  .s-sowaka.s-reading .s-case-instagram > p{
    text-align:center!important;
  }

  /* Access is intentionally a symmetric two-column composition; keep it full width. */
  .s-sowaka.s-reading #access > .s-wrap{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
}

/* Lower Japanese pages: one common outer axis and one common reading width. */
body:not(.s-sowaka) .page-header-inner,
body:not(.s-sowaka) .container,
body:not(.s-sowaka) .reading-cta{
  width:min(920px,calc(100% - 64px))!important;
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body:not(.s-sowaka) .section-header,
body:not(.s-sowaka) .article-card,
body:not(.s-sowaka) .price-grid,
body:not(.s-sowaka) .faq-list,
body:not(.s-sowaka) .step-list,
body:not(.s-sowaka) .points-grid,
body:not(.s-sowaka) .blog-grid,
body:not(.s-sowaka) .symptom-grid,
body:not(.s-sowaka) .article-body,
body:not(.s-sowaka) .map-box{
  width:100%!important;
  max-width:760px!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Access page: map, pin image and information start on exactly the same left edge. */
body.s-access-page .map-box{
  width:100%!important;
  height:min(360px,48svh)!important;
  max-width:760px!important;
  margin:0 0 28px!important;
}
body.s-access-page .s-photo-open{
  display:block!important;
  width:100%!important;
  max-width:320px!important;
  margin:0 0 32px!important;
  text-align:left!important;
}
body.s-access-page .s-photo-open img{
  margin:12px 0!important;
}
body.s-access-page .article-card,
body.s-access-page .points-grid{
  max-width:760px!important;
  margin-left:0!important;
  margin-right:0!important;
}

@media (max-width:850px){
  body:not(.s-sowaka) .page-header-inner,
  body:not(.s-sowaka) .container,
  body:not(.s-sowaka) .reading-cta{
    width:calc(100% - 48px)!important;
  }
  .s-sowaka.s-reading .s-case-instagram .s-actions{justify-content:center!important}
}

/* ===== 2026-10-10 price section center alignment ===== */
.s-sowaka.s-reading #price .s-section-head{
  text-align:center!important;
}
.s-sowaka.s-reading #price .s-section-head .s-kicker,
.s-sowaka.s-reading #price .s-section-head .s-heading{
  text-align:center!important;
}
.s-sowaka.s-reading #price .s-price-top{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:10px!important;
  text-align:center!important;
}
.s-sowaka.s-reading #price .s-price-top > span,
.s-sowaka.s-reading #price .s-price-top > strong,
.s-sowaka.s-reading #price .s-price .s-note,
.s-sowaka.s-reading #price .s-price .s-discount,
.s-sowaka.s-reading #price .s-reading-stack > div > p{
  text-align:center!important;
}
.s-sowaka.s-reading #price .s-reading-stack > div > .s-text-link{
  text-align:center!important;
}


/* ===== 2026-10-10 shared header / home-link alignment ===== */
/* Lower Japanese pages now use the exact same full-width header axis as INDEX/LP. */
body:not(.s-sowaka) .s-header-inner{
  width:calc(100% - 64px)!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  gap:8px!important;
}
body:not(.s-sowaka) .s-header .s-brand{
  letter-spacing:.04em!important;
}
body:not(.s-sowaka) .s-header .s-brand small{
  letter-spacing:.02em!important;
}

/* The director copy was narrowed too much in the previous alignment pass. */
@media (min-width:851px){
  .s-sowaka.s-reading .s-director .s-director-inner,
  .s-sowaka.s-reading .s-director .s-director-inner > div{
    max-width:860px!important;
  }
}

@media (max-width:850px){
  body:not(.s-sowaka) .s-header-inner{
    width:calc(100% - 32px)!important;
  }
}


/* ===== 2026-10-10 LOWER PAGES FULL NEW DESIGN ===== */
body.s-modern-lower{
  --lower-max:920px;
  --lower-read:760px;
  background:#fff!important;
  color:#20251f!important;
}
body.s-modern-lower main{background:#fff!important}

/* The common header is sticky, so old fixed-header compensation is removed. */
body.s-modern-lower .page-header{
  padding-top:0!important;
  background:#f4f6f3!important;
  border:0!important;
}
body.s-modern-lower .page-header-inner{
  width:min(var(--lower-max),calc(100% - 64px))!important;
  max-width:var(--lower-max)!important;
  padding:64px 0 58px!important;
  margin:0 auto!important;
  text-align:left!important;
}
body.s-modern-lower .page-label{
  font-family:'Noto Sans JP',sans-serif!important;
  font-style:normal!important;
  font-size:.72rem!important;
  line-height:1.4!important;
  letter-spacing:.16em!important;
  color:#6b746c!important;
  margin:0 0 14px!important;
}
body.s-modern-lower .page-title{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(2rem,3.1vw,2.9rem)!important;
  font-weight:500!important;
  line-height:1.55!important;
  letter-spacing:.035em!important;
  margin:0!important;
  color:#20251f!important;
}
body.s-modern-lower .page-sub{
  max-width:700px!important;
  margin:20px 0 0!important;
  font-size:.96rem!important;
  line-height:2!important;
  color:#6b746c!important;
}

body.s-modern-lower .section{
  padding:76px 0!important;
  background:#fff!important;
  border:0!important;
}
body.s-modern-lower .section.section-alt{background:#f5f7f4!important}
body.s-modern-lower .container{
  width:min(var(--lower-max),calc(100% - 64px))!important;
  max-width:var(--lower-max)!important;
  margin:0 auto!important;
}
body.s-modern-lower .section-header{
  width:100%!important;
  max-width:var(--lower-read)!important;
  margin:0 0 36px!important;
  padding:0!important;
  text-align:left!important;
}
body.s-modern-lower .en-title,
body.s-modern-lower .section-en{
  display:block!important;
  font-family:'Noto Sans JP',sans-serif!important;
  font-style:normal!important;
  font-size:.72rem!important;
  font-weight:400!important;
  letter-spacing:.16em!important;
  color:#6b746c!important;
  margin:0 0 12px!important;
}
body.s-modern-lower .ja-title,
body.s-modern-lower .section-title{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(1.65rem,2.5vw,2.25rem)!important;
  font-weight:500!important;
  line-height:1.65!important;
  letter-spacing:.035em!important;
  color:#20251f!important;
  margin:0!important;
  text-align:left!important;
}

/* Editorial blocks: no old rounded-card / shadow look. */
body.s-modern-lower .article-card,
body.s-modern-lower .price-card,
body.s-modern-lower .faq-item,
body.s-modern-lower .step-item,
body.s-modern-lower .blog-card,
body.s-modern-lower .symptom-card,
body.s-modern-lower .subpage-card,
body.s-modern-lower .card{
  border-radius:0!important;
  box-shadow:none!important;
}
body.s-modern-lower .article-card{
  width:100%!important;
  max-width:var(--lower-read)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
body.s-modern-lower .article-text{
  font-size:1rem!important;
  line-height:2.05!important;
  color:#2c332e!important;
}
body.s-modern-lower .article-text + .article-text{margin-top:18px!important}
body.s-modern-lower .article-highlight{
  margin:28px 0!important;
  padding:20px 24px!important;
  background:#f5f7f4!important;
  border:0!important;
  border-left:2px solid #66776d!important;
  border-radius:0!important;
}

/* Reading CTA now matches the quiet INDEX/LP language. */
body.s-modern-lower .reading-cta{
  width:min(var(--lower-max),calc(100% - 64px))!important;
  max-width:var(--lower-max)!important;
  margin:0 auto 76px!important;
  padding:44px 48px!important;
  background:#f5f7f4!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body.s-modern-lower .reading-cta h2{
  font-family:'Shippori Mincho',serif!important;
  font-size:clamp(1.45rem,2.2vw,1.95rem)!important;
  font-weight:500!important;
  line-height:1.7!important;
  margin:0 0 12px!important;
}
body.s-modern-lower .reading-cta p{max-width:680px;line-height:1.95;color:#59635c}

/* PRICE */
body.s-modern-lower.s-price-page .price-grid{max-width:760px!important;margin:0!important}
body.s-modern-lower .price-card{
  border-top:1px solid rgba(32,37,31,.16)!important;
  border-bottom:1px solid rgba(32,37,31,.16)!important;
  background:transparent!important;
  padding:34px 0!important;
}
body.s-modern-lower .price-header{
  display:flex!important;
  align-items:baseline!important;
  justify-content:space-between!important;
  gap:24px!important;
  padding:0!important;
  background:transparent!important;
}
body.s-modern-lower .price-name{font-family:'Shippori Mincho',serif!important;font-size:1.25rem!important;font-weight:500!important}
body.s-modern-lower .price-amount{font-family:'Shippori Mincho',serif!important;font-size:clamp(2.6rem,4.5vw,3.6rem)!important;font-weight:500!important}
body.s-modern-lower .price-body{padding:22px 0 0!important;background:transparent!important}
body.s-modern-lower .price-note{display:inline-block;margin-top:16px!important;padding:10px 14px!important;border:1px solid rgba(32,37,31,.16)!important;background:#fff!important;border-radius:0!important}
body.s-modern-lower.s-price-page .section-alt .article-card > div{
  background:transparent!important;
  border-radius:0!important;
  padding:20px 0!important;
  margin:0!important;
  border-top:1px solid rgba(32,37,31,.14)!important;
}
body.s-modern-lower.s-price-page .section-alt .article-card > div:last-child{border-bottom:1px solid rgba(32,37,31,.14)!important}

/* FAQ */
body.s-modern-lower .faq-list{max-width:760px!important;margin:0!important}
body.s-modern-lower .faq-item{border:0!important;border-top:1px solid rgba(32,37,31,.15)!important;background:transparent!important}
body.s-modern-lower .faq-item:last-child{border-bottom:1px solid rgba(32,37,31,.15)!important}
body.s-modern-lower .faq-q-btn{padding:22px 0!important;font-family:'Noto Sans JP',sans-serif!important;font-size:1rem!important;font-weight:500!important;background:transparent!important}
body.s-modern-lower .faq-answer-inner{padding:0 0 24px!important;line-height:1.95!important;color:#59635c!important}

/* FIRST VISIT */
body.s-modern-lower.s-first-visit .section[style]{padding:76px 0!important}
body.s-modern-lower.s-first-visit .section[style] .article-card{text-align:left!important}
body.s-modern-lower.s-first-visit .step-list{max-width:820px!important;margin:0!important}
body.s-modern-lower.s-first-visit .step-item{
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr)!important;
  gap:28px!important;
  padding:34px 0!important;
  border:0!important;
  border-top:1px solid rgba(32,37,31,.15)!important;
  background:transparent!important;
}
body.s-modern-lower.s-first-visit .step-item:last-child{border-bottom:1px solid rgba(32,37,31,.15)!important}
body.s-modern-lower.s-first-visit .step-num{
  width:auto!important;height:auto!important;border:0!important;background:transparent!important;
  font-family:'Cormorant Garamond',serif!important;font-size:2.7rem!important;font-weight:300!important;color:#68776e!important;
}
body.s-modern-lower.s-first-visit .step-title{font-family:'Shippori Mincho',serif!important;font-size:1.35rem!important;font-weight:500!important;margin-bottom:10px!important}
body.s-modern-lower.s-first-visit .step-desc{line-height:2!important;color:#455049!important}
body.s-modern-lower.s-first-visit .s-photo-open img{margin:16px 0!important}

/* BLOG / CASE LIST */
body.s-modern-lower .blog-grid{
  width:100%!important;max-width:none!important;margin:0!important;
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:44px 32px!important;
}
body.s-modern-lower .blog-card{display:block!important;border:0!important;background:transparent!important;overflow:visible!important;text-decoration:none!important}
body.s-modern-lower .blog-card-img{aspect-ratio:1.38!important;overflow:hidden!important;background:#f5f7f4!important}
body.s-modern-lower .blog-card-img img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
body.s-modern-lower .blog-card-body{padding:18px 0 0!important}
body.s-modern-lower .blog-card-tag{font-size:.76rem!important;letter-spacing:.08em!important;color:#6b746c!important;margin-bottom:8px!important}
body.s-modern-lower .blog-card-title{font-family:'Shippori Mincho',serif!important;font-size:1.25rem!important;line-height:1.65!important;font-weight:500!important}
body.s-modern-lower .blog-card-desc{margin-top:12px!important;font-size:.92rem!important;line-height:1.9!important;color:#657069!important}

/* SYMPTOM / GUIDE LISTS */
body.s-modern-lower .symptom-card-grid,
body.s-modern-lower .subpage-grid,
body.s-modern-lower .card-grid{
  width:100%!important;max-width:820px!important;margin:0!important;
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;
}
body.s-modern-lower .symptom-card,
body.s-modern-lower .subpage-card,
body.s-modern-lower .card{
  padding:26px!important;
  border:1px solid rgba(32,37,31,.14)!important;
  background:#fff!important;
  text-decoration:none!important;
}
body.s-modern-lower .symptom-icon,
body.s-modern-lower .subpage-icon,
body.s-modern-lower .card-icon{display:none!important}
body.s-modern-lower .symptom-tag{font-size:.72rem!important;letter-spacing:.08em!important;color:#6b746c!important;margin-bottom:8px!important}
body.s-modern-lower .symptom-name,
body.s-modern-lower .subpage-name,
body.s-modern-lower .card-title{font-family:'Shippori Mincho',serif!important;font-size:1.2rem!important;font-weight:500!important;line-height:1.6!important}
body.s-modern-lower .symptom-desc,
body.s-modern-lower .subpage-desc,
body.s-modern-lower .card-desc{margin-top:10px!important;line-height:1.85!important;color:#687269!important}

/* CASE / EXPLANATION ARTICLES */
body.s-modern-lower.s-case-page .container,
body.s-modern-lower .article-body{max-width:760px!important}
body.s-modern-lower .article-body{margin:0!important}
body.s-modern-lower .article-body h2{
  font-family:'Shippori Mincho',serif!important;font-size:clamp(1.45rem,2.2vw,1.9rem)!important;font-weight:500!important;line-height:1.75!important;
  margin:50px 0 18px!important;padding:0!important;border:0!important;
}
body.s-modern-lower .article-body p{line-height:2.05!important;color:#364039!important}
body.s-modern-lower .breadcrumb{background:#fff!important;border:0!important}
body.s-modern-lower .breadcrumb-inner{width:min(var(--lower-max),calc(100% - 64px))!important;max-width:var(--lower-max)!important;margin:0 auto!important;padding:18px 0!important;color:#7a837c!important}

/* PROFILE */
body.s-modern-lower .s-profile-intro{max-width:760px!important;margin:0!important}
body.s-modern-lower .s-profile-intro .article-card{max-width:760px!important}

/* RESERVE */
body.s-modern-lower .availability-lead{max-width:680px!important;line-height:2!important}
body.s-modern-lower .s-reserve-top{margin:24px 0 54px!important}
body.s-modern-lower .calendar-shell{max-width:900px!important;margin:24px 0 0!important;border:1px solid rgba(32,37,31,.14)!important;background:#fff!important;box-shadow:none!important;border-radius:0!important}
body.s-modern-lower .availability-alert{max-width:760px!important;margin:0!important;padding:16px 18px!important;border:0!important;border-left:2px solid #68776e!important;background:#f5f7f4!important;border-radius:0!important}
body.s-modern-lower .line-reserve-panel{max-width:760px!important;margin:34px 0 0!important;padding:28px!important;border:0!important;background:#f5f7f4!important;border-radius:0!important;box-shadow:none!important;text-align:left!important}
body.s-modern-lower .line-reserve-panel h2{font-family:'Shippori Mincho',serif!important;font-size:1.35rem!important;font-weight:500!important}
body.s-modern-lower .reserve-steps{max-width:640px!important;margin:0!important}
body.s-modern-lower .reserve-step{border-top:1px solid rgba(32,37,31,.14)!important;padding:18px 0!important}
body.s-modern-lower .reserve-step:last-child{border-bottom:1px solid rgba(32,37,31,.14)!important}

/* ACCESS — genuinely rebuilt, not just re-skinned. */
body.s-modern-lower.s-access-page .s-access-overview{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr)!important;
  gap:48px!important;
  align-items:start!important;
}
body.s-modern-lower.s-access-page .s-access-visual{min-width:0}
body.s-modern-lower.s-access-page .map-box{
  width:100%!important;max-width:none!important;height:360px!important;margin:0!important;border:1px solid rgba(32,37,31,.14)!important;overflow:hidden!important;
}
body.s-modern-lower.s-access-page .s-access-pin-note{margin:18px 0 0!important;font-size:.86rem!important;line-height:1.8!important;color:#6b746c!important}
body.s-modern-lower.s-access-page .s-access-visual > .s-photo-open{
  width:100%!important;max-width:300px!important;margin:14px 0 0!important;text-align:left!important;
}
body.s-modern-lower.s-access-page .s-access-visual > .s-photo-open img{margin:0!important;max-width:100%!important;max-height:none!important;border:1px solid rgba(32,37,31,.14)!important}
body.s-modern-lower.s-access-page .s-access-info{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border-top:1px solid rgba(32,37,31,.15)!important;
}
body.s-modern-lower.s-access-page .s-access-info > div:first-child{font-family:'Shippori Mincho',serif!important;font-size:1.25rem!important;font-weight:500!important;margin:0!important;padding:22px 0 14px!important}
body.s-modern-lower.s-access-page .info-row{display:grid!important;grid-template-columns:88px 1fr!important;gap:16px!important;padding:16px 0!important;border-top:1px solid rgba(32,37,31,.12)!important;max-width:none!important}
body.s-modern-lower.s-access-page .info-key{color:#6b746c!important;font-size:.85rem!important}
body.s-modern-lower.s-access-page .info-val{line-height:1.8!important}
body.s-modern-lower.s-access-page .s-route-block{margin-top:64px!important;padding-top:0!important}
body.s-modern-lower.s-access-page .s-route-block > h3{font-family:'Shippori Mincho',serif!important;font-size:1.65rem!important;font-weight:500!important;margin:0 0 26px!important}
body.s-modern-lower.s-access-page .s-route-step{display:grid!important;grid-template-columns:minmax(0,1fr) 320px!important;gap:32px!important;align-items:start!important;padding:26px 0!important;border-top:1px solid rgba(32,37,31,.14)!important}
body.s-modern-lower.s-access-page .s-route-step:last-child{border-bottom:1px solid rgba(32,37,31,.14)!important}
body.s-modern-lower.s-access-page .s-route-step > p{line-height:1.9!important;margin:0!important}
body.s-modern-lower.s-access-page .s-route-step .s-photo-open{margin:0!important;max-width:320px!important;text-align:left!important}
body.s-modern-lower.s-access-page .s-route-step .s-photo-open img{margin:0!important;max-width:320px!important;max-height:240px!important;object-fit:cover!important}
body.s-modern-lower.s-access-page .points-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 32px!important;max-width:820px!important;margin:0!important}
body.s-modern-lower.s-access-page .point-card{padding:22px 0!important;border-top:1px solid rgba(32,37,31,.14)!important}
body.s-modern-lower.s-access-page .point-title{font-family:'Shippori Mincho',serif!important;font-size:1.12rem!important;font-weight:500!important}
body.s-modern-lower.s-access-page .point-desc{margin-top:8px!important;line-height:1.85!important;color:#657069!important}

@media(max-width:850px){
  body.s-modern-lower .page-header-inner,
  body.s-modern-lower .container,
  body.s-modern-lower .reading-cta,
  body.s-modern-lower .breadcrumb-inner{
    width:calc(100% - 40px)!important;
  }
  body.s-modern-lower .page-header-inner{padding:44px 0 42px!important}
  body.s-modern-lower .section{padding:56px 0!important}
  body.s-modern-lower .reading-cta{padding:30px 24px!important;margin-bottom:56px!important}
  body.s-modern-lower .price-header{display:block!important}
  body.s-modern-lower .price-amount{display:block!important;margin-top:10px!important}
  body.s-modern-lower .blog-grid,
  body.s-modern-lower .symptom-card-grid,
  body.s-modern-lower .subpage-grid,
  body.s-modern-lower .card-grid,
  body.s-modern-lower.s-access-page .points-grid{
    grid-template-columns:1fr!important;
  }
  body.s-modern-lower.s-first-visit .step-item{grid-template-columns:48px minmax(0,1fr)!important;gap:16px!important}
  body.s-modern-lower.s-access-page .s-access-overview{grid-template-columns:1fr!important;gap:32px!important}
  body.s-modern-lower.s-access-page .map-box{height:280px!important}
  body.s-modern-lower.s-access-page .s-route-step{grid-template-columns:1fr!important;gap:16px!important}
  body.s-modern-lower.s-access-page .s-route-step .s-photo-open,
  body.s-modern-lower.s-access-page .s-route-step .s-photo-open img{max-width:100%!important;width:100%!important}
}


/* 2026-10-10 access info wrap fix */
@media (min-width:851px){
  body.s-modern-lower.s-access-page .s-access-nowrap{white-space:nowrap!important;}
  body.s-modern-lower.s-access-page .info-row{grid-template-columns:76px minmax(0,1fr)!important;gap:14px!important;}
}
@media (max-width:850px){
  body.s-modern-lower.s-access-page .s-access-nowrap{white-space:normal!important;}
}


/* ===== 2026-10-10 lower-page CTA full-width band fix ===== */
body.s-modern-lower .reading-cta{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:58px max(32px,calc((100% - var(--lower-max))/2 + 48px)) 72px!important;
  background:#ffffff!important;
  text-align:center!important;
}
body.s-modern-lower .reading-cta h2,
body.s-modern-lower .reading-cta p{
  margin-left:auto!important;
  margin-right:auto!important;
}
body.s-modern-lower .reading-cta p{
  max-width:680px!important;
}
@media(max-width:850px){
  body.s-modern-lower .reading-cta{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:42px 24px 56px!important;
  }
}

/* 2026-10-10 access building-photo alignment */
body.s-modern-lower.s-access-page .s-access-visual > .s-photo-open{
  width:min(100%,360px)!important;
  max-width:360px!important;
  margin:18px auto 0!important;
  text-align:center!important;
}
body.s-modern-lower.s-access-page .s-access-visual > .s-photo-open img{
  display:block!important;
  width:100%!important;
  max-width:360px!important;
  max-height:none!important;
  margin:0 auto!important;
  object-fit:contain!important;
}
body.s-modern-lower.s-access-page .s-access-visual > .s-photo-open span{
  display:block!important;
  margin-top:8px!important;
  text-align:center!important;
}


/* ===== 2026-10-10 access photo: center on the page, not inside the left grid column ===== */
body.s-modern-lower.s-access-page .s-access-building-photo{
  display:block!important;
  width:min(100%,360px)!important;
  max-width:360px!important;
  margin:32px auto 0!important;
  text-align:center!important;
}
body.s-modern-lower.s-access-page .s-access-building-photo img{
  display:block!important;
  width:100%!important;
  max-width:360px!important;
  max-height:none!important;
  margin:0 auto!important;
  object-fit:contain!important;
  border:1px solid rgba(32,37,31,.14)!important;
}
body.s-modern-lower.s-access-page .s-access-building-photo span{
  display:block!important;
  margin-top:8px!important;
  text-align:center!important;
}
body.s-modern-lower.s-access-page .s-route-block{
  width:100%!important;
  margin:64px auto 0!important;
}
@media(max-width:850px){
  body.s-modern-lower.s-access-page .s-access-building-photo{
    width:min(100%,360px)!important;
    margin-top:28px!important;
  }
}


/* 2026-10-10 access: clarify the first-floor tenant gently */
body.s-modern-lower.s-access-page .s-access-building-note{
  width:min(100%,520px)!important;
  margin:12px auto 0!important;
  color:var(--u-muted)!important;
  font-size:13px!important;
  line-height:1.8!important;
  text-align:center!important;
}


/* ===== 2026-10-10 JR north-exit video guide ===== */
body.s-access-page .s-jr-video-guide{
  max-width:760px;
  margin:48px auto 56px;
  padding:30px 0 34px;
  border-top:1px solid var(--u-line);
  border-bottom:1px solid var(--u-line);
  text-align:center;
}
body.s-access-page .s-jr-video-guide h3{
  font-family:'Shippori Mincho',serif;
  font-size:clamp(22px,2.1vw,28px);
  font-weight:400;
  line-height:1.7;
  margin:0 0 12px;
}
body.s-access-page .s-jr-video-guide p{
  color:var(--u-muted);
  line-height:1.9;
  margin:0 0 22px;
}
body.s-access-page .s-route-video-button{
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:850px){
  body.s-access-page .s-jr-video-guide{margin:36px auto 44px;padding:26px 0 30px}
}


/* ===== v47: LP content action alignment ===== */
/* Keep hero CTA as designed; center link/LINE actions inside LP content sections. */
.s-sowaka.s-reading:not(.s-home) .s-section .s-actions{
  justify-content:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.s-sowaka.s-reading:not(.s-home) .s-section .s-text-link{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
