@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+Display:wght@400;500;600&family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Zen+Old+Mincho:wght@500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root{
  /* ===== Color tokens ===== */
  --c-white:#ffffff;
  --c-black:#0a0a0a;
  --c-gray-50:#f6f6f4;
  --c-gray-100:#eeeeeb;
  --c-gray-300:#c7c8c5;
  --c-gray-500:#8b8d8f;
  --c-navy:#0c1b33;
  --c-navy-deep:#081326;
  --c-blue:#2f6fb0;
  --c-blue-light:#5b9bd8;
  --c-line:rgba(10,10,10,0.1);
  --c-line-inv:rgba(255,255,255,0.18);

  /* ===== Type tokens ===== */
  --f-display-en:'Fraunces', serif;
  --f-display-jp:'Zen Old Mincho', serif;
  --f-body:'Noto Sans JP', sans-serif;
  --f-utility:'Zen Kaku Gothic New', sans-serif;

  /* ===== Layout ===== */
  --container:1240px;
  --gutter:clamp(24px, 5vw, 80px);
  --section-y:clamp(96px, 14vw, 220px);
  --ease:cubic-bezier(.16,.84,.32,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--c-black);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
  line-height:1.9;
  font-size:15px;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--c-blue-light); outline-offset:3px;}

.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.eyebrow{
  font-family:var(--f-utility);
  font-size:12px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--c-blue);
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin:0 0 22px;
}
.eyebrow::before{
  content:'';
  width:34px;height:1px;
  background:var(--c-blue);
  display:inline-block;
}
.eyebrow-jp{
  font-family:var(--f-utility);
  font-size:12.5px;
  letter-spacing:0.14em;
  color:var(--c-gray-500);
  margin-left:2px;
}

.section-title{
  font-family:var(--f-display-jp);
  font-weight:600;
  font-size:clamp(28px, 3.6vw, 46px);
  line-height:1.55;
  letter-spacing:0.02em;
  margin:0 0 28px;
}
.section-title em{
  font-style:normal;
  color:var(--c-navy);
}

.lede{
  max-width:640px;
  color:#2b2b2b;
  font-size:15.5px;
  line-height:2.05;
}

.btn-more{
  font-family:var(--f-utility);
  font-size:12.5px;
  letter-spacing:0.2em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-bottom:4px;
  border-bottom:1px solid currentColor;
  transition:opacity .3s var(--ease), gap .3s var(--ease);
}
.btn-more:hover{gap:16px; opacity:.7;}

/* ===================== HEADER ===================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:22px 0;
  transition:background .45s var(--ease), padding .45s var(--ease), border-color .45s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(10px);
  padding:14px 0;
  border-bottom:1px solid var(--c-line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
}
.brand{
  display:flex; align-items:center; gap:11px;
  font-family:var(--f-utility);
  font-weight:700;
  font-size:14.5px;
  letter-spacing:0.06em;
  color:var(--c-white);
  transition:color .45s var(--ease);
}
.brand img{height:30px; width:auto;}
.site-header.is-scrolled .brand,
.page-header--light .brand{color:var(--c-navy);}

.brand small{
  display:block;
  font-family:var(--f-utility);
  font-weight:400;
  font-size:9.5px;
  letter-spacing:0.12em;
  color:var(--c-gray-300);
  margin-top:2px;
}
.site-header.is-scrolled .brand small,
.page-header--light .brand small{color:var(--c-gray-500);}

.gnav{display:flex; align-items:center; gap:40px;}
.gnav ul{list-style:none; display:flex; gap:36px; margin:0; padding:0;}
.gnav a{
  font-family:var(--f-utility);
  font-size:12.5px;
  letter-spacing:0.1em;
  color:var(--c-white);
  position:relative;
  padding-bottom:4px;
  transition:color .45s var(--ease);
}
.site-header.is-scrolled .gnav a,
.page-header--light .gnav a{color:var(--c-navy);}
.gnav a::after{
  content:'';
  position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:currentColor;
  transition:right .35s var(--ease);
}
.gnav a:hover::after, .gnav a.is-active::after{right:0;}
.gnav .lang{opacity:.6; font-size:11.5px;}

.menu-btn{
  display:none;
  width:40px; height:40px;
  border:none; background:none; cursor:pointer;
  position:relative; z-index:1100;
}
.menu-btn span{
  position:absolute; left:8px; width:24px; height:1px;
  background:var(--c-white);
  transition:transform .35s var(--ease), opacity .3s, background .3s;
}
.site-header.is-scrolled .menu-btn span,
.page-header--light .menu-btn span{background:var(--c-navy);}
.menu-btn span:nth-child(1){top:15px;}
.menu-btn span:nth-child(2){top:23px;}
.menu-btn span:nth-child(3){top:31px;}
.nav-open .menu-btn span{background:var(--c-white) !important;}
.nav-open .menu-btn span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-open .menu-btn span:nth-child(2){opacity:0;}
.nav-open .menu-btn span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.mobile-nav{
  position:fixed; inset:0; z-index:1050;
  background:var(--c-navy);
  display:flex; flex-direction:column;
  justify-content:center;
  padding:0 var(--gutter);
  transform:translateY(-100%);
  transition:transform .55s var(--ease);
}
.nav-open .mobile-nav{transform:translateY(0);}
.mobile-nav ul{list-style:none; margin:0; padding:0;}
.mobile-nav li{border-top:1px solid var(--c-line-inv);}
.mobile-nav li:last-child{border-bottom:1px solid var(--c-line-inv);}
.mobile-nav a{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:20px 2px;
  font-family:var(--f-display-en);
  font-size:24px;
  color:var(--c-white);
}
.mobile-nav a span{font-family:var(--f-utility); font-size:11px; letter-spacing:.1em; color:var(--c-blue-light);}
.mobile-nav .lang-row{margin-top:34px; display:flex; gap:22px; font-family:var(--f-utility); font-size:12px; letter-spacing:.1em; color:var(--c-gray-300);}

@media (max-width: 900px){
  .gnav{display:none;}
  .menu-btn{display:block;}
}

/* ===================== HERO ===================== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:flex-end;
  color:var(--c-white);
  overflow:hidden;
  background:
    radial-gradient(120% 90% at 15% 0%, rgba(47,111,176,.55), transparent 60%),
    linear-gradient(150deg, var(--c-navy-deep) 0%, var(--c-navy) 46%, #14315a 100%);
}
.hero-art{
  position:absolute; inset:0;
  opacity:.9;
}
.hero-art svg{width:100%; height:100%;}
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(0deg, var(--c-navy-deep) 0%, rgba(8,19,38,.35) 42%, rgba(8,19,38,0) 70%);
}
.hero-inner{
  position:relative; z-index:2;
  width:100%;
  padding-bottom:clamp(56px, 8vw, 100px);
  padding-top:180px;
}
.hero-kicker{
  font-family:var(--f-utility);
  font-size:12px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--c-blue-light);
  opacity:0; transform:translateY(14px);
  animation:reveal .9s var(--ease) .15s forwards;
}
.hero-en{
  font-family:'Noto Serif Display', serif;
  font-weight:400;
  font-size:clamp(40px, 8vw, 108px);
  line-height:0.98;
  letter-spacing:-0.01em;
  margin:18px 0 0;
}
.hero-en span{
  display:block;
  overflow:hidden;
  /* Jなど上下に張り出す文字が切れないよう、クリップ領域だけ拡張 */
  padding-top:0.12em;
  padding-bottom:0.18em;
  margin-top:-0.12em;
  margin-bottom:-0.18em;
}
.hero-en em{
  font-style:normal;
  display:block;
  opacity:0; transform:translateY(60px);
  animation:reveal 1s var(--ease) forwards;
}
.hero-en em:nth-child(1){animation-delay:.3s;}
.hero-jp{
  font-family:var(--f-display-jp);
  font-size:clamp(20px, 2.4vw, 27px);
  font-weight:600;
  letter-spacing:.06em;
  margin:30px 0 0;
  opacity:0; transform:translateY(20px);
  animation:reveal .9s var(--ease) .6s forwards;
}
.hero-foot{
  margin-top:64px;
  display:flex; align-items:center; justify-content:space-between;
  border-top:1px solid var(--c-line-inv);
  padding-top:22px;
  opacity:0; animation:reveal 1s var(--ease) .9s forwards;
}
.hero-brand-tag{
  font-family:var(--f-utility); font-size:11.5px; letter-spacing:.18em; color:var(--c-gray-300);
}
.scroll-cue{
  font-family:var(--f-utility); font-size:10.5px; letter-spacing:.28em; color:var(--c-gray-300);
  display:flex; align-items:center; gap:12px;
}
.scroll-cue .line{width:1px; height:34px; background:var(--c-line-inv); position:relative; overflow:hidden;}
.scroll-cue .line::after{
  content:''; position:absolute; left:0; top:-100%; width:100%; height:100%;
  background:var(--c-blue-light);
  animation:scrollcue 2.2s ease-in-out infinite;
}
@keyframes scrollcue{
  0%{top:-100%;} 50%{top:0;} 100%{top:100%;}
}
@keyframes reveal{to{opacity:1; transform:none;}}

/* ===================== GENERIC PAGE HERO (inner pages) ===================== */
.page-hero{
  position:relative;
  padding:210px 0 90px;
  background:linear-gradient(150deg, var(--c-navy-deep), var(--c-navy) 70%);
  color:var(--c-white);
  overflow:hidden;
}
.page-hero .hero-art{opacity:.55;}
.page-hero-inner{position:relative; z-index:2;}
.page-hero .eyebrow{color:var(--c-blue-light);}
.page-hero .eyebrow::before{background:var(--c-blue-light);}
.page-hero h1{
  font-family:var(--f-display-en);
  font-weight:400;
  font-size:clamp(38px, 6vw, 76px);
  line-height:1;
  margin:14px 0 0;
}
.page-hero .jp-sub{
  font-family:var(--f-display-jp);
  font-size:clamp(17px,1.8vw,21px);
  margin-top:20px;
  color:var(--c-gray-300);
}

/* ===================== SECTIONS ===================== */
section{position:relative;}
.pad-y{padding-top:var(--section-y); padding-bottom:var(--section-y);}
.pad-y-sm{padding-top:clamp(64px,8vw,120px); padding-bottom:clamp(64px,8vw,120px);}
.bg-gray{background:var(--c-gray-50);}
.bg-navy{background:linear-gradient(150deg, var(--c-navy-deep), var(--c-navy)); color:var(--c-white);}
.bg-navy .lede{color:rgba(255,255,255,0.75);}

.divider{
  width:100%; height:88px;
  display:block;
}

/* reveal-on-scroll */
.reveal{opacity:0; transform:translateY(36px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}
.reveal-delay1.is-visible{transition-delay:.08s;}
.reveal-delay2.is-visible{transition-delay:.16s;}

/* ===================== ABOUT (top) ===================== */
.about-block{display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(40px,6vw,110px); align-items:center;}
.about-visual{
  aspect-ratio:4/5;
  border-radius:2px;
  overflow:hidden;
  position:relative;
}
.about-copy .section-title{max-width:520px;}
@media (max-width:880px){
  .about-block{grid-template-columns:1fr; gap:40px;}
  .about-visual{order:-1; aspect-ratio:16/10;}
}

/* ===================== BUSINESS ROWS ===================== */
.biz-row{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(30px,5vw,90px);
  align-items:center;
  padding:clamp(50px,7vw,100px) 0;
  border-top:1px solid var(--c-line);
}
.biz-row:first-of-type{border-top:none;}
.biz-row:nth-of-type(even) .biz-visual{order:2;}
.biz-num{
  font-family:var(--f-display-en);
  font-size:15px;
  letter-spacing:.14em;
  color:var(--c-blue);
  display:flex; align-items:center; gap:12px;
  margin-bottom:20px;
}
.biz-num::after{content:''; width:44px; height:1px; background:var(--c-blue); display:inline-block;}
.biz-en{
  font-family:var(--f-display-en);
  font-size:clamp(30px,3.4vw,44px);
  line-height:1;
  margin:0 0 10px;
}
.biz-jp{
  font-family:var(--f-display-jp);
  font-size:19px; font-weight:600;
  color:var(--c-navy);
  margin:0 0 24px;
}
.biz-visual{aspect-ratio:4/3; border-radius:2px; overflow:hidden;}
@media (max-width:880px){
  .biz-row{grid-template-columns:1fr;}
  .biz-row:nth-of-type(even) .biz-visual{order:0;}
}

/* ===================== VISUAL PLACEHOLDER ART ===================== */
.ph{
  width:100%; height:100%;
  position:relative;
  background:linear-gradient(150deg, var(--ph-a,#12294a), var(--ph-b,#2f6fb0));
}
.ph svg{position:absolute; inset:0; width:100%; height:100%;}
.ph-label{
  position:absolute; left:18px; bottom:16px;
  font-family:var(--f-utility); font-size:10px; letter-spacing:.14em;
  color:rgba(255,255,255,.55);
}

/* ===================== GLOBAL BUSINESS (full bleed) ===================== */
.global-biz{
  position:relative;
  min-height:78vh;
  display:flex; align-items:center;
  color:var(--c-white);
  overflow:hidden;
}
.global-biz .hero-scrim{background:linear-gradient(90deg, rgba(8,19,38,.92) 20%, rgba(8,19,38,.35) 75%);}
.global-biz-inner{position:relative; z-index:2; max-width:560px;}
.global-biz .eyebrow{color:var(--c-blue-light);}
.global-biz .eyebrow::before{background:var(--c-blue-light);}
.global-en{
  font-family:var(--f-display-en); font-weight:400;
  font-size:clamp(30px,4vw,52px); line-height:1.05; margin:0 0 22px;
}
.global-biz .section-title{color:var(--c-white); margin-bottom:24px;}
.global-biz .lede{color:rgba(255,255,255,.78);}

/* ===================== BUSINESS FLOW ===================== */
.flow{
  display:grid; grid-template-columns:repeat(6,1fr);
  gap:0; margin-top:60px;
}
.flow-step{
  padding:0 18px 0 0;
  position:relative;
}
.flow-step .num{
  font-family:var(--f-display-en); font-size:13px; color:var(--c-blue); letter-spacing:.1em;
}
.flow-step h4{
  font-family:var(--f-utility); font-weight:700; font-size:15px; letter-spacing:.04em;
  margin:14px 0 8px;
}
.flow-step p{font-size:12.5px; color:var(--c-gray-500); margin:0; line-height:1.7;}
.flow-line{
  height:1px; background:var(--c-line); margin:18px 0 0; position:relative;
}
.flow-line::after{
  content:'→'; position:absolute; right:-4px; top:-9px; color:var(--c-blue); font-size:13px;
}
@media (max-width:980px){
  .flow{grid-template-columns:1fr; gap:34px;}
  .flow-step{border-left:1px solid var(--c-line); padding-left:24px;}
  .flow-line{display:none;}
}

/* ===================== OTHER BUSINESS GRID ===================== */
.other-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--c-line); margin-top:56px;
  border:1px solid var(--c-line);
}
.other-card{
  background:var(--c-white); padding:40px 34px;
  transition:background .4s var(--ease);
}
.other-card:hover{background:var(--c-gray-50);}
.other-card .eyebrow{margin-bottom:16px; font-size:11px;}
.other-card h4{
  font-family:var(--f-display-jp); font-weight:600; font-size:17px; margin:0 0 12px;
}
.other-card p{font-size:13px; color:#555; margin:0; line-height:1.85;}
@media (max-width:880px){.other-grid{grid-template-columns:1fr;}}

/* ===================== MESSAGE ===================== */
.msg-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(40px,6vw,100px); align-items:start;}
.msg-portrait{aspect-ratio:3/4; border-radius:2px; overflow:hidden;}
.msg-portrait-img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 20%;
}
.msg-copy p{margin:0 0 26px; color:#2b2b2b;}
.msg-sign{margin-top:40px; font-family:var(--f-utility); font-size:13px; letter-spacing:.04em;}
.msg-sign .co{display:block; color:var(--c-gray-500); font-size:12px; margin-bottom:6px;}
.msg-sign .name{font-size:17px; font-family:var(--f-display-jp); font-weight:600; margin-top:4px; display:block;}
@media (max-width:880px){.msg-grid{grid-template-columns:1fr;} .msg-portrait{max-width:220px;}}

/* ===================== NEWS ===================== */
.news-list{margin-top:50px; border-top:1px solid var(--c-line);}
.news-item{
  display:grid; grid-template-columns:120px 130px 1fr 20px;
  gap:24px; align-items:center;
  padding:26px 0; border-bottom:1px solid var(--c-line);
  transition:opacity .3s;
}
a.news-item:hover{opacity:.55;}
.news-date{font-family:var(--f-utility); font-size:12.5px; color:var(--c-gray-500); letter-spacing:.03em;}
.news-cat{
  font-family:var(--f-utility); font-size:10.5px; letter-spacing:.12em;
  color:var(--c-blue); border:1px solid var(--c-blue); border-radius:20px;
  padding:5px 12px; text-align:center; width:fit-content;
}
.news-title{font-size:14.5px;}
.news-arrow{font-family:var(--f-display-en); color:var(--c-gray-300); font-size:17px;}
@media (max-width:700px){
  .news-item{grid-template-columns:1fr; gap:8px; align-items:flex-start;}
  .news-arrow{display:none;}
}

.news-filter{display:flex; gap:10px; flex-wrap:wrap; margin-top:36px;}
.news-filter a{
  font-family:var(--f-utility); font-size:11.5px; letter-spacing:.08em;
  padding:9px 18px; border:1px solid var(--c-line); border-radius:20px;
  color:var(--c-gray-500);
}
.news-filter a.is-active{background:var(--c-navy); color:var(--c-white); border-color:var(--c-navy);}

/* News detail */
.article-head{max-width:760px; margin:0 auto;}
.article-meta{display:flex; gap:16px; align-items:center; margin-bottom:26px;}
.article-body{max-width:760px; margin:56px auto 0; font-size:15.5px; line-height:2.2; color:#222;}
.article-body p{margin:0 0 28px;}
.article-body figure{margin:44px 0;}
.article-body figcaption{font-size:12px; color:var(--c-gray-500); margin-top:10px; font-family:var(--f-utility);}
.article-cover{aspect-ratio:16/9; border-radius:2px; overflow:hidden; margin:44px 0 0;}
.article-nav{
  max-width:760px; margin:70px auto 0; padding-top:30px; border-top:1px solid var(--c-line);
  display:flex; justify-content:space-between; font-family:var(--f-utility); font-size:12.5px;
}

/* ===================== COMPANY TABLE ===================== */
.info-table{width:100%; border-top:1px solid var(--c-line); margin-top:20px;}
.info-table tr{border-bottom:1px solid var(--c-line);}
.info-table th, .info-table td{
  text-align:left; padding:26px 20px 26px 0; vertical-align:top; font-weight:400;
}
.info-table th{
  width:190px; font-family:var(--f-utility); font-size:12.5px; letter-spacing:.08em; color:var(--c-gray-500);
}
.info-table td{font-size:14.5px; line-height:1.9;}
.info-table td ul{margin:0; padding-left:0; list-style:none;}
.info-table td li{padding:3px 0;}
@media (max-width:700px){
  .info-table, .info-table tbody, .info-table tr, .info-table th, .info-table td{display:block; width:100%;}
  .info-table th{padding-bottom:8px; border:none;}
  .info-table td{padding-top:0; padding-bottom:24px;}
}

.map-box{aspect-ratio:16/7; margin-top:70px; border-radius:2px; overflow:hidden;}

/* ===================== CONTACT FORM ===================== */
.form-grid{max-width:760px; margin:60px auto 0;}
.f-row{margin-bottom:30px;}
.f-row label{
  display:block; font-family:var(--f-utility); font-size:12.5px; letter-spacing:.06em; margin-bottom:12px; color:#333;
}
.f-row label .req{color:#b3452f; margin-left:6px; font-size:11px;}
.f-row input[type=text], .f-row input[type=email], .f-row input[type=tel], .f-row select, .f-row textarea{
  width:100%; border:none; border-bottom:1px solid var(--c-gray-300);
  padding:12px 4px; font-family:var(--f-body); font-size:14.5px; background:transparent;
  transition:border-color .3s;
}
.f-row textarea{resize:vertical; min-height:130px;}
.f-row input:focus, .f-row select:focus, .f-row textarea:focus{border-color:var(--c-navy);}
.f-check{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#444;}
.f-check a{text-decoration:underline;}
.f-submit{
  margin-top:14px;
  font-family:var(--f-utility); font-size:13px; letter-spacing:.14em;
  background:var(--c-navy); color:var(--c-white);
  border:none; padding:18px 48px; cursor:pointer;
  display:inline-flex; align-items:center; gap:14px;
  transition:background .3s;
}
.f-submit:hover{background:var(--c-navy-deep);}

/* ===================== CTA STRIP ===================== */
.cta-strip{
  padding:clamp(70px,10vw,140px) 0;
  text-align:center;
}
.cta-strip .section-title{margin:0 auto 34px; max-width:640px;}

/* ===================== FOOTER ===================== */
.site-footer{
  background:var(--c-navy-deep); color:var(--c-white);
  padding:80px 0 34px;
}
.foot-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:50px; padding-bottom:56px; border-bottom:1px solid var(--c-line-inv);}
.foot-brand{max-width:320px;}
.foot-brand .brand{color:var(--c-white); margin-bottom:20px;}
.foot-brand p{font-size:12.5px; color:var(--c-gray-300); line-height:2; margin:0;}
.foot-nav{display:flex; gap:70px; flex-wrap:wrap;}
.foot-col h5{font-family:var(--f-utility); font-size:11px; letter-spacing:.16em; color:var(--c-blue-light); margin:0 0 18px;}
.foot-col ul{list-style:none; margin:0; padding:0;}
.foot-col li{margin-bottom:12px;}
.foot-col a{font-size:13px; color:var(--c-gray-300); transition:color .3s;}
.foot-col a:hover{color:var(--c-white);}
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  padding-top:30px; font-family:var(--f-utility); font-size:11px; letter-spacing:.04em; color:var(--c-gray-500);
}

/* ===================== MISC ===================== */
.stat-line{display:flex; gap:0; margin-top:70px; border-top:1px solid var(--c-line);}
.hairline-btn{
  font-family:var(--f-utility); font-size:12px; letter-spacing:.16em;
  border:1px solid var(--c-navy); color:var(--c-navy);
  padding:16px 40px; display:inline-block; transition:all .35s var(--ease);
}
.hairline-btn:hover{background:var(--c-navy); color:var(--c-white);}

.privacy-body{max-width:760px; margin:60px auto 0; font-size:14.5px; line-height:2.1; color:#222;}
.privacy-body h2{font-family:var(--f-display-jp); font-size:19px; font-weight:600; margin:52px 0 18px; color:var(--c-navy);}
.privacy-body h2:first-child{margin-top:0;}
.privacy-body p{margin:0 0 18px;}
.privacy-body ol, .privacy-body ul{padding-left:22px;}
.privacy-body li{margin-bottom:10px;}
