/* ===== トップページ固有スタイル ===== */
.hero{width:var(--inner);margin:0 auto}
.hero__grid{min-height:660px;display:grid;grid-template-columns:minmax(420px,.88fr) minmax(420px,1.12fr);gap:50px;align-items:stretch}
.hero__copy{position:relative;padding:92px 0 40px 94px}
.hero__label{position:absolute;left:0;top:102px}
.hero h1{margin:0 0 18px;font-size:clamp(44px,5.5vw,82px);line-height:1.22;letter-spacing:.005em;font-weight:900}
.hero__service{margin:0 0 18px;font-weight:900}
.hero__lead{color:var(--pool-muted);font-weight:700;max-width:520px}
.topics{position:absolute;left:0;right:0;bottom:34px;display:grid;grid-template-columns:48px minmax(250px,1fr) 160px;align-items:center;gap:22px}
.topics time{font-weight:900;font-size:13px}
.topics p{margin:2px 0 0;font-weight:700;font-size:13px}
.topics a{font-size:12px;font-weight:900;letter-spacing:.05em;display:inline-flex;align-items:center;gap:12px}
.topics a span{content:"";display:inline-block;width:36px;height:1px;background:currentColor}
.hero__visual{position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.hero__visual img{width:min(100%,610px);height:610px;object-fit:cover;object-position:center center;filter:saturate(.96) contrast(1.02)}
.hero__side-text{position:absolute;top:62px;right:26px;writing-mode:vertical-rl;text-orientation:mixed;margin:0;font-weight:900;letter-spacing:.14em;line-height:1.2}
.round-badge{position:absolute;right:60px;bottom:64px;width:126px;height:126px;border:2px solid var(--pool-line);border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:800;line-height:1.5;background:rgba(255,255,255,.12)}

/* サービスセクション：1グリッドで縦線を連続 */
.service-grid--unified{grid-template-columns:78px 1fr;gap:30px}
.service-grid--unified .vertical-label{padding-top:42px;border-right:1px solid var(--pool-line)}
.service__body{display:flex;flex-direction:column}
.service__heading{padding:38px 0 36px}
.service__heading h2{font-size:clamp(22px,2.8vw,39px);line-height:1.55;margin:0;font-weight:900;word-break:keep-all}
.service__list{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--pool-line)}
.service__list article{padding:40px 30px 32px;border-left:1px solid var(--pool-line)}
.service__list span{display:block;font-size:clamp(38px,3.8vw,56px);line-height:1;font-weight:900;margin-bottom:18px}
.service__list h3{font-size:19px;margin:0 0 18px;font-weight:900}
.service__list p{color:var(--pool-muted);font-weight:700;font-size:13px;margin:0 0 24px}
.service__list a{font-size:12px;font-weight:900;letter-spacing:.05em;display:inline-flex;align-items:center;gap:12px}
.service__list a:after{content:"";display:inline-block;width:36px;height:1px;background:currentColor}

.industry .section-grid{min-height:160px}
.industry__heading{padding:38px 0 36px}
.industry__heading h2{font-size:clamp(27px,3vw,39px);line-height:1.55;margin:0;font-weight:900}
.industry__heading p{margin:10px 0 0;color:var(--pool-muted);font-weight:700}
.industry__list{display:grid;grid-template-columns:repeat(8,1fr);align-items:center}
.industry__list div{min-height:120px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900}
.brand__main{padding:38px 0 36px}
.brand__main h2{font-size:clamp(22px,2.8vw,39px);line-height:1.55;margin:0;font-weight:900}
.brand__main p{margin:10px 0 0;color:var(--pool-muted);font-weight:700}

.about .section-grid,.price .section-grid{min-height:230px}
.about__main,.price__heading{padding:38px 0 36px}
.about__main h2,.price__heading h2{font-size:clamp(27px,3vw,39px);line-height:1.55;margin:0;font-weight:900}
.about__main p,.about__note p,.price__heading p{margin:10px 0 0;color:var(--pool-muted);font-weight:700}
.about__note{border-left:1px solid var(--pool-line);padding:52px 36px;display:flex;align-items:center}
.price__table{border-left:1px solid var(--pool-line)}
.price__table div{min-height:58px;padding:18px 30px;display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:center;border-bottom:1px solid var(--pool-line);font-weight:800}
.price__table div:last-child{border-bottom:0}
.price__table span{color:var(--pool-muted)}

@media(max-width:1180px){
  .hero__grid{grid-template-columns:1fr;min-height:0}
  .hero__copy{padding:72px 0 30px 70px}
  .topics{position:static;margin-top:46px;grid-template-columns:44px 1fr auto;gap:16px}
  .topics a{grid-column:3}
  .hero__visual{min-height:480px}
  .service__list{grid-template-columns:repeat(2,1fr);border-top:1px solid var(--pool-line)}
  .industry__list{grid-template-columns:repeat(4,1fr);border-top:1px solid var(--pool-line)}
  .about__main,.price__heading{grid-column:2/span 1}
  .about__note,.service__list,.industry__list,.price__table{grid-column:2/span 1}
}
@media(max-width:720px){
  .hero__copy{padding:50px 0 26px 42px}
  .hero__label{top:58px}
  .hero h1{font-size:42px}
  .hero__lead br{display:none}
  .topics{grid-template-columns:1fr;gap:10px}
  .topics .vertical-label{writing-mode:horizontal-tb;font-size:11px;letter-spacing:.12em;border-right:0;padding:0}
  .topics time{display:block}
  .topics p{margin:2px 0 0}
  .topics a{margin-top:6px}
  .hero__visual{min-height:410px}
  .hero__visual img{height:430px;width:100%}
  .hero__side-text{display:none}
  .round-badge{width:100px;height:100px;right:18px;bottom:24px;font-size:12px}
  .service__heading h2,.industry__heading h2,.about__main h2,.price__heading h2{font-size:22px}
  .service-grid--unified{grid-template-columns:34px 1fr}
  .service__list,.industry__list{grid-template-columns:1fr}
  .service__list article,.industry__list div,.about__note,.price__table{border-left:0}
  .service__list article{border-bottom:1px solid var(--pool-line);padding:30px 0}
  .industry__list div{justify-content:flex-start;min-height:78px;border-bottom:1px solid var(--pool-line)}
  .price__table div{grid-template-columns:1fr;gap:4px;padding:18px 0}
  .about__note{padding:0 0 34px}
}
