:root{
  --navy:#163a5f;
  --navy-deep:#0f2942;
  --ink:#1c1c1c;
  --ink-sub:#5a5f66;
  --line:#dcdee1;
  --paper:#faf8f5;
  --gray:#f2f3f4;
  --white:#fff;
  --wrap:1120px;
  --wrap-narrow:760px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic",Meiryo,system-ui,sans-serif;
  font-size:16px;
  line-height:1.9;
  color:var(--ink);
  background:var(--white);
  font-feature-settings:"palt";
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--navy);}
.mincho{font-family:"Noto Serif JP","Noto Serif CJK JP","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:600;}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px;}
.wrap-narrow{width:100%;max-width:var(--wrap-narrow);margin:0 auto;padding:0 24px;}

/* ---------- header ---------- */
.header{border-bottom:1px solid var(--line);background:var(--white);position:sticky;top:0;z-index:50;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;}
.logo{display:flex;flex-direction:column;line-height:1.3;text-decoration:none;color:var(--ink);}
.logo b{font-size:17px;letter-spacing:.04em;font-weight:700;}
.logo span{font-size:11px;color:var(--ink-sub);letter-spacing:.08em;}
.gnav{display:none;}
.gnav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;}
.gnav a{text-decoration:none;color:var(--ink);font-size:14.5px;padding:6px 0;border-bottom:2px solid transparent;}
.gnav a:hover,.gnav a:focus-visible{border-bottom-color:var(--navy);}
.gnav .nav-cta{background:var(--navy);color:#fff;padding:9px 18px;border-radius:2px;border-bottom:none;}
.gnav .nav-cta:hover{background:var(--navy-deep);border-bottom-color:transparent;}
.navtoggle{background:none;border:1px solid var(--line);border-radius:2px;padding:8px 12px;font-size:13px;cursor:pointer;color:var(--ink);}
@media(min-width:900px){
  .gnav{display:block;}
  .navtoggle{display:none;}
  .header-inner{min-height:80px;}
}
@media(min-width:900px) and (max-width:1079px){
  .gnav ul{gap:16px;}
  .gnav a{font-size:13.5px;}
  .gnav .nav-cta{padding:8px 13px;}
  .logo b{font-size:16px;}
}
@media(max-width:899px){
  .gnav.open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 10px 22px rgba(0,0,0,.07);}
  .gnav.open ul{flex-direction:column;gap:0;padding:4px 24px 20px;}
  .gnav.open a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-size:15.5px;}
  .gnav.open .nav-cta{margin-top:16px;text-align:center;border-bottom:none;border-radius:2px;}
}

/* ---------- hero ---------- */
.hero{background:var(--paper);border-bottom:1px solid var(--line);padding:52px 0 56px;}
.hero h1{
  margin:0 0 26px;
  font-size:20.5px;
  line-height:1.75;
  letter-spacing:0;
  font-weight:600;
  letter-spacing:.01em;
}
.hero h1 .l1,.hero h1 .l2{display:block;}
.hero h1 .l2{margin-top:.15em;}
.hero p{margin:0 0 18px;color:#33383e;max-width:34em;}
.hero .btns{display:flex;flex-direction:column;gap:10px;margin-top:30px;}
.btn{
  display:inline-flex;align-items:center;justify-content:space-between;gap:10px;
  text-decoration:none;font-size:15px;padding:15px 20px;border-radius:2px;
  border:1px solid var(--navy);color:var(--navy);background:#fff;
}
.btn::after{content:"→";font-size:14px;}
.btn-main{background:var(--navy);color:#fff;}
.btn:hover{background:var(--navy);color:#fff;}
.btn-main:hover{background:var(--navy-deep);}
@media(min-width:768px){
  .hero{padding:76px 0 80px;}
  .hero h1{font-size:33px;max-width:22em;}
  .hero .btns{flex-direction:row;flex-wrap:wrap;}
  .btn{flex:1 1 200px;max-width:300px;}
}
@media(min-width:1100px){
  .hero h1{font-size:40px;line-height:1.62;max-width:24em;}
}

/* ---------- facts ---------- */
.facts{border-bottom:1px solid var(--line);}
.facts ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;}
.facts li{padding:26px 24px;border-bottom:1px solid var(--line);text-align:center;}
.facts li:last-child{border-bottom:none;}
.facts .num{display:block;font-size:34px;line-height:1.2;color:var(--navy);letter-spacing:.02em;}
.facts .num small{font-size:16px;margin-left:2px;}
.facts .num-tbd{color:#9aa1a8;letter-spacing:-.05em;}
.facts .label{display:block;font-size:13.5px;color:var(--ink-sub);margin-top:8px;}
@media(min-width:768px){
  .facts ul{grid-template-columns:repeat(2,1fr);max-width:840px;margin:0 auto;}
  .facts li{border-bottom:none;border-right:1px solid var(--line);padding:38px 20px;}
  .facts li:last-child{border-right:none;}
  .facts .num{font-size:40px;}
}

/* ---------- section base ---------- */
.section{padding:60px 0;}
.section+.section{border-top:1px solid var(--line);}
.section-paper{background:var(--paper);border-top:1px solid var(--line);}
.eyebrow{font-size:12.5px;letter-spacing:.16em;color:var(--navy);margin:0 0 14px;font-weight:600;}
.section h2{
  font-size:23px;line-height:1.6;margin:0 0 22px;font-weight:600;letter-spacing:.01em;
}
.section p{margin:0 0 18px;}
.lead-strong{font-weight:600;}
@media(min-width:768px){
  .section{padding:84px 0;}
  .section h2{font-size:30px;margin-bottom:28px;}
}

/* ---------- product section ---------- */
.product-grid{display:grid;gap:28px;grid-template-columns:1fr;}
@media(min-width:900px){
  .product-grid{grid-template-columns:1.05fr .95fr;gap:52px;align-items:start;}
}
.ph{
  background:var(--gray);border:1px dashed #b9bec4;border-radius:2px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:#7c838b;font-size:12.5px;line-height:1.7;padding:20px;
}
.photos{display:grid;gap:22px;grid-template-columns:1fr;}
.photos figure{margin:0;}
.photos img{width:100%;background:#fff;border:1px solid var(--line);}
.photos figcaption{font-size:12.5px;color:#7c838b;margin-top:8px;}
@media(min-width:560px){.photos{grid-template-columns:1fr 1fr;align-items:start;}}
@media(min-width:900px){.photos{grid-template-columns:1fr;max-width:320px;margin-left:auto;}}

.ph-photo{aspect-ratio:3/2;}

.mapfig{margin:0;}
.mapzoom{display:block;width:100%;max-width:980px;margin:0 auto;padding:0;border:1px solid var(--line);background:#fff;cursor:zoom-in;position:relative;}
.mapzoom img{width:100%;height:auto;display:block;}
.mapzoom-hint{position:absolute;right:10px;bottom:10px;background:rgba(22,58,95,.9);color:#fff;font-size:12px;padding:5px 11px;border-radius:2px;}

.lightbox{position:fixed;inset:0;background:#101a24;z-index:200;display:none;overflow:auto;-webkit-overflow-scrolling:touch;}
.lightbox.open{display:block;}
.lightbox img{display:block;max-width:none;width:1449px;margin:56px auto 40px;}
.lightbox .close{position:fixed;top:12px;right:12px;background:#fff;color:var(--ink);border:none;border-radius:2px;padding:10px 16px;font-size:14px;cursor:pointer;z-index:201;}
.lightbox .lbhint{position:fixed;top:18px;left:16px;color:#cdd6df;font-size:12.5px;}
.note{font-size:13px;color:var(--ink-sub);margin:12px 0 0;}
.textlink{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:15.5px;font-weight:600;color:var(--navy);border-bottom:1px solid var(--navy);padding-bottom:3px;}
.textlink::after{content:"→";}
.textlink:hover{color:var(--navy-deep);}

/* ---------- map section ---------- */
.map-head{text-align:center;max-width:44em;margin:0 auto 34px;}
.map-head h2{margin-bottom:14px;}
.map-foot{text-align:center;margin-top:24px;}

/* ---------- two column cards ---------- */
.duo{display:grid;gap:0;grid-template-columns:1fr;}
.duo>div{padding:40px 0;}
.duo>div+div{border-top:1px solid var(--line);}
@media(min-width:900px){
  .duo{grid-template-columns:1fr 1fr;gap:64px;}
  .duo>div{padding:0;}
  .duo>div+div{border-top:none;}
}
.duo h2{font-size:21px;}
@media(min-width:768px){.duo h2{font-size:24px;}}

/* ---------- news ---------- */
.news-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:8px;}
.news-head h2{margin-bottom:0;}
.newslist{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--line);}
.newslist li{border-bottom:1px solid var(--line);}
.newslist a{display:flex;flex-direction:column;gap:4px;padding:20px 4px;text-decoration:none;color:var(--ink);}
.newslist a:hover{background:var(--paper);}
.newslist time{font-size:13px;color:var(--ink-sub);letter-spacing:.04em;}
.newslist .ttl{font-size:15.5px;line-height:1.7;}
@media(min-width:768px){
  .newslist a{flex-direction:row;align-items:baseline;gap:28px;padding:22px 8px;}
  .newslist time{flex:0 0 96px;}
}

/* ---------- contact band ---------- */
.band{background:var(--navy);color:#fff;padding:56px 0;}
.band h2{color:#fff;font-size:22px;margin:0 0 14px;font-weight:600;line-height:1.6;}
.band p{color:#d6e0ea;margin:0 0 26px;}
.band .btns{display:flex;flex-direction:column;gap:12px;}
.band .btn{background:#fff;border-color:#fff;color:var(--navy);}
.band .btn:hover{background:#e9eff5;color:var(--navy-deep);}
.band .tel{font-size:15px;color:#fff;}
.band .tel b{font-size:26px;letter-spacing:.03em;display:block;}
.band .tel a,.footer address a{color:inherit;text-decoration:none;}
.band .telnote{display:block;font-size:13px;color:#c3d1de;}
@media(min-width:768px){.band .tel b{display:inline;}.band .telnote{display:inline;margin-left:8px;}}
@media(min-width:768px){
  .band{padding:72px 0;}
  .band h2{font-size:27px;}
  .band .btns{flex-direction:row;align-items:center;gap:24px;flex-wrap:wrap;}
}

/* ---------- footer ---------- */
.footer{background:var(--white);border-top:1px solid var(--line);padding:48px 0 28px;font-size:14px;}
.footer-grid{display:grid;gap:28px;grid-template-columns:1fr;}
@media(min-width:900px){.footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:40px;}}
.footer b.fname{font-size:16.5px;display:block;margin-bottom:8px;}
.footer address{font-style:normal;color:var(--ink-sub);line-height:1.9;}
.footer ul{list-style:none;margin:0;padding:0;}
.footer ul li{margin-bottom:9px;}
.footer ul a{text-decoration:none;color:var(--ink);}
.footer ul a:hover{text-decoration:underline;}
.footer .badge{font-size:13px;color:var(--ink-sub);line-height:2;}
.copyright{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-sub);}

/* ---------- mock annotation ---------- */
.mockbar{background:#3a3f45;color:#fff;font-size:12.5px;padding:9px 16px;text-align:center;line-height:1.7;}
.mockbar b{color:#ffd97a;}
.brpc{display:none;}
.brsp{display:inline;}
@media(min-width:768px){.brsp{display:none;}}
@media(min-width:768px){.brpc{display:inline;}}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}

/* ---------- 下層ページ共通 ---------- */
.pagehead{background:var(--paper);border-bottom:1px solid var(--line);padding:32px 0 34px;}
.breadcrumb{font-size:12.5px;color:var(--ink-sub);margin:0 0 14px;}
.breadcrumb a{color:var(--ink-sub);text-decoration:none;}
.breadcrumb a:hover,.breadcrumb a:focus-visible{text-decoration:underline;}
.pagehead h1{font-size:25px;margin:0;font-weight:700;letter-spacing:.02em;line-height:1.5;}
.pagehead .en{display:block;font-size:12px;letter-spacing:.16em;color:var(--navy);font-weight:600;margin-bottom:8px;}
.pagehead .lead{margin:14px 0 0;color:#33383e;max-width:34em;}
@media(min-width:768px){
  .pagehead{padding:46px 0 50px;}
  .pagehead h1{font-size:33px;}
}

/* 経営理念 */
.credo{list-style:none;margin:0;padding:0;}
.credo li{
  font-size:17px;line-height:1.85;font-weight:600;
  padding:16px 0 16px 22px;border-left:3px solid var(--navy);
  background:var(--paper);margin-bottom:12px;
}
@media(min-width:768px){.credo li{font-size:19px;padding:20px 0 20px 28px;}}

/* 方針 */
.policy{max-width:44em;}
.policy h3{font-size:16.5px;margin:0 0 12px;font-weight:700;}
.policy ul{margin:0 0 20px;padding-left:1.3em;}
.policy li{margin-bottom:9px;}
.policy .sub{margin:6px 0 0;padding-left:1.3em;list-style:none;color:var(--ink-sub);font-size:15px;}

/* 会社概要 */
.deflist{margin:0;border-top:1px solid var(--line);}
.deflist dt{font-weight:700;font-size:14.5px;padding:16px 0 2px;}
.deflist dd{margin:0;padding:0 0 16px;border-bottom:1px solid var(--line);}
.deflist dd ul{margin:0;padding-left:1.3em;}
.deflist dd li{margin-bottom:4px;}
@media(min-width:640px){
  .deflist{display:grid;grid-template-columns:180px 1fr;}
  .deflist dt{padding:18px 4px 18px 0;border-bottom:1px solid var(--line);}
  .deflist dd{padding:18px 0;}
}

/* 適合宣言 */
.certfig{margin:0 0 18px;}
.certfig img{width:100%;max-width:300px;border:1px solid var(--line);}

/* アクセス */
.mapembed{position:relative;padding-top:66%;border:1px solid var(--line);background:var(--gray);margin:0 0 14px;}
.mapembed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
@media(min-width:768px){.mapembed{padding-top:42%;}}

/* ---------- お問い合わせ ---------- */
.contact-lead{max-width:44em;}

/* 連絡手段カード */
.methods{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line);margin:0 0 8px;}
.methods>div{padding:22px 0;border-bottom:1px solid var(--line);}
.methods .mlabel{display:block;font-size:12.5px;letter-spacing:.14em;color:var(--navy);font-weight:600;margin-bottom:8px;}
.methods .mval{font-size:21px;line-height:1.5;letter-spacing:.02em;display:block;}
.methods .mval a{text-decoration:none;color:var(--ink);}
.methods .mval a:hover{color:var(--navy);}
.methods .mnote{display:block;font-size:13.5px;color:var(--ink-sub);margin-top:6px;}
.methods .mval-mail{font-size:16.5px;letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere;}
@media(min-width:768px){
  .methods{grid-template-columns:1fr 1fr 1.5fr;gap:0;}
  .methods>div{padding:26px 24px;border-bottom:none;border-right:1px solid var(--line);}
  .methods>div:first-child{padding-left:0;}
  .methods>div:last-child{border-right:none;}
  .methods .mval{font-size:22px;}
}

/* フォーム埋め込み */
.formbox{border:1px solid var(--line);background:#fff;margin:0 0 16px;}
.formbox iframe{display:block;width:100%;border:0;min-height:1100px;}
.formph{
  background:var(--gray);border:1px dashed #b9bec4;
  padding:44px 24px;text-align:center;color:#5f666e;line-height:1.9;
}
.formph b{display:block;font-size:16px;color:var(--ink);margin-bottom:10px;}
.formph .sub{font-size:13.5px;}

/* 事前にお知らせいただきたいこと */
.tips{display:grid;gap:0;grid-template-columns:1fr;margin:0;}
.tips>div{padding:24px 0;border-bottom:1px solid var(--line);}
.tips>div:first-child{border-top:1px solid var(--line);}
.tips h3{font-size:16px;margin:0 0 12px;font-weight:700;}
.tips ul{margin:0;padding-left:1.3em;font-size:15px;}
.tips li{margin-bottom:7px;}
.tips p{font-size:14px;color:var(--ink-sub);margin:12px 0 0;}
@media(min-width:900px){
  .tips{grid-template-columns:1fr 1fr;gap:0 48px;}
  .tips>div:nth-child(2){border-top:1px solid var(--line);}
}

/* 補足の囲み */
.callout{background:var(--paper);border:1px solid var(--line);padding:22px 24px;margin:26px 0 0;font-size:15px;}
.callout p{margin:0 0 10px;}
.callout p:last-child{margin-bottom:0;}

/* ---------- 規定ページ（プライバシーポリシー等） ---------- */
.legal{max-width:44em;}
.legal h2{font-size:19px;margin:38px 0 14px;font-weight:700;line-height:1.6;}
.legal h2:first-child{margin-top:0;}
.legal p{margin:0 0 16px;}
.legal ul{margin:0 0 16px;padding-left:1.3em;}
.legal li{margin-bottom:8px;}
.legal .revised{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-sub);}
.legal .contactbox{background:var(--paper);border:1px solid var(--line);padding:22px 24px;margin:0 0 16px;}
.legal .contactbox p{margin:0 0 6px;}
.legal .contactbox p:last-child{margin-bottom:0;}
@media(min-width:768px){.legal h2{font-size:21px;}}

/* ---------- 製品ページ ---------- */

/* 設備一覧 */
.equip{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 8px;}
.equip caption{text-align:left;font-size:13px;color:var(--ink-sub);padding:0 0 10px;}
.equip th,.equip td{border-bottom:1px solid var(--line);padding:14px 10px;text-align:left;vertical-align:top;}
.equip thead th{border-bottom:1px solid var(--ink-sub);font-size:13px;letter-spacing:.06em;color:var(--ink-sub);font-weight:600;padding-bottom:10px;}
.equip th[scope="row"]{font-weight:700;white-space:nowrap;padding-left:0;}
.equip td:last-child{text-align:right;white-space:nowrap;padding-right:0;}
.equip .maker{color:var(--ink-sub);font-size:14px;}
@media(max-width:559px){
  .equip,.equip tbody,.equip tr,.equip td,.equip th{display:block;}
  .equip thead{display:none;}
  .equip tr{border-bottom:1px solid var(--line);padding:14px 0;}
  .equip th,.equip td{border:none;padding:0;}
  .equip th[scope="row"]{font-size:13px;color:var(--navy);margin-bottom:4px;}
  .equip td:last-child{text-align:left;color:var(--ink-sub);font-size:14px;}
}

/* ---------- 2つの導線カード ---------- */
.linkcards{display:grid;gap:16px;grid-template-columns:1fr;margin:28px 0 0;}
@media(min-width:768px){.linkcards{grid-template-columns:1fr 1fr;gap:24px;}}
.linkcard{
  display:block;text-decoration:none;color:var(--ink);
  border:1px solid var(--line);background:#fff;padding:26px 24px;
  transition:border-color .15s ease,background .15s ease;
}
.linkcard:hover{border-color:var(--navy);background:var(--paper);}
.linkcard .lc-label{display:block;font-size:12px;letter-spacing:.14em;color:var(--navy);font-weight:600;margin-bottom:10px;}
.linkcard .lc-title{display:block;font-size:18px;font-weight:700;line-height:1.6;margin-bottom:8px;}
.linkcard .lc-desc{display:block;font-size:14.5px;color:var(--ink-sub);line-height:1.85;}
.linkcard .lc-go{display:inline-block;margin-top:14px;font-size:14.5px;font-weight:600;color:var(--navy);}
.linkcard .lc-go::after{content:"→";margin-left:6px;}

/* 課題→解決の対比 */
.beforeafter{display:grid;gap:0;grid-template-columns:1fr;margin:26px 0 0;}
.beforeafter>div{padding:24px;border:1px solid var(--line);}
.beforeafter>div+div{border-top:none;}
.beforeafter .ba-label{display:block;font-size:12px;letter-spacing:.12em;font-weight:600;margin-bottom:10px;}
.beforeafter .ba-before{background:var(--gray);}
.beforeafter .ba-before .ba-label{color:var(--ink-sub);}
.beforeafter .ba-after{background:var(--paper);}
.beforeafter .ba-after .ba-label{color:var(--navy);}
.beforeafter p{margin:0 0 10px;font-size:15px;}
.beforeafter p:last-child{margin-bottom:0;}
@media(min-width:768px){
  .beforeafter{grid-template-columns:1fr 1fr;}
  .beforeafter>div+div{border-top:1px solid var(--line);border-left:none;}
  .beforeafter>div{padding:28px;}
}

/* 認定・登録のバッジ列 */
.creds{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line);margin:0;}
.creds>div{padding:20px 0;border-bottom:1px solid var(--line);}
.creds dt{font-size:12.5px;letter-spacing:.1em;color:var(--navy);font-weight:600;margin-bottom:6px;}
.creds dd{margin:0;font-size:15.5px;line-height:1.75;}
.creds .cnote{display:block;font-size:13.5px;color:var(--ink-sub);margin-top:4px;}
@media(min-width:768px){
  .creds{grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
  .creds>div{padding:24px 24px 24px 0;border-bottom:none;border-right:1px solid var(--line);}
  .creds>div:last-child{border-right:none;padding-right:0;}
  .creds>div:not(:first-child){padding-left:24px;}
}

/* ---------- 研究開発ページ ---------- */

/* 表彰 */
.awards{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--line);}
.awards li{padding:22px 0;border-bottom:1px solid var(--line);}
.awards .aw-date{display:block;font-size:12.5px;letter-spacing:.08em;color:var(--navy);font-weight:600;margin-bottom:8px;}
.awards .aw-name{display:block;font-size:17px;font-weight:700;line-height:1.65;margin-bottom:8px;}
.awards .aw-paper{display:block;font-size:14.5px;color:var(--ink-sub);line-height:1.8;}
.awards .aw-org{display:block;font-size:13.5px;color:var(--ink-sub);margin-top:6px;}
@media(min-width:768px){.awards .aw-name{font-size:18px;}}

/* 論文一覧 */
.papers{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--line);counter-reset:paper;}
.papers li{padding:20px 0;border-bottom:1px solid var(--line);}
.papers .p-date{display:inline-block;font-size:12.5px;letter-spacing:.06em;color:var(--navy);font-weight:600;margin-bottom:7px;}
.papers .p-peer{
  display:inline-block;margin-left:10px;font-size:11.5px;letter-spacing:.06em;font-weight:600;
  color:var(--navy);border:1px solid var(--navy);border-radius:2px;padding:1px 7px;vertical-align:1px;white-space:nowrap;
}
.papers .p-title{display:block;font-size:16px;font-weight:700;line-height:1.7;margin-bottom:6px;}
.papers .p-venue{display:block;font-size:13.5px;color:var(--ink-sub);line-height:1.8;}
@media(min-width:768px){
  .papers li{display:grid;grid-template-columns:7.5em 1fr;column-gap:28px;align-items:start;padding:22px 0;}
  .papers .p-date{grid-column:1;grid-row:1 / span 2;margin-bottom:0;padding-top:3px;}
  .papers .p-title{grid-column:2;grid-row:1;font-size:16.5px;margin-bottom:5px;}
  .papers .p-venue{grid-column:2;grid-row:2;}
  .papers .p-peer{margin-left:0;margin-top:8px;display:block;width:-moz-fit-content;width:fit-content;}
}

/* 数字の並び（研究の規模） */
.rdnums{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:26px 0 0;border:1px solid var(--line);}
.rdnums>div{padding:22px 18px;text-align:center;}
.rdnums>div+div{border-left:1px solid var(--line);}
.rdnums .n{display:block;font-size:30px;font-weight:700;color:var(--navy);line-height:1.2;}
.rdnums .n small{font-size:15px;margin-left:2px;}
.rdnums .t{display:block;font-size:13px;color:var(--ink-sub);margin-top:8px;line-height:1.7;}
@media(min-width:768px){
  .rdnums{grid-template-columns:repeat(3,1fr);}
  .rdnums .n{font-size:36px;}
}
@media(max-width:559px){
  .rdnums{grid-template-columns:1fr;}
  .rdnums>div+div{border-left:none;border-top:1px solid var(--line);}
}

/* ---------- お知らせ一覧ページ ---------- */
.newsfull{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--line);}
.newsfull li{padding:20px 0;border-bottom:1px solid var(--line);}
.newsfull time{display:inline-block;font-size:13px;letter-spacing:.04em;color:var(--ink-sub);margin-right:12px;}
.newsfull .cat{
  display:inline-block;font-size:11.5px;letter-spacing:.06em;font-weight:600;white-space:nowrap;
  color:var(--navy);border:1px solid var(--line);background:#fff;padding:2px 9px;
}
.newsfull .ttl{display:block;font-size:16px;line-height:1.75;margin-top:8px;}
.newsfull a.ttl{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
.newsfull a.ttl:hover{color:var(--navy);border-bottom-color:var(--navy);}
@media(min-width:768px){
  .newsfull li{display:grid;grid-template-columns:7.5em 6.5em 1fr;column-gap:20px;align-items:baseline;padding:22px 0;}
  .newsfull time{margin-right:0;}
  .newsfull .cat{justify-self:start;}
  .newsfull .ttl{margin-top:0;font-size:16.5px;}
}

/* ---------- サイトマップ ---------- */
.sitemap{display:grid;grid-template-columns:1fr;gap:0;margin:26px 0 0;border-top:1px solid var(--line);}
.sitemap section{padding:24px 0;border-bottom:1px solid var(--line);}
.sitemap h2{font-size:16px;margin:0 0 14px;font-weight:700;}
.sitemap ul{list-style:none;margin:0;padding:0;}
.sitemap li{margin-bottom:10px;font-size:15.5px;}
.sitemap li:last-child{margin-bottom:0;}
.sitemap a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
.sitemap a:hover{color:var(--navy);border-bottom-color:var(--navy);}
.sitemap .smnote{display:block;font-size:13.5px;color:var(--ink-sub);margin-top:3px;}
.sitemap .ext::after{content:"↗";margin-left:5px;font-size:12px;color:var(--ink-sub);}
@media(min-width:768px){
  .sitemap{grid-template-columns:1fr 1fr;column-gap:48px;border-top:none;}
  .sitemap section{border-bottom:none;border-top:1px solid var(--line);padding:26px 0;}
}

/* リンクカードを1枚だけ置く場合 */
@media(min-width:768px){
  .linkcards.solo{grid-template-columns:1fr;}
}

/* ---------- 本文中の写真 ---------- */
.photofig{margin:26px 0 0;}
.photofig img{display:block;width:100%;height:auto;}
.photofig figcaption{
  margin-top:10px;font-size:13.5px;color:var(--ink-sub);line-height:1.75;
}

/* ---------- 横長写真の連なり ---------- */
.widestack{display:grid;gap:30px;margin:28px 0 0;}
.widestack figure{margin:0;}
.widestack img{display:block;width:100%;height:auto;}
.widestack figcaption{margin-top:10px;font-size:13.5px;color:var(--ink-sub);line-height:1.75;}

/* ---------- 工程写真の3枚組 ---------- */
.procgrid{display:grid;grid-template-columns:1fr;gap:22px;margin:26px 0 0;}
.procgrid figure{margin:0;}
.procgrid img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.procgrid .pc-label{
  display:block;font-size:11.5px;letter-spacing:.12em;font-weight:600;
  color:var(--navy);margin:10px 0 3px;
}
.procgrid figcaption{font-size:13.5px;color:var(--ink-sub);line-height:1.75;}
@media(min-width:600px){
  .procgrid{grid-template-columns:repeat(2,1fr);gap:22px 20px;}
}
@media(min-width:900px){
  .procgrid{grid-template-columns:repeat(4,1fr);gap:18px;}
  .procgrid figcaption{font-size:12.5px;}
}

/* ---------- 写真2枚並べ ---------- */
.duofig{display:grid;grid-template-columns:1fr;gap:22px;margin:26px 0 0;}
.duofig figure{margin:0;}
.duofig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.duofig figcaption{margin-top:9px;font-size:13.5px;color:var(--ink-sub);line-height:1.75;}
@media(min-width:640px){
  .duofig{grid-template-columns:1fr 1fr;gap:24px;}
}

/* ---------- SPRING SPRING の商品写真 ---------- */
.shopgrid{display:grid;grid-template-columns:1fr;gap:20px;margin:26px 0 0;}
.shopgrid figure{margin:0;}
.shopgrid img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;}
.shopgrid figcaption{margin-top:8px;font-size:13.5px;color:var(--ink-sub);line-height:1.7;}
@media(min-width:600px){
  .shopgrid{grid-template-columns:1fr 1fr;gap:22px;}
}
