:root{
  --c-bg:#fff;
  --c-fg:#111;
  --c-muted:#6b7280;
  --c-line:#e5e7eb;
  --c-link:#111;
  --c-btn:#028BC8;
  --c-btn-fg:#fff;
  --w-container:1200px;
  --sp-xxl: clamp(64px, 10vw, 140px);
  --sp-xl:  clamp(48px, 8vw, 112px);
  --sp-lg:  clamp(40px, 6vw, 88px);
  --sp-md:  clamp(28px, 4vw, 56px);
  --sp-sm:  clamp(16px, 2.6vw, 28px);
  --lh: 1.4;
  --radius: 10px;
  --radius-pill: 999px;
  --focus:#1e90ff;
  --header-h: 68px;
  --anchor-gap: 12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-fg);
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
    "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  line-height:var(--lh);
}
img{max-width:100%; height:auto; display:block}
a{color:var(--c-link); text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{padding-left:1.2em}
.l-container{
  width:min(100%, calc(var(--w-container) + 80px));
  margin-inline:auto;
  padding-inline:40px;
}
@media (max-width:599px){.l-container{padding-inline:20px}}
.p-section{
  padding-block:var(--sp-xl);
  border-top:1px solid var(--c-line);
}
.p-section:first-of-type{border-top:none}
.p-section h2{
  font-size:clamp(22px,3.4vw,44px);
  font-weight:700;
  margin:0 0 var(--sp-sm);
}
.c-lead{font-size:clamp(14px,1.6vw,18px); color:#333}
.c-header{
  position:sticky;
  top:0;
  background:#fff;
  border-bottom:1px solid var(--c-line);
  z-index:1000;
}
.c-header__inner{height:68px;display:flex;align-items:center}
.c-header__logo img{width:220px}
.p-hero{position:relative;color:#fff}
.p-hero__inner{
  position: relative;
  padding: 5vw;
  height: 75vh;
  overflow: hidden;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
@media (max-width: 767px){
  .p-hero__inner{ height: 60vh; }
}
.p-hero__image{position:absolute;inset:0;z-index:-1}
.p-hero__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(.85);
}
.p-hero__texts{
  max-width:600px;
  text-align:right;
}
@media (max-width: 767px){
  .p-hero__texts{text-align:center;margin-inline:auto}
}
.p-hero__title{
  font-size:clamp(26px,3.8vw,48px);
  margin:0;
  text-shadow: 1px 2px 6px rgba(0,0,0,.45);
}
.p-hero__scroll{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: clamp(24px, 6vw, 64px);
  z-index: 2;
  text-align: center;
}
.p-hero__scrollLink{
  display:inline-block;
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  background-color: rgba(2, 139, 200, 0.4);
  backdrop-filter:saturate(140%) blur(1px);
  transition:opacity .2s ease;
}
.p-hero__scrollLink:hover{ opacity:.92; text-decoration:none; }
.p-twoCol{display:grid;gap:clamp(18px,3vw,40px);grid-template-columns:1fr}
@media(min-width:992px){
  .p-twoCol{grid-template-columns:1.05fr 1fr}
  .p-twoCol--reverse{grid-template-columns:1fr 1.05fr}
  .p-twoCol--reverse .p-twoCol__text{order:2}
  .p-twoCol--reverse .p-twoCol__media{order:1}
}
.p-twoCol__media{border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden}
.p-link{margin-top:1em;text-align:left}
.p-link a{
  display:inline-block;
  background:var(--c-btn);
  color:var(--c-btn-fg);
  padding:10px 20px;
  border-radius:var(--radius-pill);
  border:1px solid var(--c-btn);
  font-size:14px;
  min-width:230px;
  text-align:center;
  text-decoration:none;
  transition:opacity .2s ease,transform .1s ease;
}
.p-link a:hover{opacity:.9}
.p-link a:active{transform:translateY(1px)}
@media(max-width:767px){
  .p-link{text-align:center}
}
.p-business{background:#f5f5f5;}
.p-business__list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.p-business__list li{border-top:1px solid var(--c-line);padding-block:14px}
.p-business__list li:last-child{border-bottom:1px solid var(--c-line)}
.p-business-h2{
  font-size: clamp(22px, 3.4vw, 36px);
  font-weight: 700;
  margin: 0 0 var(--sp-sm);
}
.p-business__list h3{
  font-size: clamp(16px, 2.2vw, 20px);
  font-weight: 600;
  color: var(--c-muted);
  margin: 0 0 6px;
}
.p-business__list p{
  margin: 0;
  font-size: clamp(14px, 1.6vw, 16px);
  color: #333;
  line-height: 1.7;
}
.p-records__hero{
  text-align:center;
  margin: calc(var(--sp-xxl) * 0.2) auto;
}
.p-records__hero img{
  max-width:1280px;
  width:100%;
  margin-inline:auto;
}
.p-logos{display:flex;gap:clamp(14px,2vw,32px);align-items:center;flex-wrap:wrap;justify-content:center;padding-top:var(--sp-md)}
.p-logos img{width:clamp(140px,14vw,180px);filter:grayscale(20%)}
.p-patent__thumbs{
  list-style:none;
  margin: var(--sp-md) 0 0;
  padding:0;
  display:grid;
  gap: clamp(12px, 2.5vw, 24px);
  grid-template-columns: 1fr;
}
@media (min-width: 600px){
  .p-patent__thumbs{grid-template-columns: repeat(2, 1fr);}
}
@media (min-width: 1024px){
  .p-patent__thumbs{grid-template-columns: repeat(3, 1fr);}
}
.p-patent__thumbs li{ margin:0; }
.p-patent__thumbs figure{
  margin:0;
  border:1px solid var(--c-line);
  border-radius: var(--radius);
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
  height:100%;
}
.p-patent__thumbs img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.p-patent__thumbs figcaption{
  font-size: clamp(12px, 1.3vw, 14px);
  padding: 10px 12px;
  color:#444;
  border-top:1px solid var(--c-line);
  line-height: 1.6;
}
.p-timeline{margin-top:var(--sp-sm)}
.p-timeline__row{display:grid;grid-template-columns:1fr;gap:8px;padding:16px 0;border-top:1px solid var(--c-line)}
.p-timeline__row:last-child{border-bottom:1px solid var(--c-line)}
@media(min-width:720px){.p-timeline__row{grid-template-columns:220px 1fr}}
.p-company{background:#f5f5f5;}
.p-company-list{margin-top:var(--sp-sm);display:grid;gap:6px}
.p-company-list_item{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--c-line)}
.p-company-list_item:last-child{border-bottom:1px solid var(--c-line)}
@media(max-width:719px){.p-company-list_item{grid-template-columns:1fr;gap:8px}}
.c-footer{background:#175fa9;color:#fff}
.c-footer__inner{padding-block:var(--sp-lg)}
.c-footer__nav ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:12px 18px;justify-content:center}
.c-footer__nav a{color:#fff;padding:4px 6px;text-decoration:none}
.c-footer__nav a:hover{text-decoration:underline}
.c-footer__copy{text-align:center;color:#fff;font-size:13px;margin-top:10px}
.p-lead{
  text-align:center;
  padding-block: clamp(40px, 8vw, 100px);
}
.p-lead .c-lead{
  max-width: 800px;
  margin-inline: auto;
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.9;
}
.pc-show{display:none}
@media (min-width:820px){.pc-show{display:block}}
[id]{scroll-margin-top: calc(var(--header-h) + var(--anchor-gap));}
:root{
  --c-bg:#fff;
  --c-fg:#111;
  --c-muted:#6b7280;
  --c-line:#e5e7eb;
  --c-link:#111;
  --c-btn:#028BC8;
  --c-btn-fg:#fff;
  --w-container:1200px;
  --sp-xxl: clamp(64px, 10vw, 140px);
  --sp-xl:  clamp(48px, 8vw, 112px);
  --sp-lg:  clamp(40px, 6vw, 88px);
  --sp-md:  clamp(28px, 4vw, 56px);
  --sp-sm:  clamp(16px, 2.6vw, 28px);
  --lh: 1.4;
  --radius: 10px;
  --radius-pill: 999px;
  --focus:#1e90ff;
  --header-h: 68px;
  --anchor-gap: 12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-fg);
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
    "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  line-height:var(--lh);
}
img{max-width:100%; height:auto; display:block}
a{color:var(--c-link); text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{padding-left:1.2em}
.l-container{
  width:min(100%, calc(var(--w-container) + 80px));
  margin-inline:auto;
  padding-inline:40px;
}
@media (max-width:599px){.l-container{padding-inline:20px}}
.p-section{
  padding-block:var(--sp-xl);
  border-top:1px solid var(--c-line);
}
.p-section:first-of-type{border-top:none}
.p-section h2{
  font-size:clamp(22px,3.4vw,44px);
  font-weight:700;
  margin:0 0 var(--sp-sm);
}
.c-lead{font-size:clamp(14px,1.6vw,18px); color:#333}
.c-header{
  position:sticky;
  top:0;
  background:#fff;
  border-bottom:1px solid var(--c-line);
  z-index:1000;
}
.c-header__inner{height:68px;display:flex;align-items:center}
.c-header__logo img{width:220px}
.p-hero{position:relative;color:#fff}
.p-hero__inner{
  position: relative;
  padding: 5vw;
  height: 75vh;
  overflow: hidden;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
@media (max-width: 767px){
  .p-hero__inner{ height: 60vh; }
}
.p-hero__image{position:absolute;inset:0;z-index:-1}
.p-hero__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(.85);
}
.p-hero__texts{
  max-width:600px;
  text-align:right;
}
@media (max-width: 767px){
  .p-hero__texts{text-align:center;margin-inline:auto}
}
.p-hero__title{
  font-size:clamp(26px,3.8vw,48px);
  margin:0;
  text-shadow: 1px 2px 6px rgba(0,0,0,.45);
}
.p-hero__scroll{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: clamp(24px, 6vw, 64px);
  z-index: 2;
  text-align: center;
}
.p-hero__scrollLink{
  display:inline-block;
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  background-color: rgba(2, 139, 200, 0.4);
  backdrop-filter:saturate(140%) blur(1px);
  transition:opacity .2s ease;
}
.p-hero__scrollLink:hover{ opacity:.92; text-decoration:none; }
.p-twoCol{display:grid;gap:clamp(18px,3vw,40px);grid-template-columns:1fr}
@media(min-width:992px){
  .p-twoCol{grid-template-columns:1.05fr 1fr}
  .p-twoCol--reverse{grid-template-columns:1fr 1.05fr}
  .p-twoCol--reverse .p-twoCol__text{order:2}
  .p-twoCol--reverse .p-twoCol__media{order:1}
}
.p-twoCol__media{border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden}
.p-link{margin-top:1em;text-align:left}
.p-link a{
  display:inline-block;
  background:var(--c-btn);
  color:var(--c-btn-fg);
  padding:10px 20px;
  border-radius:var(--radius-pill);
  border:1px solid var(--c-btn);
  font-size:14px;
  min-width:230px;
  text-align:center;
  text-decoration:none;
  transition:opacity .2s ease,transform .1s ease;
}
.p-link a:hover{opacity:.9}
.p-link a:active{transform:translateY(1px)}
@media(max-width:767px){
  .p-link{text-align:center}
}
.p-business{background:#f5f5f5;}
.p-business__list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.p-business__list li{border-top:1px solid var(--c-line);padding-block:14px}
.p-business__list li:last-child{border-bottom:1px solid var(--c-line)}
.p-business-h2{
  font-size: clamp(22px, 3.4vw, 36px);
  font-weight: 700;
  margin: 0 0 var(--sp-sm);
}
.p-business__list h3{
  font-size: clamp(16px, 2.2vw, 20px);
  font-weight: 600;
  color: var(--c-muted);
  margin: 0 0 6px;
}
.p-business__list p{
  margin: 0;
  font-size: clamp(14px, 1.6vw, 16px);
  color: #333;
  line-height: 1.7;
}
.p-records__hero{
  text-align:center;
  margin: calc(var(--sp-xxl) * 0.2) auto;
}
.p-records__hero img{
  max-width:1280px;
  width:100%;
  margin-inline:auto;
}
.p-logos{display:flex;gap:clamp(14px,2vw,32px);align-items:center;flex-wrap:wrap;justify-content:center;padding-top:var(--sp-md)}
.p-logos img{width:clamp(140px,14vw,180px);filter:grayscale(20%)}
.p-patent__thumbs{
  list-style:none;
  margin: var(--sp-md) 0 0;
  padding:0;
  display:grid;
  gap: clamp(12px, 2.5vw, 24px);
  grid-template-columns: 1fr;
}
@media (min-width: 600px){
  .p-patent__thumbs{grid-template-columns: repeat(2, 1fr);}
}
@media (min-width: 1024px){
  .p-patent__thumbs{grid-template-columns: repeat(3, 1fr);}
}
.p-patent__thumbs li{ margin:0; }
.p-patent__thumbs figure{
  margin:0;
  border:1px solid var(--c-line);
  border-radius: var(--radius);
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
  height:100%;
}
.p-patent__thumbs img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.p-patent__thumbs figcaption{
  font-size: clamp(12px, 1.3vw, 14px);
  padding: 10px 12px;
  color:#444;
  border-top:1px solid var(--c-line);
  line-height: 1.6;
}
.p-timeline{margin-top:var(--sp-sm)}
.p-timeline__row{display:grid;grid-template-columns:1fr;gap:8px;padding:16px 0;border-top:1px solid var(--c-line)}
.p-timeline__row:last-child{border-bottom:1px solid var(--c-line)}
@media(min-width:720px){.p-timeline__row{grid-template-columns:220px 1fr}}
.p-company{background:#f5f5f5;}
.p-company-list{margin-top:var(--sp-sm);display:grid;gap:6px}
.p-company-list_item{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--c-line)}
.p-company-list_item:last-child{border-bottom:1px solid var(--c-line)}
@media(max-width:719px){.p-company-list_item{grid-template-columns:1fr;gap:8px}}
.c-footer{background:#175fa9;color:#fff}
.c-footer__inner{padding-block:var(--sp-lg)}
.c-footer__nav ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:12px 18px;justify-content:center}
.c-footer__nav a{color:#fff;padding:4px 6px;text-decoration:none}
.c-footer__nav a:hover{text-decoration:underline}
.c-footer__copy{text-align:center;color:#fff;font-size:13px;margin-top:10px}
.p-lead{
  text-align:center;
  padding-block: clamp(40px, 8vw, 100px);
}
.p-lead .c-lead{
  max-width: 800px;
  margin-inline: auto;
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.9;
}
.pc-show{display:none}
@media (min-width:820px){.pc-show{display:block}}
[id]{scroll-margin-top: calc(var(--header-h) + var(--anchor-gap));}
.inline-list{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
}
.inline-list > li,
.inline-list > span{
  white-space: nowrap;
  line-height: 1.7;
}
.inline-list.dotted > *:not(:last-child)::after{
  content: "・";
  margin-left: 8px;
}
.inline-list.slash > *:not(:last-child)::after{
  content: "／";
  margin-left: 8px;
}
@media (max-width: 767px){
  .inline-list{ gap: 4px 10px; }
}
.p-h2_en{
  display:block;
  margin-top: .35em;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#a3a3a7;
  line-height:1.2;
  border-top:1px dotted #d9d9d9;
  padding-top:.4em;
}
.p-domains-h2 + .p-h2_en,
.p-about-h2   + .p-h2_en,
.p-technology-h2 + .p-h2_en,
.p-business-h2 + .p-h2_en,
.p-records-h2 + .p-h2_en,
.p-patent-h2  + .p-h2_en,
.p-history-h2 + .p-h2_en,
.p-company-h2 + .p-h2_en{
  margin-left: 0;
}
