.ipm-brand {
  --ipm-ink:#020607; --ipm-ink-soft:#071011; --ipm-paper:#f2f3ec;
  --ipm-white:#fff; --ipm-aqua:#00b7b7; --ipm-aqua-soft:#7ef1f1;
  --ipm-line:#183031; --ipm-line-light:#cbd4d2; --ipm-muted:#647272;
  --ipm-max:1360px; min-height:100vh; color:var(--ipm-ink);
  background:var(--ipm-paper); font-family:Arial,"Noto Sans JP","Yu Gothic",sans-serif;
  -webkit-font-smoothing:antialiased; isolation:isolate;
}
.ipm-brand, .ipm-brand * { box-sizing:border-box; }
.ipm-brand a { color:inherit; }
.ipm-brand :where(h1,h2,h3,.ttl,.sec_ttl,.ttl-sec) {
  line-break:strict; overflow-wrap:break-word; text-wrap:pretty;
}
@supports (word-break:auto-phrase) {
  .ipm-brand :where(h1,h2,h3,.ttl,.sec_ttl,.ttl-sec) { word-break:auto-phrase; }
}
.ipm-brand .pc { display:block; }
.ipm-brand .sp { display:none; }
.ipm-site-header {
  position:fixed; inset:0 0 auto; z-index:10000; height:72px;
  padding:0 clamp(20px,4vw,72px); display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; color:#fff; background:rgba(2,6,7,.9);
  border-bottom:1px solid rgba(0,183,183,.22); backdrop-filter:blur(18px);
}
.ipm-brand-logo { width:max-content; display:inline-flex; align-items:center; gap:11px; text-decoration:none; }
.ipm-brand-logo strong { color:#fff; font-size:17px; font-weight:800; letter-spacing:-.04em; }
.ipm-brand-mark { height:23px; display:flex; align-items:flex-start; gap:4px; }
.ipm-brand-mark i { display:block; width:4px; height:23px; background:#fff; }
.ipm-brand-mark i:nth-child(2) { height:18px; margin-top:5px; }
.ipm-brand-mark i:last-child { height:13px; margin-top:10px; background:var(--ipm-aqua); }
.ipm-desktop-nav { height:100%; display:flex; align-items:center; gap:clamp(20px,2.7vw,42px); }
.ipm-desktop-nav a { position:relative; color:rgba(255,255,255,.72); font-size:12px; letter-spacing:.06em; text-decoration:none; white-space:nowrap; }
.ipm-desktop-nav a:hover,.ipm-desktop-nav a:focus-visible,.ipm-desktop-nav a[aria-current=page] { color:var(--ipm-aqua); }
.ipm-desktop-nav a[aria-current=page]::after { content:""; position:absolute; left:0; right:0; bottom:-13px; height:2px; background:var(--ipm-aqua); }
.ipm-header-actions { justify-self:end; display:flex; align-items:center; gap:18px; }
.ipm-header-login { color:rgba(255,255,255,.78); font-size:11px; letter-spacing:.06em; text-decoration:none; white-space:nowrap; }
.ipm-header-credit { min-height:34px; padding:0 10px; display:inline-flex; align-items:center; gap:7px; color:rgba(255,255,255,.75); border:1px solid rgba(126,241,241,.28); font-size:11px; text-decoration:none; white-space:nowrap; }
.ipm-header-credit:hover { color:#fff; border-color:var(--ipm-aqua); }
.ipm-header-credit strong { color:var(--ipm-aqua-soft); font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace; }
.ipm-credit-icon { width:17px; height:17px; display:inline-grid; place-items:center; color:var(--ipm-aqua); flex:0 0 auto; }
.ipm-credit-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ipm-header-cta { min-height:42px; padding:0 18px; display:inline-flex; align-items:center; gap:18px; color:var(--ipm-ink); background:var(--ipm-aqua); border:1px solid var(--ipm-aqua); font-size:11px; font-weight:700; text-decoration:none; }
.ipm-header-cta:hover { color:var(--ipm-aqua); background:transparent; }
.ipm-mobile-menu { display:none; }
.ipm-breadcrumbs { margin:72px 0 0; padding:13px 0; color:#627171; background:#edf0ec; border-bottom:1px solid var(--ipm-line-light); font-size:11px; }
.ipm-breadcrumbs .inner { width:min(calc(100% - 40px),var(--ipm-max)); max-width:var(--ipm-max); margin:0 auto; padding:0; }
.ipm-breadcrumb-track { display:flex; align-items:center; gap:9px; min-width:0; white-space:nowrap; overflow:hidden; }
.ipm-breadcrumb-track>span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.ipm-breadcrumb-track>span:last-of-type { color:#263b3b; font-weight:500; }
.ipm-breadcrumb-track i { color:#9aabaa; font-style:normal; flex:0 0 auto; }
.ipm-breadcrumb-track a { color:#526a69; text-decoration:none; }
.ipm-breadcrumb-track a:hover { color:#087f80; }
.ipm-site-footer {
  min-height:350px; padding:72px clamp(20px,6vw,96px) 38px; display:grid;
  grid-template-columns:.85fr 1.15fr; grid-template-rows:auto 1fr auto; gap:28px 8vw;
  color:rgba(255,255,255,.68); background:#000; border-top:1px solid rgba(0,183,183,.22);
}
.ipm-footer-intro p { margin:20px 0; color:rgba(255,255,255,.58); font-size:13px; }
.ipm-footer-vision { color:var(--ipm-aqua); font:9px ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.12em; text-decoration:none; }
.ipm-footer-links { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:34px; }
.ipm-footer-links div { display:flex; flex-direction:column; gap:13px; }
.ipm-footer-links span { margin-bottom:5px; color:var(--ipm-aqua); font:8px ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.15em; }
.ipm-footer-links a { color:rgba(255,255,255,.65); font-size:10px; line-height:1.5; text-decoration:none; }
.ipm-footer-links a:hover { color:var(--ipm-aqua); }
.ipm-site-footer > small { grid-column:1/-1; align-self:end; color:rgba(255,255,255,.28); font:8px ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.1em; }
.ipm-brand.sub { background:var(--ipm-paper); }
.ipm-brand.sub > main { min-height:55vh; }
.ipm-brand .bg-gray { background:#f3f5f2; }
.ipm-brand .inner,.ipm-brand .wrapper { width:min(calc(100% - 40px),var(--ipm-max)); max-width:var(--ipm-max); margin-left:auto; margin-right:auto; }
.ipm-brand .error,.ipm-brand .alert-danger { padding:14px 16px; color:#8a2020; background:#fff0ed; border-left:4px solid #c54c40; }
@media (max-width:1100px) {
  .ipm-site-header { grid-template-columns:1fr auto auto; gap:16px; }
  .ipm-desktop-nav { display:none; }
  .ipm-mobile-menu { position:relative; display:block; justify-self:end; }
  .ipm-mobile-menu summary { min-width:52px; padding:12px 0; color:var(--ipm-aqua); cursor:pointer; list-style:none; font:10px ui-monospace,Menlo,monospace; letter-spacing:.14em; text-align:right; }
  .ipm-mobile-menu summary::-webkit-details-marker { display:none; }
  .ipm-mobile-menu[open] summary { font-size:0; }
  .ipm-mobile-menu[open] summary::after { content:"CLOSE"; font:10px ui-monospace,Menlo,monospace; letter-spacing:.12em; }
  .ipm-mobile-panel { position:absolute; top:46px; right:clamp(-72px,-4vw,-20px); width:min(390px,100vw); max-height:calc(100svh - 72px); padding:22px; display:flex; flex-direction:column; overflow:auto; color:#fff; background:#061011; border:1px solid rgba(0,183,183,.45); box-shadow:0 24px 70px rgba(0,0,0,.62); }
  .ipm-mobile-panel a { padding:14px 4px; display:flex; align-items:center; gap:14px; color:rgba(255,255,255,.8); border-bottom:1px solid var(--ipm-line); font-size:13px; text-decoration:none; }
  .ipm-mobile-panel a>span:first-child:not(.ipm-credit-icon) { width:24px; color:var(--ipm-aqua); font:9px ui-monospace,Menlo,monospace; }
  .ipm-mobile-panel .ipm-mobile-credit { gap:9px; }
  .ipm-mobile-credit strong { margin-left:auto; color:var(--ipm-aqua-soft); font:700 14px ui-monospace,Menlo,monospace; }
  .ipm-mobile-panel .ipm-mobile-primary { margin-top:10px; color:var(--ipm-ink); background:var(--ipm-aqua); font-weight:700; }
  .ipm-footer-links { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px) {
  .ipm-brand .pc { display:none; } .ipm-brand .sp { display:block; }
  .ipm-site-header { height:62px; padding:0 18px; grid-template-columns:1fr auto; }
  .ipm-header-actions { display:none; }
  .ipm-mobile-panel { top:41px; right:-18px; max-height:calc(100svh - 62px); }
  .ipm-breadcrumbs { margin-top:62px; padding:11px 0; }
  .ipm-breadcrumbs .inner { width:calc(100% - 32px); }
  .ipm-brand .inner,.ipm-brand .wrapper { width:min(calc(100% - 32px),var(--ipm-max)); }
  .ipm-site-footer { padding:58px 20px 32px; grid-template-columns:1fr; }
  .ipm-footer-links { margin-top:20px; grid-template-columns:1fr 1fr; gap:32px 20px; }
  .ipm-site-footer > small { grid-column:1; }
  .ipm-brand :where(h1,h2,h3,.ttl,.sec_ttl,.ttl-sec) { letter-spacing:max(-.04em,-1.5px); }
}
@media (max-width:480px) { .ipm-footer-links { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .ipm-brand * { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
