/* Stripe決済と法務導線に必要な最小追加。既存デザインは上書きしない。 */
.price{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  font-size:2.12rem!important;
  font-weight:400;
  line-height:1.35;
}
.price .tax{
  font-size:.75rem!important;
  font-weight:400!important;
}
.price .price-sub{
  display:block;
  flex:0 0 100%;
  margin-top:2px;
  color:#756f68;
  font-family:var(--sans);
  font-size:.78rem!important;
  font-weight:500!important;
  line-height:1.5!important;
  letter-spacing:.01em;
}

/* Hero spacing: use one padding layer only. Earlier page styles applied
   spacing to both the outer hero and its inner wrapper, creating dead space. */
.hero,
.page-hero{
  padding-top:0!important;
  padding-bottom:0!important;
}
.hero .hero-inner{
  min-height:0!important;
  padding-top:clamp(64px,7vw,96px)!important;
  padding-bottom:clamp(64px,7vw,96px)!important;
}
.page-hero>.wrap{
  padding-top:clamp(64px,7vw,96px)!important;
  padding-bottom:clamp(60px,6.5vw,88px)!important;
}
.page-hero>.wrap>p{max-width:100%!important}
.payment-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  margin-top:16px;
  padding:0 20px;
  border-radius:999px;
  background:var(--gold);
  color:#111;
  font-family:var(--sans);
  font-size:.9rem;
  font-weight:800;
  white-space:nowrap;
}
.payment-button:hover{filter:brightness(.96)}
.payment-note{margin:8px 0 0;color:#756f68;font-size:.75rem;line-height:1.6}
.legal-footer-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:8px;padding-top:14px;border-top:1px solid #292929}
.legal-footer-links a{font-size:.76rem;color:#8f8f8f}
.legal-footer-links a:hover{color:#fff}

/* Let the industry cards follow their content. A fixed 270px minimum left a
   large empty block beneath the tags, especially in one-column layouts. */
.industry-card{min-height:0!important}

/* Centre only the short copy groups paired with a taller heading. */
.center-copy,
.service-intro>.big-rule,
.section.black2>.wrap.philosophy>div:last-child{
  align-self:center;
}

/* Balance the shorter LINE/QR column against the longer contact list. */
.contact-grid>div:last-child{align-self:center}
.contact-point{
  padding-top:12px!important;
  padding-bottom:12px!important;
}

@media(min-width:981px){
  .section-head.v8-section-head>.lead{
    align-self:center;
    max-width:none!important;
    padding-top:0!important;
  }
}

@media(max-width:1180px){
  .industry-index{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .business-row{
    grid-template-columns:42px minmax(0,1fr)!important;
    column-gap:14px!important;
    row-gap:8px!important;
  }
  .business-row>b{grid-column:1;grid-row:1}
  .business-row>h3{grid-column:2;grid-row:1}
  .business-row>p{grid-column:2;grid-row:2;margin:0!important}
}
@media(max-width:980px){
  .hero-aside,
  .symbol-stage{
    display:none!important;
  }
  .hero .hero-inner{
    grid-template-columns:1fr!important;
    gap:0!important;
  }
}
@media(max-width:820px){
  .industry-index{
    grid-template-columns:1fr!important;
  }
  .industry-card{
    padding:24px 20px!important;
  }
}
@media(max-width:640px){
  .price{font-size:1.9rem!important}
  .hero .hero-inner{
    padding-top:44px!important;
    padding-bottom:44px!important;
  }
  .page-hero>.wrap{
    padding-top:44px!important;
    padding-bottom:42px!important;
  }
  .payment-button{width:100%;white-space:normal;text-align:center;padding:10px 16px}
  .legal-footer-links{display:grid;gap:8px}
}
